<?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>199810</bug_id>
          
          <creation_ts>2019-07-15 14:59:52 -0700</creation_ts>
          <short_desc>Provide build request status description information on dashboard.</short_desc>
          <delta_ts>2019-09-30 11:26:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to>dewei_zhu</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1552987</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-07-15 14:59:52 -0700</bug_when>
    <thetext>Provide build request stauts detail information on dashboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552998</commentid>
    <comment_count>1</comment_count>
      <attachid>374155</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-07-15 15:32:32 -0700</bug_when>
    <thetext>Created attachment 374155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553774</commentid>
    <comment_count>2</comment_count>
      <attachid>374155</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-07-17 17:27:13 -0700</bug_when>
    <thetext>Comment on attachment 374155
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:10
&gt; +        Update SQL for existing instance:
&gt; +            UPDATE build_requests ADD COLUMN request_status_detail varchar(1024) DEFAULT NULL;

Now that we have other clients, can we create a new file like migration.sql where these instructions are conditionally executed?
We&apos;d ideally create some kind of admin page like /admin/migrate.php to automatically run that.

&gt; Websites/perf.webkit.org/init-database.sql:317
&gt; +    request_status_detail varchar(1024) DEFAULT NULL,

Hm... I don&apos;t really like the name &quot;status detail&quot;.
It doesn&apos;t say what kind of detail it has; that it&apos;s a human readable text.
How about status_description or status_label?

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:118
&gt; +        const showWarningIcon = request.hasCompleted() &amp;&amp; request.statusDetail();

Don&apos;t we want to show this when the request had failed as well?
We need to check hasFinished() instead for that.

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:126
&gt; +        if (request.statusDetail() &amp;&amp; !showWarningIcon)

This is bit convoluted condition.
Why don&apos;t we just say request.statusDetail() &amp;&amp; !request.hasCompleted()?
That&apos;s way easier to reason about.
If anything, this condition should be named something like hasInProgressReport

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:127
&gt; +            cellContent.push(element(&apos;label&apos;, &apos;:&apos;), element(&apos;label&apos;, `${request.statusDetail()}`));

This is not a correct use of label element. Just use a span.
Why &quot;:&quot; and the status detail need to be two different label elements? That doesn&apos;t seem right.

&gt; Websites/perf.webkit.org/public/v3/components/warning-icon.js:13
&gt; +        if (this._warningMessage)
&gt; +            this.content(&apos;button&apos;).title = this._warningMessage;

Since #button is defined in ButtonBase, it would be better if ButtonBase had a method to set this instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554140</commentid>
    <comment_count>3</comment_count>
      <attachid>374445</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-07-18 23:40:46 -0700</bug_when>
    <thetext>Created attachment 374445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554143</commentid>
    <comment_count>4</comment_count>
      <attachid>374446</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-07-18 23:45:58 -0700</bug_when>
    <thetext>Created attachment 374446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554281</commentid>
    <comment_count>5</comment_count>
      <attachid>374488</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-07-19 12:10:15 -0700</bug_when>
    <thetext>Created attachment 374488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555313</commentid>
    <comment_count>6</comment_count>
      <attachid>374488</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-07-23 21:43:53 -0700</bug_when>
    <thetext>Comment on attachment 374488
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:8
&gt; +        Add build request status detail to show detailed information for a build and show it in dashboard.

detail -&gt; description?

&gt; Websites/perf.webkit.org/init-database.sql:317
&gt; +    request_status_description varchar(1024) DEFAULT NULL,

Let&apos;s not make the change to init-database.sql for now.
That is, just make the change to migrate-database.sql then make existing tools run both init-database.sql and migrate-database.sql
e.g. update initDatabase() in TestServer (server-tests/resources/test-server.js) to run migrate-database.sql in addition to init-database.sql.
Also, we should add an instruction to ReadMe.md about how we can migrate databases.
Eventually, we should version database schema but those two changes should be sufficient for now.

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:121
&gt; +            cellContent.push(element(&apos;div&apos;, {class: &apos;warning-icon-container&apos;}, new WarningIcon(`Last synced status description: ${request.statusDescription()}`)));

&quot;Last synced status description:&quot; is a very wordy label. How about just &quot;Latest status: ${~}&quot;?

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:242
&gt; +            .description-cell span {

We don&apos;t want to any span inside .description-cell to have this style.
Add an explicit class name to the span. e.g. &quot;status-description&quot;

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:250
&gt; +                content: &apos;:&apos;;

A space after :?

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:252
&gt; +            td.description-cell {

No need to say &quot;td&quot;. There is no other element with that class name.

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:255
&gt; +            div.warning-icon-container {

Ditto about div. But we shouldn&apos;t need this div at all.
Just absolutely position warning-icon element directly instead.

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:257
&gt; +                top: -0.2rem;

This doesn&apos;t look right. Why do we need to shift by 0.2rem? Is that due to padding?

&gt; Websites/perf.webkit.org/public/v3/components/test-group-revision-table.js:258
&gt; +                left:0;

Nit: A space after &quot;:&quot;.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:340
&gt; +        taskId = testGroup.task().id();

Why can&apos;t declare taskId here as const?

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:394
&gt; +                {&apos;wk&apos;: &apos;191622&apos;, &apos;wk-patch&apos;: RemoteAPI.url(&apos;/api/uploaded-file/1.dat&apos;), &apos;checkbox&apos;: &apos;build-wk&apos;, &apos;build-wk&apos;: true, &apos;build-request-id&apos;: &apos;1&apos;, &apos;forcescheduler&apos;: &apos;force-ab-builds&apos;}});

Nit: Wrong indentation. { should be exactly 4 spaces to the right of &quot;assert&quot;.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:26
&gt; +        this._statusDescription = rawData[&apos;properties&apos;] &amp;&amp; rawData[&apos;properties&apos;][&apos;statusdescription&apos;] ? rawData[&apos;properties&apos;][&apos;statusdescription&apos;][0] : null;

Since statusdescription is not a standard Buildbot property, we should make this configurable.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:188
&gt;                      } else if (!request.statusUrl()) {

We should just combine these two conditions to avoid code duplication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555364</commentid>
    <comment_count>7</comment_count>
      <attachid>374488</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-07-24 08:51:20 -0700</bug_when>
    <thetext>Comment on attachment 374488
Patch

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

&gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:188
&gt;&gt;                      } else if (!request.statusUrl()) {
&gt; 
&gt; We should just combine these two conditions to avoid code duplication.

The updates are the same but the logging info are different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555429</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-07-24 11:07:29 -0700</bug_when>
    <thetext>(In reply to dewei_zhu from comment #7)
&gt; Comment on attachment 374488 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=374488&amp;action=review
&gt; 
&gt; &gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:188
&gt; &gt;&gt;                      } else if (!request.statusUrl()) {
&gt; &gt; 
&gt; &gt; We should just combine these two conditions to avoid code duplication.
&gt; 
&gt; The updates are the same but the logging info are different.

I don’t think we need two distinct logging. We can just log both URL and description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574999</commentid>
    <comment_count>9</comment_count>
      <attachid>374488</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-09-27 15:25:38 -0700</bug_when>
    <thetext>Comment on attachment 374488
Patch

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

&gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:26
&gt;&gt; +        this._statusDescription = rawData[&apos;properties&apos;] &amp;&amp; rawData[&apos;properties&apos;][&apos;statusdescription&apos;] ? rawData[&apos;properties&apos;][&apos;statusdescription&apos;][0] : null;
&gt; 
&gt; Since statusdescription is not a standard Buildbot property, we should make this configurable.

Used rawData[&apos;state_string&apos;] instead as this is a standard property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575006</commentid>
    <comment_count>10</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-09-27 15:45:58 -0700</bug_when>
    <thetext>Landed in r250465.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575281</commentid>
    <comment_count>11</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-09-30 11:26:28 -0700</bug_when>
    <thetext>rdar://problem/34941447</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374155</attachid>
            <date>2019-07-15 15:32:32 -0700</date>
            <delta_ts>2019-07-18 23:40:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199810-20190715153232.patch</filename>
            <type>text/plain</type>
            <size>45441</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDUwCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1NTE5YzMzZjE1N2JmNWMwNGU1NjkzNDQ3YjU4YzZhNWQ3YmY1ODVkLi45YzA4OTRlODg1
NzNmZmFlMGIyM2M5ZjUxNzUzYzVjZTY1NTZhYzQ0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxOS0wNy0xNSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBQcm92aWRlIGJ1aWxkIHJlcXVlc3Qgc3RhdHVzIGRldGFp
bCBpbmZvcm1hdGlvbiBvbiBkYXNoYm9hcmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYnVpbGQgcmVxdWVzdCBzdGF0dXMgZGV0YWlsIHRvIHNo
b3cgZGV0YWlsZWQgaW5mb3JtYXRpb24gZm9yIGEgYnVpbGQgYW5kIHNob3cgaXQgaW4gZGFzaGJv
YXJkLgorICAgICAgICBVcGRhdGUgU1FMIGZvciBleGlzdGluZyBpbnN0YW5jZToKKyAgICAgICAg
ICAgIFVQREFURSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIHJlcXVlc3Rfc3RhdHVzX2RldGFp
bCB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKKworICAgICAgICAqIGluaXQtZGF0YWJhc2Uu
c3FsOiBBZGRlZCByZXF1ZXN0X3N0YXR1c19kZXRhaWwgY29sdW1uLgorICAgICAgICAqIHB1Ymxp
Yy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwOiBBZGRlZCBzdXBwb3J0IGZvciB1cGRhdGluZyByZXF1
ZXN0X3N0YXR1c19kZXRhaWwuCisgICAgICAgICogcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVz
dHMtZmV0Y2hlci5waHA6IEV4cG9zZWQgYHN0YXR1c0RldGFpbGAgdG8gQVBJLgorICAgICAgICAq
IHB1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmV2aXNpb24tdGFibGUuanM6IEFkZGVk
IFVJIGZvciBzaG93aW5nIGJ1aWxkIHJlcXVlc3Qgc3RhdHVzIGRldGFpbC4KKyAgICAgICAgKFRl
c3RHcm91cFJldmlzaW9uVGFibGUucHJvdG90eXBlLl9yZW5kZXJUYWJsZSk6CisgICAgICAgIChU
ZXN0R3JvdXBSZXZpc2lvblRhYmxlLnByb3RvdHlwZS5fYnVpbGRTdGF0dXNDZWxsKToKKyAgICAg
ICAgKFRlc3RHcm91cFJldmlzaW9uVGFibGUuY3NzVGVtcGxhdGUpOgorICAgICAgICAqIHB1Ymxp
Yy92My9jb21wb25lbnRzL3dhcm5pbmctaWNvbi5qczogRXh0ZW5kZWQgd2FybmluZyBpY29uIHRv
IGJlIGFibGUgdG8gY3VzdG9taXplIGluZm9ybWF0aW9uIG9uIGhvdmVyLgorICAgICAgICAoV2Fy
bmluZ0ljb24pOgorICAgICAgICAoV2FybmluZ0ljb24ucHJvdG90eXBlLnJlbmRlcik6CisgICAg
ICAgICogcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzOiBBZGRlZCAnc3RhdHVzRGV0
YWlsJyBmaWVsZC4KKyAgICAgICAgKEJ1aWxkUmVxdWVzdCk6CisgICAgICAgIChCdWlsZFJlcXVl
c3QucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJv
dG90eXBlLnN0YXR1c0RldGFpbCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1idWlsZC1y
ZXF1ZXN0cy10ZXN0cy5qczogRml4ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL21vY2stZGF0YS5qczoKKyAgICAgICAgKE1vY2tEYXRhLnNldCBtb2NrVGVz
dFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcik6IEFkZGVkICdzdGF0dXNfZGV0YWlsJyBpbiBi
dWlsZGJvdCBtb2NrIGRhdGEuCisgICAgICAgIChNb2NrRGF0YS5zYW1wbGVCdWlsZERhdGEpOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRl
c3RzLmpzOiBBZGRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXN5
bmNlci5qczogQWRkZWQgJ3N0YXR1c0RldGFpbCcgZmllbGQgdG8gJ0J1aWxkYm90QnVpbGRFbnRy
eScuCisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkucHJvdG90eXBlLmluaXRpYWxpemUpOgor
ICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5zdGF0dXNEZXRhaWwpOgorICAg
ICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAgICAgICAoQnVpbGRi
b3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuX3B1bGxCdWlsZGJvdE9uQWxsU3luY2Vycyk6CisgICAg
ICAgICogdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanM6IEFkZGVkIHRlc3QgY29k
ZSBmb3IgQnVpbGRib3RCdWlsZEVudHJ5LnN0YXR1c0RldGFpbC4KKwogMjAxOS0wNy0wMyAgRGV3
ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0IGZyZXNobmVzcyBw
YWdlIHNob3VsZCBleHBvc2UgcmV2aXNpb24gaW5mb3JtYXRpb24gZm9yIGxhdGVzdCBidWlsZCBv
biB0b29sdGlwLgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0
YWJhc2Uuc3FsIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCmlu
ZGV4IGNiODg0NWM4M2IwYTUzNWYxNDY4ZDQ3ZTk5ZDZlMzZmMDc3MjVjODYuLjgzYmE5YzFiZmFh
Zjk4OWQ1OTEwOThmMWY1YzA3NDMzYWVkN2E3N2MgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvaW5pdC1kYXRhYmFzZS5zcWwKQEAgLTMxNCw2ICszMTQsNyBAQCBDUkVBVEUgVEFCTEUgYnVp
bGRfcmVxdWVzdHMgKAogICAgIHJlcXVlc3RfY29tbWl0X3NldCBpbnRlZ2VyIFJFRkVSRU5DRVMg
Y29tbWl0X3NldHMgTk9UIE5VTEwsCiAgICAgcmVxdWVzdF9zdGF0dXMgYnVpbGRfcmVxdWVzdF9z
dGF0dXNfdHlwZSBOT1QgTlVMTCBERUZBVUxUICdwZW5kaW5nJywKICAgICByZXF1ZXN0X3VybCB2
YXJjaGFyKDEwMjQpLAorICAgIHJlcXVlc3Rfc3RhdHVzX2RldGFpbCB2YXJjaGFyKDEwMjQpIERF
RkFVTFQgTlVMTCwKICAgICByZXF1ZXN0X2J1aWxkIGludGVnZXIgUkVGRVJFTkNFUyBidWlsZHMs
CiAgICAgcmVxdWVzdF9jcmVhdGVkX2F0IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChDVVJS
RU5UX1RJTUVTVEFNUCBBVCBUSU1FIFpPTkUgJ1VUQycpLAogICAgIENPTlNUUkFJTlQgYnVpbGRf
cmVxdWVzdF9vcmRlcl9tdXN0X2JlX3VuaXF1ZV9pbl9ncm91cCBVTklRVUUocmVxdWVzdF9ncm91
cCwgcmVxdWVzdF9vcmRlciksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAKaW5kZXggNDk3Mzc2ZDBkODcyYmRmMjljNTI2
NmY2OTI4NDdjM2QwYjI4ODEzZS4uN2UwM2RlY2JjZWE5MWMyMTYwOTliNjkzYTg2MWY3NjhlNTQ1
YzJmZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvYnVp
bGQtcmVxdWVzdHMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBp
L2J1aWxkLXJlcXVlc3RzLnBocApAQCAtNDYsNiArNDYsNyBAQCBmdW5jdGlvbiB1cGRhdGVfYnVp
bGRzKCRkYiwgJHVwZGF0ZXMpIHsKICAgICAgICAgJGlkID0gaW50dmFsKCRpZCk7CiAgICAgICAg
ICRzdGF0dXMgPSAkaW5mb1snc3RhdHVzJ107CiAgICAgICAgICR1cmwgPSBhcnJheV9nZXQoJGlu
Zm8sICd1cmwnKTsKKyAgICAgICAgJHN0YXR1c19kZXRhaWwgPSBhcnJheV9nZXQoJGluZm8sICdz
dGF0dXNEZXRhaWwnKTsKICAgICAgICAgJHJlcXVlc3Rfcm93ID0gJGRiLT5zZWxlY3RfZmlyc3Rf
cm93KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0JywgYXJyYXkoJ2lkJyA9PiAkaWQpKTsKICAg
ICAgICAgaWYgKCRzdGF0dXMgPT0gJ2ZhaWxlZElmTm90Q29tcGxldGVkJykgewogICAgICAgICAg
ICAgaWYgKCEkcmVxdWVzdF9yb3cpIHsKQEAgLTYwLDE0ICs2MSwxMyBAQCBmdW5jdGlvbiB1cGRh
dGVfYnVpbGRzKCRkYiwgJHVwZGF0ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgV0hFUkUgcmVx
dWVzdF9ncm91cCA9ICQxIEFORCByZXF1ZXN0X29yZGVyID4gJDInLAogICAgICAgICAgICAgICAg
ICAgICBhcnJheSgkcmVxdWVzdF9yb3dbJ3JlcXVlc3RfZ3JvdXAnXSwgJHJlcXVlc3Rfcm93Wydy
ZXF1ZXN0X29yZGVyJ10pKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICRkYi0+dXBkYXRl
X3JvdygnYnVpbGRfcmVxdWVzdHMnLCAncmVxdWVzdCcsIGFycmF5KCdpZCcgPT4gJGlkKSwgYXJy
YXkoJ3N0YXR1cycgPT4gJ2ZhaWxlZCcsICd1cmwnID0+ICR1cmwpKTsKKyAgICAgICAgICAgICRk
Yi0+dXBkYXRlX3JvdygnYnVpbGRfcmVxdWVzdHMnLCAncmVxdWVzdCcsIGFycmF5KCdpZCcgPT4g
JGlkKSwgYXJyYXkoJ3N0YXR1cycgPT4gJ2ZhaWxlZCcsICd1cmwnID0+ICR1cmwsICdzdGF0dXNf
ZGV0YWlsJyA9PiAkc3RhdHVzX2RldGFpbCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgaWYgKCFpbl9hcnJheSgkc3RhdHVzLCBhcnJheSgncGVuZGluZycsICdzY2hlZHVsZWQnLCAn
cnVubmluZycsICdmYWlsZWQnLCAnY29tcGxldGVkJywgJ2NhbmNlbGVkJykpKSB7CiAgICAgICAg
ICAgICAgICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOwogICAgICAgICAgICAgICAgIGV4
aXRfd2l0aF9lcnJvcignVW5rbm93bkJ1aWxkUmVxdWVzdFN0YXR1cycsIGFycmF5KCdidWlsZFJl
cXVlc3QnID0+ICRpZCwgJ3N0YXR1cycgPT4gJHN0YXR1cykpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0JywgYXJy
YXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAkc3RhdHVzLCAndXJsJyA9PiAkdXJs
KSk7Ci0gICAgICAgICAgICAkdGVzdF9ncm91cF9pZCA9ICRyZXF1ZXN0X3Jvd1sncmVxdWVzdF9n
cm91cCddOworICAgICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1ZXN0cycsICdy
ZXF1ZXN0JywgYXJyYXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAkc3RhdHVzLCAn
dXJsJyA9PiAkdXJsLCAnc3RhdHVzX2RldGFpbCcgPT4gJHN0YXR1c19kZXRhaWwpKTsKICAgICAg
ICAgICAgIGlmICgkc3RhdHVzICE9ICdmYWlsZWQnKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAKaW5kZXggYjM4
ODc3OWIyN2QzZjkzMDU0Mzg4Y2Y5NWU2MmMzMTkwNzE5YWUyOC4uNGFiNGQ2OWQ1YzY5MTE4NTcz
MjE4OTg3ODcyZmJmZTYxMjgxODYzZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVy
LnBocApAQCAtOTIsNiArOTIsNyBAQCBjbGFzcyBCdWlsZFJlcXVlc3RzRmV0Y2hlciB7CiAgICAg
ICAgICAgICAgICAgJ3VybCcgPT4gJHJvd1sncmVxdWVzdF91cmwnXSwKICAgICAgICAgICAgICAg
ICAnYnVpbGQnID0+ICRyb3dbJ3JlcXVlc3RfYnVpbGQnXSwKICAgICAgICAgICAgICAgICAnY3Jl
YXRlZEF0JyA9PiAkcm93WydyZXF1ZXN0X2NyZWF0ZWRfYXQnXSA/IHN0cnRvdGltZSgkcm93Wydy
ZXF1ZXN0X2NyZWF0ZWRfYXQnXSkgKiAxMDAwIDogTlVMTCwKKyAgICAgICAgICAgICAgICAnc3Rh
dHVzRGV0YWlsJyA9PiAkcm93WydyZXF1ZXN0X3N0YXR1c19kZXRhaWwnXSwKICAgICAgICAgICAg
ICkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAkcmVxdWVzdHM7CmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1y
ZXZpc2lvbi10YWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29t
cG9uZW50cy90ZXN0LWdyb3VwLXJldmlzaW9uLXRhYmxlLmpzCmluZGV4IDAzZWYxNjA1NzFhYTgx
ODhkNWE5YjliN2UwYzRiMDNmYjNmNTY3ODcuLjk1MzQwZjIzY2QzMjVhOTE0NzI4ZTAxYTE2ZmFj
ZTY5ZGE2ODA5YTAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvY29tcG9uZW50cy90ZXN0LWdyb3VwLXJldmlzaW9uLXRhYmxlLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0LWdyb3VwLXJldmlzaW9u
LXRhYmxlLmpzCkBAIC04OSw3ICs4OSw2IEBAIGNsYXNzIFRlc3RHcm91cFJldmlzaW9uVGFibGUg
ZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgY29uc3QgYWRkaXRpb25hbFJlcG9zaXRv
cnlMaXN0ID0gUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKFsuLi5h
ZGRpdGlvbmFsUmVwb3NpdG9yeVNldF0pOwogCiAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBDb21w
b25lbnRCYXNlLmNyZWF0ZUVsZW1lbnQ7Ci0gICAgICAgIGNvbnN0IGxpbmsgPSBDb21wb25lbnRC
YXNlLmNyZWF0ZUxpbms7CiAgICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNvbnRlbnQo
J3JldmlzaW9uLXRhYmxlJyksIFsKICAgICAgICAgICAgIGVsZW1lbnQoJ3RoZWFkJywgWwogICAg
ICAgICAgICAgICAgIGVsZW1lbnQoJ3RoJywgJ0NvbmZpZ3VyYXRpb24nKSwKQEAgLTEwNiwxMiAr
MTA1LDMwIEBAIGNsYXNzIFRlc3RHcm91cFJldmlzaW9uVGFibGUgZXh0ZW5kcyBDb21wb25lbnRC
YXNlIHsKICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUmVwb3NpdG9yeUxpc3QubWFwKChy
ZXBvc2l0b3J5KSA9PiB0aGlzLl9idWlsZENvbW1pdENlbGwoZW50cnksIHJlcG9zaXRvcnksIHBh
dGNoZWRQZXBvc2l0b3J5U2V0LmhhcyhyZXBvc2l0b3J5KSkpLAogICAgICAgICAgICAgICAgICAg
ICBoYXNDdXN0b21Sb290cyA/IHRoaXMuX2J1aWxkQ3VzdG9tUm9vdHNDZWxsKGVudHJ5KSA6IFtd
LAogICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCd0ZCcsIGVudHJ5LmxhYmVsKSwKLSAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudCgndGQnLCByZXF1ZXN0LnN0YXR1c1VybCgpID8gbGluayhy
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksIHJlcXVlc3Quc3RhdHVzVXJsKCkpIDogcmVxdWVzdC5zdGF0
dXNMYWJlbCgpKSwKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYnVpbGRTdGF0dXNDZWxsKHJl
cXVlc3QpLAogICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUmVwb3NpdG9yeUxpc3QubWFw
KChyZXBvc2l0b3J5KSA9PiB0aGlzLl9idWlsZENvbW1pdENlbGwoZW50cnksIHJlcG9zaXRvcnkp
KSwKICAgICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgIH0pKV0pOwogICAgIH0KIAorICAg
IF9idWlsZFN0YXR1c0NlbGwocmVxdWVzdCkKKyAgICB7CisgICAgICAgIGNvbnN0IGxpbmsgPSBD
b21wb25lbnRCYXNlLmNyZWF0ZUxpbms7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBDb21wb25l
bnRCYXNlLmNyZWF0ZUVsZW1lbnQ7CisgICAgICAgIGNvbnN0IHNob3dXYXJuaW5nSWNvbiA9IHJl
cXVlc3QuaGFzQ29tcGxldGVkKCkgJiYgcmVxdWVzdC5zdGF0dXNEZXRhaWwoKTsKKyAgICAgICAg
Y29uc3QgY2VsbENvbnRlbnQgPSBbXTsKKyAgICAgICAgaWYgKHNob3dXYXJuaW5nSWNvbikKKyAg
ICAgICAgICAgIGNlbGxDb250ZW50LnB1c2goZWxlbWVudCgnZGl2Jywge2NsYXNzOiAnd2Fybmlu
Zy1pY29uLWNvbnRhaW5lcid9LCBuZXcgV2FybmluZ0ljb24oYExhc3Qgc3luY2VkIHN0YXR1cyBk
ZXRhaWw6ICR7cmVxdWVzdC5zdGF0dXNEZXRhaWwoKX1gKSkpOworCisgICAgICAgIGNvbnN0IHN0
YXR1c0xhYmVsID0gcmVxdWVzdC5zdGF0dXNMYWJlbCgpOworICAgICAgICBjb25zdCBzdGF0dXNM
aW5rID0gcmVxdWVzdC5zdGF0dXNVcmwoKSA/IGxpbmsoc3RhdHVzTGFiZWwsIHJlcXVlc3Quc3Rh
dHVzRGV0YWlsKCksIHJlcXVlc3Quc3RhdHVzVXJsKCkpIDogc3RhdHVzTGFiZWw7CisgICAgICAg
IGNlbGxDb250ZW50LnB1c2goc3RhdHVzTGluayk7CisgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1
c0RldGFpbCgpICYmICFzaG93V2FybmluZ0ljb24pCisgICAgICAgICAgICBjZWxsQ29udGVudC5w
dXNoKGVsZW1lbnQoJ2xhYmVsJywgJzonKSwgZWxlbWVudCgnbGFiZWwnLCBgJHtyZXF1ZXN0LnN0
YXR1c0RldGFpbCgpfWApKTsKKworICAgICAgICByZXR1cm4gZWxlbWVudCgndGQnLCB7Y2xhc3M6
ICdzdGF0dXMtY2VsbCd9LCAgY2VsbENvbnRlbnQpOworICAgIH0KKwogICAgIF9idWlsZENvbW1p
dENlbGwoZW50cnksIHJlcG9zaXRvcnksIHNob3dSb290ID0gZmFsc2UpCiAgICAgewogICAgICAg
ICBjb25zdCBlbGVtZW50ID0gQ29tcG9uZW50QmFzZS5jcmVhdGVFbGVtZW50OwpAQCAtMjIyLDYg
KzIzOSwyMSBAQCBjbGFzcyBUZXN0R3JvdXBSZXZpc2lvblRhYmxlIGV4dGVuZHMgQ29tcG9uZW50
QmFzZSB7CiAgICAgICAgICAgICB0aCB7CiAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGlu
aGVyaXQ7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAuc3RhdHVzLWNlbGwgbGFiZWwgewor
ICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgICAgICAgICBt
YXgtd2lkdGg6IDEwcmVtOworICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cisg
ICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CisgICAgICAgICAgICAgICAg
b3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRkLnN0YXR1cy1j
ZWxsIHsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBkaXYud2FybmluZy1pY29uLWNvbnRhaW5lciB7CisgICAgICAgICAgICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgICAgIHRvcDogLTAuMnJlbTsKKyAg
ICAgICAgICAgICAgICBsZWZ0OjA7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAucm9vdHMg
ewogICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjByZW07CiAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvd2Fy
bmluZy1pY29uLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25l
bnRzL3dhcm5pbmctaWNvbi5qcwppbmRleCA3YjNlZmRhNTNkMTJhMTdiNmFiYjNiYjhmZmVhMTg0
MGMzYzNhZTEzLi4wZWU0ZjhmMGNhN2IwMmUzYTkyOWZhNTQyMDkxYzhlN2Q1OWZhYTg1IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvd2Fy
bmluZy1pY29uLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29t
cG9uZW50cy93YXJuaW5nLWljb24uanMKQEAgLTEsOCArMSwxNiBAQAogCiBjbGFzcyBXYXJuaW5n
SWNvbiBleHRlbmRzIEJ1dHRvbkJhc2UgewotICAgIGNvbnN0cnVjdG9yKCkKKyAgICBjb25zdHJ1
Y3Rvcih3YXJuaW5nTWVzc2FnZSkKICAgICB7CiAgICAgICAgIHN1cGVyKCd3YXJuaW5nLWljb24n
KTsKKyAgICAgICAgdGhpcy5fd2FybmluZ01lc3NhZ2UgPSB3YXJuaW5nTWVzc2FnZTsKKyAgICB9
CisKKyAgICByZW5kZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIucmVuZGVyKCk7CisgICAgICAg
IGlmICh0aGlzLl93YXJuaW5nTWVzc2FnZSkKKyAgICAgICAgICAgIHRoaXMuY29udGVudCgnYnV0
dG9uJykudGl0bGUgPSB0aGlzLl93YXJuaW5nTWVzc2FnZTsKICAgICB9CiAKICAgICBzdGF0aWMg
c2l6ZUZhY3RvcigpIHsgcmV0dXJuIDAuNzsgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKaW5kZXggMDcw
NTRhZTgzNmFlMGEwYjY2NDJmZTBiODk5MDM4ODg2M2RmNTk5ZC4uNDFlYzRkZDIxOWIzMjg4YWMx
OWIzZDRmY2IxMDhlMDQ4ZjlhNjUyMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzCkBAIC0yNiw2ICsy
Niw3IEBAIGNsYXNzIEJ1aWxkUmVxdWVzdCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAg
ICAgIHRoaXMuX2J1aWxkSWQgPSBvYmplY3QuYnVpbGQ7CiAgICAgICAgIHRoaXMuX2NyZWF0ZWRB
dCA9IG5ldyBEYXRlKG9iamVjdC5jcmVhdGVkQXQpOwogICAgICAgICB0aGlzLl9yZXN1bHQgPSBu
dWxsOworICAgICAgICB0aGlzLl9zdGF0dXNEZXRhaWwgPSBvYmplY3Quc3RhdHVzRGV0YWlsOwog
ICAgIH0KIAogICAgIHVwZGF0ZVNpbmdsZXRvbihvYmplY3QpCkBAIC00MiwxMiArNDMsMTQgQEAg
Y2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgdGhp
cy5fc3RhdHVzID0gb2JqZWN0LnN0YXR1czsKICAgICAgICAgdGhpcy5fc3RhdHVzVXJsID0gb2Jq
ZWN0LnVybDsKICAgICAgICAgdGhpcy5fYnVpbGRJZCA9IG9iamVjdC5idWlsZDsKKyAgICAgICAg
dGhpcy5fc3RhdHVzRGV0YWlsID0gb2JqZWN0LnN0YXR1c0RldGFpbDsKICAgICB9CiAKICAgICB0
cmlnZ2VyYWJsZSgpIHsgcmV0dXJuIHRoaXMuX3RyaWdnZXJhYmxlOyB9CiAgICAgYW5hbHlzaXNU
YXNrSWQoKSB7IHJldHVybiB0aGlzLl9hbmFseXNpc1Rhc2tJZDsgfQogICAgIHRlc3RHcm91cElk
KCkgeyByZXR1cm4gdGhpcy5fdGVzdEdyb3VwSWQ7IH0KICAgICB0ZXN0R3JvdXAoKSB7IHJldHVy
biB0aGlzLl90ZXN0R3JvdXA7IH0KKyAgICBzdGF0dXNEZXRhaWwoKSB7IHJldHVybiB0aGlzLl9z
dGF0dXNEZXRhaWw7IH0KICAgICByZXBvc2l0b3J5R3JvdXAoKSB7IHJldHVybiB0aGlzLl9yZXBv
c2l0b3J5R3JvdXA7IH0KICAgICBwbGF0Zm9ybSgpIHsgcmV0dXJuIHRoaXMuX3BsYXRmb3JtOyB9
CiAgICAgdGVzdCgpIHsgcmV0dXJuIHRoaXMuX3Rlc3Q7IH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVz
dHMtdGVzdHMuanMKaW5kZXggODBjZWFmN2Y3NWMwMzAyMDJiNzQ4ZGU3NDg5NmMwOWM5NzMzYzhh
My4uZjZiNDE0Nzk3NDdhMWQwZDgzZjM2ZjYyODZhZDcwOTJiNzg1Y2U0MiAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMt
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTU3LDEwICs1NywxMCBAQCBkZXNjcmliZSgnL2Fw
aS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsxXVsnY3JlYXRlZEF0J10gPSAwOwogICAgICAgICAgICAgY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzJdWydjcmVhdGVkQXQnXSA9IDA7CiAgICAgICAgICAgICBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bM11bJ2NyZWF0ZWRBdCddID0gMDsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNr
OiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0
ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcs
IGNvbW1pdFNldDogJzQwMycsIHN0YXR1czogJ3BlbmRpbmcnLCB1cmw6IG51bGwsIGJ1aWxkOiBu
dWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzFdLCB7aWQ6ICc3MDUnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJh
YmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZv
cm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMScsIGNvbW1pdFNldDogJzQwNCcs
IHN0YXR1czogJ3BlbmRpbmcnLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9z
aXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91
cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czogJ3BlbmRpbmcn
LCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3MDcnLCB0
YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEn
LCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAn
MycsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCB1cmw6IG51bGwsIGJ1aWxk
OiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNrOiAnMTA4MCcsIHRyaWdn
ZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxh
dGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcsIGNvbW1pdFNldDogJzQw
MycsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXRhaWw6bnVsbCwgdXJsOiBudWxsLCBidWls
ZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXSwge2lkOiAnNzA1JywgdGFzazogJzEwODAnLCB0cmln
Z2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBs
YXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzEnLCBjb21taXRTZXQ6ICc0
MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGV0YWlsOm51bGwsIHVybDogbnVsbCwgYnVp
bGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0sIHtpZDogJzcwNicsIHRhc2s6ICcxMDgwJywgdHJp
Z2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBw
bGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcyJywgY29tbWl0U2V0OiAn
NDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0RldGFpbDpudWxsLCB1cmw6IG51bGwsIGJ1
aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3MDcnLCB0YXNrOiAnMTA4MCcsIHRy
aWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywg
cGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMycsIGNvbW1pdFNldDog
JzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXRhaWw6bnVsbCwgdXJsOiBudWxsLCBi
dWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CiAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21v
Y2stZGF0YS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3Vy
Y2VzL21vY2stZGF0YS5qcwppbmRleCA2MDkxNDU5NmRhNTY5NDcyYzRkYmZiYWVlMmJiMTNmMGZl
OGI4YTU1Li5kNGM5NDA3YWQzY2Y1Y2NlMDQwYzU3ZWVhNDE5M2I3MDk5ZDA1MjU2IDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2Nr
LWRhdGEuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNv
dXJjZXMvbW9jay1kYXRhLmpzCkBAIC0zMTAsNyArMzEwLDggQEAgTW9ja0RhdGEgPSB7CiAgICAg
ICAgICAgICAgICAgIndrIjogW29wdGlvbnMud2Via2l0UmV2aXNpb24gfHwgJzE5MTYyMicsICJV
bmtub3duIl0sCiAgICAgICAgICAgICAgICAgIm9zIjogW29wdGlvbnMub3N4UmV2aXNpb24gfHwg
JzEwLjExIDE1QTI4NCcsICJVbmtub3duIl0sCiAgICAgICAgICAgICAgICAgInNsYXZlbmFtZSI6
IFtvcHRpb25zLndvcmtlck5hbWUgfHwgImJvdDIwMiIsICJXb3JrZXIgKGRlcHJlY2F0ZWQpIl0s
Ci0gICAgICAgICAgICAgICAgIndvcmtlcm5hbWUiOiBbb3B0aW9ucy53b3JrZXJOYW1lIHx8ICJi
b3QyMDIiLCAiV29ya2VyIl0KKyAgICAgICAgICAgICAgICAid29ya2VybmFtZSI6IFtvcHRpb25z
Lndvcmtlck5hbWUgfHwgImJvdDIwMiIsICJXb3JrZXIiXSwKKyAgICAgICAgICAgICAgICAic3Rh
dHVzZGV0YWlsIjogW29wdGlvbnMuc3RhdHVzRGV0YWlsIHx8IG51bGwsICJVbmtub3duIl0KICAg
ICAgICAgICAgIH0KICAgICAgICAgfTsKICAgICB9LApAQCAtMzQ1LDcgKzM0Niw4IEBAIE1vY2tE
YXRhID0gewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogWycnLCAiVW5rbm93biJdLAog
ICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6IFsnJywgIlVua25vd24iXSwKICAgICAgICAgICAg
ICAgICAic2xhdmVuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldvcmtl
ciAoZGVwcmVjYXRlZCkiXSwKLSAgICAgICAgICAgICAgICAid29ya2VybmFtZSI6IFtvcHRpb25z
Lndvcmtlck5hbWUgfHwgImJvdDIwMiIsICJXb3JrZXIiXQorICAgICAgICAgICAgICAgICJ3b3Jr
ZXJuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldvcmtlciJdLAorICAg
ICAgICAgICAgICAgICJzdGF0dXNkZXRhaWwiOiBbb3B0aW9ucy5zdGF0dXNEZXRhaWwgfHwgbnVs
bCwgIlVua25vd24iXQogICAgICAgICAgICAgfQogICAgICAgICB9OyAgIAogICAgIH0sCmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMt
YnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKaW5k
ZXggZTYxMjU4MjY2Y2Q4ZTBjNTRkNGMwMzZlNTRkOWI3ZDEwZjg2ZTE1ZS4uZGZhNWNjYzllY2Ji
YzI1NDlhZGExYTY4ZWVjZTJiMWViZmFmMjNlZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRl
c3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMt
c3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTc4LDcgKzE3OCw3IEBAIGZ1
bmN0aW9uIGNyZWF0ZVRlc3RHcm91cCh0YXNrX25hbWU9J2N1c3RvbSB0YXNrJykgewogICAgIH0p
OwogfQogCi1hc3luYyBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpCithc3luYyBm
dW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKQogewogICAgIGNvbnN0IHBhdGNoRmls
ZSA9IGF3YWl0IFRlbXBvcmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGUoJ3BhdGNoLmRhdCcsICdw
YXRjaCBmaWxlJyk7CiAgICAgY29uc3Qgb3JpZ2luYWxQcml2aWxlZ2VkQVBJID0gZ2xvYmFsLlBy
aXZpbGVnZWRBUEk7CkBAIC0zMzAsNiArMzMwLDM1NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgnc2hvdWxk
IGtlZXAgdXBkYXRpbmcgYnVpbGQgc3RhdHVzJywgYXN5bmMgKCkgPT4geworICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CisgICAgICAgIGxldCB0YXNrSWQg
PSBudWxsOworICAgICAgICBsZXQgc3luY1Byb21pc2U7CisgICAgICAgIGxldCB0cmlnZ2VyYWJs
ZSA9IGF3YWl0IGNyZWF0ZVRyaWdnZXJhYmxlKCk7CisgICAgICAgIGxldCB0ZXN0R3JvdXAgPSBh
d2FpdCBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsKKworICAgICAgICB0YXNrSWQgPSB0ZXN0
R3JvdXAudGFzaygpLmlkKCk7CisgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBsZXQgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGV0
YWlsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisKKyAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBsZXQgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgbGV0IG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0RldGFpbCgpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAg
bGV0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsK
KyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
JywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30p
OworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVy
cy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0
Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94
JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScs
ICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnfX0pOworICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwKKyAgICAgICAgICAg
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwor
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUo
J3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgc3RhdHVzRGV0YWlsOiAnQnVpbGRp
bmcgV2ViS2l0J30pKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiks
IHt9KTsKKyAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CisKKyAgICAgICAgbGV0IHRlc3RHcm91
cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXRhaWwoKSwgJ0J1aWxkaW5nIFdlYktpdCcpOworICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAg
ICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OworICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOworCisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
dGFpbCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOworCisgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAg
ICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7Cisg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLAorICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwg
YnVpbGROdW1iZXI6IDEyNCwgc3RhdHVzRGV0YWlsOiAnQ29tcGlsaW5nIFdURid9KSk7CisgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQg
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwg
e30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAg
ICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERh
dGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyks
IGJ1aWxkUmVxdWVzdElkOiAxLCBzdGF0dXNEZXRhaWw6ICdDb21waWxpbmcgV1RGJ30pXQorICAg
ICAgICB9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsK
KyAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CisKKyAgICAgICAgYXdhaXQgVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAg
ICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
RGV0YWlsKCksICdDb21waWxpbmcgV1RGJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgd2Via2l0UGF0Y2ggPSBj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJr
aXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGV0YWlsKCksIG51bGwpOworICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAg
ICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAg
ICAgYXdhaXQgdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsKKworICAgICAgICB0
ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwor
CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOworICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CisgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXRhaWwoKSwgJ0NvbXBpbGluZyBXVEYn
KTsKKyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKKyAgICAgICAgbGV0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CisKKyAgICAgICAgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICBhc3NlcnQob3RoZXJC
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzRGV0YWlsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNl
dCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOworICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksCisgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDEyNH0pKTsKKyAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9T
VCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAg
ICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1
bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13
ayc6IHRydWV9fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRl
cicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
KworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAg
ICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0Rh
dGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBi
dWlsZE51bWJlcjogMTI0fSldCisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290
aGVyIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKKworICAg
ICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0RldGFpbCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIGNvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAg
ICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAg
ICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwor
ICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwor
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtp
dFJvb3RdKTsKKworICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMV07CisgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OworICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0RldGFpbCgpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAg
b3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBh
d2FpdCB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7CisKKyAgICAgICAg
dGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsK
KworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGV0YWlsKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAg
ICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OworICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOworICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMu
ZGF0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbd2Via2l0Um9vdF0pOworCisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0Nv
bXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXRhaWwoKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworCisgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBjb25zdCBv
dGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OworICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyNC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOworICAgIH0pOworCiAgICAgaXQoJ3Nob3Vs
ZCBzY2hlZHVsZSBhIGJ1aWxkIHRvIGJ1aWxkIGEgcGF0Y2gnLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gTW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKICAgICAgICAgbGV0IHRyaWdn
ZXJhYmxlOwpAQCAtMzM3LDcgKzY4Nyw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICBsZXQgc3luY1Byb21pc2U7CiAgICAgICAgIHJldHVybiBjcmVh
dGVUcmlnZ2VyYWJsZSgpLnRoZW4oKG5ld1RyaWdnZXJhYmxlKSA9PiB7CiAgICAgICAgICAgICB0
cmlnZ2VyYWJsZSA9IG5ld1RyaWdnZXJhYmxlOwotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRl
c3RHcm91cFdpaFBhdGNoKCk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2l0
aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAg
dGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CkBA
IC02MTAsNyArOTYwLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKICAgICAgICAgcmV0dXJuIGNyZWF0ZVRyaWdnZXJh
YmxlKGNvbmZpZ1dpdGhQbGF0Zm9ybU5hbWUpLnRoZW4oKG5ld1RyaWdnZXJhYmxlKSA9PiB7CiAg
ICAgICAgICAgICB0cmlnZ2VyYWJsZSA9IG5ld1RyaWdnZXJhYmxlOwotICAgICAgICAgICAgcmV0
dXJuIGNyZWF0ZVRlc3RHcm91cFdpaFBhdGNoKCk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRl
VGVzdEdyb3VwV2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewog
ICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKSk7CkBAIC04ODQsNyArMTIzNCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICBsZXQgZmlyc3RSb290ID0gbnVsbDsKICAgICAgICAgcmV0
dXJuIGNyZWF0ZVRyaWdnZXJhYmxlKCkudGhlbigobmV3VHJpZ2dlcmFibGUpID0+IHsKICAgICAg
ICAgICAgIHRyaWdnZXJhYmxlID0gbmV3VHJpZ2dlcmFibGU7Ci0gICAgICAgICAgICByZXR1cm4g
Y3JlYXRlVGVzdEdyb3VwV2loUGF0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0
R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAg
ICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpKTsKQEAgLTk4Nyw3ICsxMzM3LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKICAgICAgICAgcmV0dXJuIGNyZWF0
ZVRyaWdnZXJhYmxlKCkudGhlbigobmV3VHJpZ2dlcmFibGUpID0+IHsKICAgICAgICAgICAgIHRy
aWdnZXJhYmxlID0gbmV3VHJpZ2dlcmFibGU7Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVz
dEdyb3VwV2loUGF0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3JvdXBXaXRo
UGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0
YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwpAQCAtMTA3Niw3ICsxNDI2LDcg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGxldCBz
eW5jUHJvbWlzZTsKICAgICAgICAgcmV0dXJuIGNyZWF0ZVRyaWdnZXJhYmxlKCkudGhlbigobmV3
VHJpZ2dlcmFibGUpID0+IHsKICAgICAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3VHJpZ2dlcmFi
bGU7Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2loUGF0Y2goKTsKKyAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygp
LmlkKCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xz
L2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggYjkxMjcyOGZhYzczNWUyMmUxOGMwNzE4ZDBjM2Nk
MzRiMmVhMWUzOS4uYTRjNWIwMDJhYWY1YjFmZTE3OWM5NTUyOTEyZjc2M2Y5M2ZhMWQ2NCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNl
ci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3lu
Y2VyLmpzCkBAIC0xNSw3ICsxNSw3IEBAIGNsYXNzIEJ1aWxkYm90QnVpbGRFbnRyeSB7CiAgICAg
ICAgIGFzc2VydC5lcXVhbChzeW5jZXIuYnVpbGRlcklEKCksIHJhd0RhdGFbJ2J1aWxkZXJpZCdd
KTsKIAogICAgICAgICB0aGlzLl9zeW5jZXIgPSBzeW5jZXI7Ci0gICAgICAgIHRoaXMuX2J1aWxk
Ym90QnVpbGRSZXF1ZXN0SWQgPSByYXdEYXRhWydidWlsZHJlcXVlc3RpZCddCisgICAgICAgIHRo
aXMuX2J1aWxkYm90QnVpbGRSZXF1ZXN0SWQgPSByYXdEYXRhWydidWlsZHJlcXVlc3RpZCddOwog
ICAgICAgICB0aGlzLl9oYXNGaW5pc2hlZCA9IHJhd0RhdGFbJ2NvbXBsZXRlJ107CiAgICAgICAg
IHRoaXMuX2lzUGVuZGluZyA9ICdjbGFpbWVkJyBpbiByYXdEYXRhICYmICFyYXdEYXRhWydjbGFp
bWVkJ107CiAgICAgICAgIHRoaXMuX2lzSW5Qcm9ncmVzcyA9ICF0aGlzLl9pc1BlbmRpbmcgJiYg
IXRoaXMuX2hhc0ZpbmlzaGVkOwpAQCAtMjMsNiArMjMsNyBAQCBjbGFzcyBCdWlsZGJvdEJ1aWxk
RW50cnkgewogICAgICAgICB0aGlzLl93b3JrZXJOYW1lID0gcmF3RGF0YVsncHJvcGVydGllcydd
ICYmIHJhd0RhdGFbJ3Byb3BlcnRpZXMnXVsnd29ya2VybmFtZSddID8gcmF3RGF0YVsncHJvcGVy
dGllcyddWyd3b3JrZXJuYW1lJ11bMF0gOiBudWxsOwogICAgICAgICB0aGlzLl9idWlsZFJlcXVl
c3RJZCA9IHJhd0RhdGFbJ3Byb3BlcnRpZXMnXSAmJiByYXdEYXRhWydwcm9wZXJ0aWVzJ11bc3lu
Y2VyLl9idWlsZFJlcXVlc3RQcm9wZXJ0eU5hbWVdCiAgICAgICAgICAgICA/IHJhd0RhdGFbJ3By
b3BlcnRpZXMnXVtzeW5jZXIuX2J1aWxkUmVxdWVzdFByb3BlcnR5TmFtZV1bMF0gOiBudWxsOwor
ICAgICAgICB0aGlzLl9zdGF0dXNEZXRhaWwgPSByYXdEYXRhWydwcm9wZXJ0aWVzJ10gJiYgcmF3
RGF0YVsncHJvcGVydGllcyddWydzdGF0dXNkZXRhaWwnXSA/IHJhd0RhdGFbJ3Byb3BlcnRpZXMn
XVsnc3RhdHVzZGV0YWlsJ11bMF0gOiBudWxsOwogICAgIH0KIAogICAgIHN5bmNlcigpIHsgcmV0
dXJuIHRoaXMuX3N5bmNlcjsgfQpAQCAtMzMsNiArMzQsNyBAQCBjbGFzcyBCdWlsZGJvdEJ1aWxk
RW50cnkgewogICAgIGlzUGVuZGluZygpIHsgcmV0dXJuIHRoaXMuX2lzUGVuZGluZzsgfQogICAg
IGlzSW5Qcm9ncmVzcygpIHsgcmV0dXJuIHRoaXMuX2lzSW5Qcm9ncmVzczsgfQogICAgIGhhc0Zp
bmlzaGVkKCkgeyByZXR1cm4gdGhpcy5faGFzRmluaXNoZWQ7IH0KKyAgICBzdGF0dXNEZXRhaWwo
KSB7IHJldHVybiB0aGlzLl9zdGF0dXNEZXRhaWw7IH0KICAgICB1cmwoKSB7IHJldHVybiB0aGlz
LmlzUGVuZGluZygpID8gdGhpcy5fc3luY2VyLnVybEZvclBlbmRpbmdCdWlsZCh0aGlzLl9idWls
ZGJvdEJ1aWxkUmVxdWVzdElkKSA6IHRoaXMuX3N5bmNlci51cmxGb3JCdWlsZE51bWJlcih0aGlz
Ll9idWlsZE51bWJlcik7IH0KIAogICAgIGJ1aWxkUmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNOZWVk
ZWQocmVxdWVzdCkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29s
cy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwppbmRleCBkY2RkZGY0MWE2Y2ViODU3ODFjOTA1
ZDYxZmUyYzc5Y2EwMDk1NzA0Li5mYmNmZjdkMGE1MDM4NGQwYmU2YWE0ZWIxMjViNzFkYzI3MDQ5
YTkyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRi
b3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pz
L2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBAIC0xODQsMTAgKzE4NCwxMyBAQCBjbGFzcyBCdWls
ZGJvdFRyaWdnZXJhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U3RhdHVzID0g
ZW50cnkuYnVpbGRSZXF1ZXN0U3RhdHVzSWZVcGRhdGVJc05lZWRlZChyZXF1ZXN0KTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKG5ld1N0YXR1cykgewogICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fbG9nZ2VyLmxvZyhgVXBkYXRpbmcgdGhlIHN0YXR1cyBvZiBidWlsZCByZXF1ZXN0ICR7
cmVxdWVzdC5pZCgpfSBmcm9tICR7cmVxdWVzdC5zdGF0dXMoKX0gdG8gJHtuZXdTdGF0dXN9YCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzW2VudHJ5LmJ1aWxkUmVxdWVzdElkKCld
ID0ge3N0YXR1czogbmV3U3RhdHVzLCB1cmw6IGVudHJ5LnVybCgpfTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHVwZGF0ZXNbZW50cnkuYnVpbGRSZXF1ZXN0SWQoKV0gPSB7c3RhdHVzOiBuZXdT
dGF0dXMsIHVybDogZW50cnkudXJsKCksIHN0YXR1c0RldGFpbDogZW50cnkuc3RhdHVzRGV0YWls
KCl9OwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFyZXF1ZXN0LnN0YXR1c1VybCgp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9nKGBTZXR0aW5nIHRo
ZSBzdGF0dXMgVVJMIG9mIGJ1aWxkIHJlcXVlc3QgJHtyZXF1ZXN0LmlkKCl9IHRvICR7ZW50cnku
dXJsKCl9YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzW2VudHJ5LmJ1aWxkUmVx
dWVzdElkKCldID0ge3N0YXR1czogcmVxdWVzdC5zdGF0dXMoKSwgdXJsOiBlbnRyeS51cmwoKX07
CisgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzW2VudHJ5LmJ1aWxkUmVxdWVzdElkKCld
ID0ge3N0YXR1czogcmVxdWVzdC5zdGF0dXMoKSwgdXJsOiBlbnRyeS51cmwoKSwgc3RhdHVzRGV0
YWlsOiBlbnRyeS5zdGF0dXNEZXRhaWwoKX07CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAocmVxdWVzdC5zdGF0dXNEZXRhaWwoKSAhPSBlbnRyeS5zdGF0dXNEZXRhaWwoKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgU2V0dGluZyB0aGUgc3RhdHVz
IGRldGFpbCBvZiBidWlsZCByZXF1ZXN0ICR7cmVxdWVzdC5pZCgpfSBmcm9tICR7cmVxdWVzdC5z
dGF0dXNEZXRhaWwoKX0gdG8gJHtlbnRyeS5zdGF0dXNEZXRhaWwoKX1gKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHVwZGF0ZXNbZW50cnkuYnVpbGRSZXF1ZXN0SWQoKV0gPSB7c3RhdHVzOiBy
ZXF1ZXN0LnN0YXR1cygpLCB1cmw6IGVudHJ5LnVybCgpLCBzdGF0dXNEZXRhaWw6IGVudHJ5LnN0
YXR1c0RldGFpbCgpfTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCmluZGV4IDk2NDFlNDAyMzAz
YmVhZGVlNTIwNjNkMDBmMzU1OWZkYjE3M2M0NmMuLmZmZjg2ZmM2NWRiNWM3NjY3YmUwNzcxMTQ1
YmEzOTk4MGI4YWMxNTEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0
LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKQEAgLTI4Myw3ICsyODMs
NyBAQCBmdW5jdGlvbiBzYW1wbGVQZW5kaW5nQnVpbGRSZXF1ZXN0cyhidWlsZFJlcXVlc3RJZCwg
YnVpbGRUaW1lLCB3b3JrZXJOYW1lLCBidWlsZAogICAgIH07CiB9CiAKLWZ1bmN0aW9uIHNhbXBs
ZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCBpc0NvbXBsZXRlLCBidWlsZFJlcXVlc3RJZCwgYnVpbGRO
dW1iZXIsIGJ1aWxkZXJJZCkKK2Z1bmN0aW9uIHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCBp
c0NvbXBsZXRlLCBidWlsZFJlcXVlc3RJZCwgYnVpbGROdW1iZXIsIGJ1aWxkZXJJZCwgc3RhdHVz
RGV0YWlsKQogewogICAgIHJldHVybiB7CiAgICAgICAgICJidWlsZGVyaWQiOiBidWlsZGVySWQg
fHwgMTAyLApAQCAtMzAyLDE0ICszMDIsMTUgQEAgZnVuY3Rpb24gc2FtcGxlQnVpbGREYXRhKHdv
cmtlck5hbWUsIGlzQ29tcGxldGUsIGJ1aWxkUmVxdWVzdElkLCBidWlsZE51bWJlciwgYnUKICAg
ICAgICAgICAgICJwbGF0Zm9ybSI6IFsibWFjIiwgIlVua25vd24iXSwKICAgICAgICAgICAgICJz
Y2hlZHVsZXIiOiBbIkFCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxl
ciIsICJTY2hlZHVsZXIiXSwKICAgICAgICAgICAgICJzbGF2ZW5hbWUiOiBbd29ya2VyTmFtZSB8
fCAiQUJUZXN0LWlQYWQtMCIsICJXb3JrZXIgKGRlcHJlY2F0ZWQpIl0sCi0gICAgICAgICAgICAi
d29ya2VybmFtZSI6IFt3b3JrZXJOYW1lIHx8ICJBQlRlc3QtaVBhZC0wIiwgIldvcmtlciJdCisg
ICAgICAgICAgICAid29ya2VybmFtZSI6IFt3b3JrZXJOYW1lIHx8ICJBQlRlc3QtaVBhZC0wIiwg
IldvcmtlciJdLAorICAgICAgICAgICAgInN0YXR1c2RldGFpbCI6IFtzdGF0dXNEZXRhaWwgfHwg
bnVsbCwgIlVua25vd24iXSwKICAgICAgICAgfQogICAgIH07CiB9CiAKIGZ1bmN0aW9uIHNhbXBs
ZUluUHJvZ3Jlc3NCdWlsZERhdGEod29ya2VyTmFtZSkKIHsKLSAgICByZXR1cm4gc2FtcGxlQnVp
bGREYXRhKHdvcmtlck5hbWUsIGZhbHNlKTsKKyAgICByZXR1cm4gc2FtcGxlQnVpbGREYXRhKHdv
cmtlck5hbWUsIGZhbHNlLCBudWxsLCBudWxsLCBudWxsLCAnYnVpbGRpbmcnKTsKIH0KIAogZnVu
Y3Rpb24gc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKHdvcmtlck5hbWUpCkBAIC0xMTE3LDYgKzExMTgs
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZW50
cnkuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS5zdGF0dXNEZXRhaWwoKSwgbnVsbCk7CiAgICAgICAgIH0p
OwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgaW4t
cHJvZ3Jlc3MgYnVpbGQnLCAoKSA9PiB7CkBAIC0xMTM0LDYgKzExMzYsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNJ
blByb2dyZXNzKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgp
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82MTQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlbnRyeS5zdGF0dXNEZXRhaWwoKSwgJ2J1aWxkaW5nJyk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgZmluaXNo
ZWQgYnVpbGQnLCAoKSA9PiB7CkBAIC0xMTUxLDYgKzExNTQsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9n
cmVzcygpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkuc3RhdHVzRGV0YWlsKCksIG51bGwpOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIG1peCBvZiBpbi1wcm9ncmVz
cyBhbmQgZmluaXNoZWQgYnVpbGRzJywgKCkgPT4gewpAQCAtMTE2OSw2ICsxMTczLDcgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0Lm9rKGVu
dHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmlu
aXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvNjE0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkuc3RhdHVzRGV0YWlsKCksICdidWlsZGluZycpOwogCiAgICAg
ICAgICAgICBlbnRyeSA9IGVudHJpZXNbMV07CiAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkg
aW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwpAQCAtMTE3OSw2ICsxMTg0LDcgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFl
bnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaGFzRmlu
aXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvMTc1NScpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnN0YXR1c0RldGFpbCgpLCBudWxsKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374445</attachid>
            <date>2019-07-18 23:40:46 -0700</date>
            <delta_ts>2019-07-18 23:45:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199810-20190718234045.patch</filename>
            <type>text/plain</type>
            <size>45963</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjM1CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1NTE5YzMzZjE1N2JmNWMwNGU1NjkzNDQ3YjU4YzZhNWQ3YmY1ODVkLi42ZjRiY2Y5ZWZl
MGQ1NmU5MmU0YjBlMGExN2U4MDBlYTVhYmI1MTVmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxOS0wNy0xNSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBQcm92aWRlIGJ1aWxkIHJlcXVlc3Qgc3RhdHVzIGRlc2Ny
aXB0aW9uIGluZm9ybWF0aW9uIG9uIGRhc2hib2FyZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTgxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBidWlsZCByZXF1ZXN0IHN0YXR1cyBkZXRhaWwg
dG8gc2hvdyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBmb3IgYSBidWlsZCBhbmQgc2hvdyBpdCBpbiBk
YXNoYm9hcmQuCisgICAgICAgIFVwZGF0ZSBTUUwgZm9yIGV4aXN0aW5nIGluc3RhbmNlOgorICAg
ICAgICAgICAgQUxURVIgVEFCTEUgYnVpbGRfcmVxdWVzdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJ
U1RTIHJlcXVlc3Rfc3RhdHVzX2Rlc2NyaXB0aW9uIHZhcmNoYXIoMTAyNCkgREVGQVVMVCBOVUxM
OworCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFkZGVkIHJlcXVlc3Rfc3RhdHVzX2Rl
c2NyaXB0aW9uIGNvbHVtbi4KKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNlLnNxbDogQSBmaWxl
IHN0b3JlcyBtaWdyYXRpb24gU1FMIGZvciBleGlzdGluZyBpbnN0YW5jZS4KKyAgICAgICAgKiBw
dWJsaWMvYXBpL2J1aWxkLXJlcXVlc3RzLnBocDogQWRkZWQgc3VwcG9ydCBmb3IgdXBkYXRpbmcg
cmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24uCisgICAgICAgICogcHVibGljL2luY2x1ZGUvYnVp
bGQtcmVxdWVzdHMtZmV0Y2hlci5waHA6IEV4cG9zZWQgYHN0YXR1c0Rlc2NyaXB0aW9uYCB0byBB
UEkuCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1yZXZpc2lvbi10
YWJsZS5qczogQWRkZWQgVUkgZm9yIHNob3dpbmcgYnVpbGQgcmVxdWVzdCBzdGF0dXMgZGV0YWls
LgorICAgICAgICAoVGVzdEdyb3VwUmV2aXNpb25UYWJsZS5wcm90b3R5cGUuX3JlbmRlclRhYmxl
KToKKyAgICAgICAgKFRlc3RHcm91cFJldmlzaW9uVGFibGUucHJvdG90eXBlLl9idWlsZERlc2Ny
aXB0aW9uQ2VsbCk6CisgICAgICAgIChUZXN0R3JvdXBSZXZpc2lvblRhYmxlLmNzc1RlbXBsYXRl
KToKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy93YXJuaW5nLWljb24uanM6IEV4dGVu
ZGVkIHdhcm5pbmcgaWNvbiB0byBiZSBhYmxlIHRvIGN1c3RvbWl6ZSBpbmZvcm1hdGlvbiBvbiBo
b3Zlci4KKyAgICAgICAgKFdhcm5pbmdJY29uKToKKyAgICAgICAgKFdhcm5pbmdJY29uLnByb3Rv
dHlwZS5yZW5kZXIpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5q
czogQWRkZWQgJ3N0YXR1c0Rlc2NyaXB0aW9uJyBmaWVsZC4KKyAgICAgICAgKEJ1aWxkUmVxdWVz
dCk6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6Cisg
ICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBlLnN0YXR1c0Rlc2NyaXB0aW9uKToKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzOiBGaXhlZCB1bml0
IHRlc3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgor
ICAgICAgICAoTW9ja0RhdGEuc2V0IG1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVy
KTogQWRkZWQgJ3N0YXR1c19kZXNjcmlwdGlvbicgaW4gYnVpbGRib3QgbW9jayBkYXRhLgorICAg
ICAgICAoTW9ja0RhdGEuc2FtcGxlQnVpbGREYXRhKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
dG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0
cy4KKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6IEFkZGVkICdzdGF0dXNE
ZXNjcmlwdGlvbicgZmllbGQgdG8gJ0J1aWxkYm90QnVpbGRFbnRyeScuCisgICAgICAgIChCdWls
ZGJvdEJ1aWxkRW50cnkucHJvdG90eXBlLmluaXRpYWxpemUpOgorICAgICAgICAoQnVpbGRib3RC
dWlsZEVudHJ5LnByb3RvdHlwZS5zdGF0dXNEZXNjcmlwdGlvbik6CisgICAgICAgICogdG9vbHMv
anMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxl
LnByb3RvdHlwZS5fcHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKToKKyAgICAgICAgKiB1bml0LXRl
c3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogQWRkZWQgdGVzdCBjb2RlIGZvciBCdWlsZGJv
dEJ1aWxkRW50cnkuc3RhdHVzRGVzY3JpcHRpb24uCisKIDIwMTktMDctMDMgIERld2VpIFpodSAg
PGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdCBmcmVzaG5lc3MgcGFnZSBzaG91
bGQgZXhwb3NlIHJldmlzaW9uIGluZm9ybWF0aW9uIGZvciBsYXRlc3QgYnVpbGQgb24gdG9vbHRp
cC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNx
bCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAppbmRleCBjYjg4
NDVjODNiMGE1MzVmMTQ2OGQ0N2U5OWQ2ZTM2ZjA3NzI1Yzg2Li4zYmJlMzA4N2I3YTY3ZGI0NTUy
Njc4OWVlMDg5MWQ1ODg3MDk4NzVmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvaW5pdC1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQt
ZGF0YWJhc2Uuc3FsCkBAIC0zMTQsNiArMzE0LDcgQEAgQ1JFQVRFIFRBQkxFIGJ1aWxkX3JlcXVl
c3RzICgKICAgICByZXF1ZXN0X2NvbW1pdF9zZXQgaW50ZWdlciBSRUZFUkVOQ0VTIGNvbW1pdF9z
ZXRzIE5PVCBOVUxMLAogICAgIHJlcXVlc3Rfc3RhdHVzIGJ1aWxkX3JlcXVlc3Rfc3RhdHVzX3R5
cGUgTk9UIE5VTEwgREVGQVVMVCAncGVuZGluZycsCiAgICAgcmVxdWVzdF91cmwgdmFyY2hhcigx
MDI0KSwKKyAgICByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERFRkFV
TFQgTlVMTCwKICAgICByZXF1ZXN0X2J1aWxkIGludGVnZXIgUkVGRVJFTkNFUyBidWlsZHMsCiAg
ICAgcmVxdWVzdF9jcmVhdGVkX2F0IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChDVVJSRU5U
X1RJTUVTVEFNUCBBVCBUSU1FIFpPTkUgJ1VUQycpLAogICAgIENPTlNUUkFJTlQgYnVpbGRfcmVx
dWVzdF9vcmRlcl9tdXN0X2JlX3VuaXF1ZV9pbl9ncm91cCBVTklRVUUocmVxdWVzdF9ncm91cCwg
cmVxdWVzdF9vcmRlciksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAKaW5kZXggNDk3Mzc2ZDBkODcyYmRmMjljNTI2NmY2
OTI4NDdjM2QwYjI4ODEzZS4uZjRjMzY2MjlkOWQyMjZhZDg0ZTdiOWU1MTMxZGEzMjhlODg4YmMy
NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvYnVpbGQt
cmVxdWVzdHMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2J1
aWxkLXJlcXVlc3RzLnBocApAQCAtNDYsNiArNDYsNyBAQCBmdW5jdGlvbiB1cGRhdGVfYnVpbGRz
KCRkYiwgJHVwZGF0ZXMpIHsKICAgICAgICAgJGlkID0gaW50dmFsKCRpZCk7CiAgICAgICAgICRz
dGF0dXMgPSAkaW5mb1snc3RhdHVzJ107CiAgICAgICAgICR1cmwgPSBhcnJheV9nZXQoJGluZm8s
ICd1cmwnKTsKKyAgICAgICAgJHN0YXR1c19kZXNjcmlwdGlvbiA9IGFycmF5X2dldCgkaW5mbywg
J3N0YXR1c0Rlc2NyaXB0aW9uJyk7CiAgICAgICAgICRyZXF1ZXN0X3JvdyA9ICRkYi0+c2VsZWN0
X2ZpcnN0X3JvdygnYnVpbGRfcmVxdWVzdHMnLCAncmVxdWVzdCcsIGFycmF5KCdpZCcgPT4gJGlk
KSk7CiAgICAgICAgIGlmICgkc3RhdHVzID09ICdmYWlsZWRJZk5vdENvbXBsZXRlZCcpIHsKICAg
ICAgICAgICAgIGlmICghJHJlcXVlc3Rfcm93KSB7CkBAIC02MCwxNCArNjEsMTMgQEAgZnVuY3Rp
b24gdXBkYXRlX2J1aWxkcygkZGIsICR1cGRhdGVzKSB7CiAgICAgICAgICAgICAgICAgICAgIFdI
RVJFIHJlcXVlc3RfZ3JvdXAgPSAkMSBBTkQgcmVxdWVzdF9vcmRlciA+ICQyJywKICAgICAgICAg
ICAgICAgICAgICAgYXJyYXkoJHJlcXVlc3Rfcm93WydyZXF1ZXN0X2dyb3VwJ10sICRyZXF1ZXN0
X3Jvd1sncmVxdWVzdF9vcmRlciddKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAkZGIt
PnVwZGF0ZV9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBhcnJheSgnaWQnID0+ICRp
ZCksIGFycmF5KCdzdGF0dXMnID0+ICdmYWlsZWQnLCAndXJsJyA9PiAkdXJsKSk7CisgICAgICAg
ICAgICAkZGItPnVwZGF0ZV9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBhcnJheSgn
aWQnID0+ICRpZCksIGFycmF5KCdzdGF0dXMnID0+ICdmYWlsZWQnLCAndXJsJyA9PiAkdXJsLCAn
c3RhdHVzX2Rlc2NyaXB0aW9uJyA9PiAkc3RhdHVzX2Rlc2NyaXB0aW9uKSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWluX2FycmF5KCRzdGF0dXMsIGFycmF5KCdwZW5kaW5n
JywgJ3NjaGVkdWxlZCcsICdydW5uaW5nJywgJ2ZhaWxlZCcsICdjb21wbGV0ZWQnLCAnY2FuY2Vs
ZWQnKSkpIHsKICAgICAgICAgICAgICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQnVpbGRSZXF1ZXN0U3RhdHVz
JywgYXJyYXkoJ2J1aWxkUmVxdWVzdCcgPT4gJGlkLCAnc3RhdHVzJyA9PiAkc3RhdHVzKSk7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAkZGItPnVwZGF0ZV9yb3coJ2J1aWxkX3JlcXVlc3Rz
JywgJ3JlcXVlc3QnLCBhcnJheSgnaWQnID0+ICRpZCksIGFycmF5KCdzdGF0dXMnID0+ICRzdGF0
dXMsICd1cmwnID0+ICR1cmwpKTsKLSAgICAgICAgICAgICR0ZXN0X2dyb3VwX2lkID0gJHJlcXVl
c3Rfcm93WydyZXF1ZXN0X2dyb3VwJ107CisgICAgICAgICAgICAkZGItPnVwZGF0ZV9yb3coJ2J1
aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBhcnJheSgnaWQnID0+ICRpZCksIGFycmF5KCdzdGF0
dXMnID0+ICRzdGF0dXMsICd1cmwnID0+ICR1cmwsICdzdGF0dXNfZGVzY3JpcHRpb24nID0+ICRz
dGF0dXNfZGVzY3JpcHRpb24pKTsKICAgICAgICAgICAgIGlmICgkc3RhdHVzICE9ICdmYWlsZWQn
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hl
ci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVx
dWVzdHMtZmV0Y2hlci5waHAKaW5kZXggYjM4ODc3OWIyN2QzZjkzMDU0Mzg4Y2Y5NWU2MmMzMTkw
NzE5YWUyOC4uMjY4OWU0NTdlNThhMTExNTkyNjhhM2M5MzQ2ODE0MDc0NjkyMWZjNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVl
c3RzLWZldGNoZXIucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5j
bHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocApAQCAtOTIsNiArOTIsNyBAQCBjbGFzcyBC
dWlsZFJlcXVlc3RzRmV0Y2hlciB7CiAgICAgICAgICAgICAgICAgJ3VybCcgPT4gJHJvd1sncmVx
dWVzdF91cmwnXSwKICAgICAgICAgICAgICAgICAnYnVpbGQnID0+ICRyb3dbJ3JlcXVlc3RfYnVp
bGQnXSwKICAgICAgICAgICAgICAgICAnY3JlYXRlZEF0JyA9PiAkcm93WydyZXF1ZXN0X2NyZWF0
ZWRfYXQnXSA/IHN0cnRvdGltZSgkcm93WydyZXF1ZXN0X2NyZWF0ZWRfYXQnXSkgKiAxMDAwIDog
TlVMTCwKKyAgICAgICAgICAgICAgICAnc3RhdHVzRGVzY3JpcHRpb24nID0+ICRyb3dbJ3JlcXVl
c3Rfc3RhdHVzX2Rlc2NyaXB0aW9uJ10sCiAgICAgICAgICAgICApKTsKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gJHJlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmV2aXNpb24tdGFibGUuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1y
ZXZpc2lvbi10YWJsZS5qcwppbmRleCAwM2VmMTYwNTcxYWE4MTg4ZDVhOWI5YjdlMGM0YjAzZmIz
ZjU2Nzg3Li5jMTI1Mzc0ZGJjM2IxZjU5M2Q4OWQyYzlmMjM2OWJiOTg4ZTQyMDA1IDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1n
cm91cC1yZXZpc2lvbi10YWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1yZXZpc2lvbi10YWJsZS5qcwpAQCAtODksNyAr
ODksNiBAQCBjbGFzcyBUZXN0R3JvdXBSZXZpc2lvblRhYmxlIGV4dGVuZHMgQ29tcG9uZW50QmFz
ZSB7CiAgICAgICAgIGNvbnN0IGFkZGl0aW9uYWxSZXBvc2l0b3J5TGlzdCA9IFJlcG9zaXRvcnku
c29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChbLi4uYWRkaXRpb25hbFJlcG9zaXRvcnlT
ZXRdKTsKIAogICAgICAgICBjb25zdCBlbGVtZW50ID0gQ29tcG9uZW50QmFzZS5jcmVhdGVFbGVt
ZW50OwotICAgICAgICBjb25zdCBsaW5rID0gQ29tcG9uZW50QmFzZS5jcmVhdGVMaW5rOwogICAg
ICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCdyZXZpc2lvbi10YWJsZScpLCBb
CiAgICAgICAgICAgICBlbGVtZW50KCd0aGVhZCcsIFsKICAgICAgICAgICAgICAgICBlbGVtZW50
KCd0aCcsICdDb25maWd1cmF0aW9uJyksCkBAIC0xMDYsMTIgKzEwNSwzMCBAQCBjbGFzcyBUZXN0
R3JvdXBSZXZpc2lvblRhYmxlIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3RlZFJlcG9zaXRvcnlMaXN0Lm1hcCgocmVwb3NpdG9yeSkgPT4gdGhpcy5f
YnVpbGRDb21taXRDZWxsKGVudHJ5LCByZXBvc2l0b3J5LCBwYXRjaGVkUGVwb3NpdG9yeVNldC5o
YXMocmVwb3NpdG9yeSkpKSwKICAgICAgICAgICAgICAgICAgICAgaGFzQ3VzdG9tUm9vdHMgPyB0
aGlzLl9idWlsZEN1c3RvbVJvb3RzQ2VsbChlbnRyeSkgOiBbXSwKICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudCgndGQnLCBlbnRyeS5sYWJlbCksCi0gICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQoJ3RkJywgcmVxdWVzdC5zdGF0dXNVcmwoKSA/IGxpbmsocmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCByZXF1ZXN0LnN0YXR1c1VybCgpKSA6IHJlcXVlc3Quc3RhdHVzTGFiZWwoKSksCisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX2J1aWxkRGVzY3JpcHRpb25DZWxsKHJlcXVlc3QpLAogICAgICAg
ICAgICAgICAgICAgICBhZGRpdGlvbmFsUmVwb3NpdG9yeUxpc3QubWFwKChyZXBvc2l0b3J5KSA9
PiB0aGlzLl9idWlsZENvbW1pdENlbGwoZW50cnksIHJlcG9zaXRvcnkpKSwKICAgICAgICAgICAg
ICAgICBdKTsKICAgICAgICAgICAgIH0pKV0pOwogICAgIH0KIAorICAgIF9idWlsZERlc2NyaXB0
aW9uQ2VsbChyZXF1ZXN0KQorICAgIHsKKyAgICAgICAgY29uc3QgbGluayA9IENvbXBvbmVudEJh
c2UuY3JlYXRlTGluazsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IENvbXBvbmVudEJhc2UuY3Jl
YXRlRWxlbWVudDsKKyAgICAgICAgY29uc3Qgc2hvd1dhcm5pbmdJY29uID0gcmVxdWVzdC5oYXND
b21wbGV0ZWQoKSAmJiByZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCk7CisgICAgICAgIGNvbnN0
IGNlbGxDb250ZW50ID0gW107CisgICAgICAgIGlmIChzaG93V2FybmluZ0ljb24pCisgICAgICAg
ICAgICBjZWxsQ29udGVudC5wdXNoKGVsZW1lbnQoJ2RpdicsIHtjbGFzczogJ3dhcm5pbmctaWNv
bi1jb250YWluZXInfSwgbmV3IFdhcm5pbmdJY29uKGBMYXN0IHN5bmNlZCBzdGF0dXMgZGV0YWls
OiAke3JlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKX1gKSkpOworCisgICAgICAgIGNvbnN0IHN0
YXR1c0xhYmVsID0gcmVxdWVzdC5zdGF0dXNMYWJlbCgpOworICAgICAgICBjb25zdCBzdGF0dXNM
aW5rID0gcmVxdWVzdC5zdGF0dXNVcmwoKSA/IGxpbmsoc3RhdHVzTGFiZWwsIHJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgcmVxdWVzdC5zdGF0dXNVcmwoKSkgOiBzdGF0dXNMYWJlbDsKKyAg
ICAgICAgY2VsbENvbnRlbnQucHVzaChzdGF0dXNMaW5rKTsKKyAgICAgICAgaWYgKHJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSAmJiAhc2hvd1dhcm5pbmdJY29uKQorICAgICAgICAgICAgY2Vs
bENvbnRlbnQucHVzaChlbGVtZW50KCdsYWJlbCcsICc6JyksIGVsZW1lbnQoJ2xhYmVsJywgYCR7
cmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpfWApKTsKKworICAgICAgICByZXR1cm4gZWxlbWVu
dCgndGQnLCB7Y2xhc3M6ICdkZXNjcmlwdGlvbi1jZWxsJ30sICBjZWxsQ29udGVudCk7CisgICAg
fQorCiAgICAgX2J1aWxkQ29tbWl0Q2VsbChlbnRyeSwgcmVwb3NpdG9yeSwgc2hvd1Jvb3QgPSBm
YWxzZSkKICAgICB7CiAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBDb21wb25lbnRCYXNlLmNyZWF0
ZUVsZW1lbnQ7CkBAIC0yMjIsNiArMjM5LDIxIEBAIGNsYXNzIFRlc3RHcm91cFJldmlzaW9uVGFi
bGUgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgICAgIHRoIHsKICAgICAgICAgICAg
ICAgICBmb250LXdlaWdodDogaW5oZXJpdDsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5k
ZXNjcmlwdGlvbi1jZWxsIGxhYmVsIHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7CisgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMHJlbTsKKyAgICAgICAgICAgICAg
ICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVs
bGlwc2lzOworICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB0ZC5kZXNjcmlwdGlvbi1jZWxsIHsKKyAgICAgICAgICAgICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkaXYud2FybmluZy1p
Y29uLWNvbnRhaW5lciB7CisgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICAgICAgICAgIHRvcDogLTAuMnJlbTsKKyAgICAgICAgICAgICAgICBsZWZ0OjA7CisgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAucm9vdHMgewogICAgICAgICAgICAgICAgIG1heC13aWR0
aDogMjByZW07CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvd2FybmluZy1pY29uLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3dhcm5pbmctaWNvbi5qcwppbmRleCA3
YjNlZmRhNTNkMTJhMTdiNmFiYjNiYjhmZmVhMTg0MGMzYzNhZTEzLi4wZWU0ZjhmMGNhN2IwMmUz
YTkyOWZhNTQyMDkxYzhlN2Q1OWZhYTg1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvd2FybmluZy1pY29uLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy93YXJuaW5nLWljb24uanMKQEAg
LTEsOCArMSwxNiBAQAogCiBjbGFzcyBXYXJuaW5nSWNvbiBleHRlbmRzIEJ1dHRvbkJhc2Ugewot
ICAgIGNvbnN0cnVjdG9yKCkKKyAgICBjb25zdHJ1Y3Rvcih3YXJuaW5nTWVzc2FnZSkKICAgICB7
CiAgICAgICAgIHN1cGVyKCd3YXJuaW5nLWljb24nKTsKKyAgICAgICAgdGhpcy5fd2FybmluZ01l
c3NhZ2UgPSB3YXJuaW5nTWVzc2FnZTsKKyAgICB9CisKKyAgICByZW5kZXIoKQorICAgIHsKKyAg
ICAgICAgc3VwZXIucmVuZGVyKCk7CisgICAgICAgIGlmICh0aGlzLl93YXJuaW5nTWVzc2FnZSkK
KyAgICAgICAgICAgIHRoaXMuY29udGVudCgnYnV0dG9uJykudGl0bGUgPSB0aGlzLl93YXJuaW5n
TWVzc2FnZTsKICAgICB9CiAKICAgICBzdGF0aWMgc2l6ZUZhY3RvcigpIHsgcmV0dXJuIDAuNzsg
fQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
YnVpbGQtcmVxdWVzdC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9k
ZWxzL2J1aWxkLXJlcXVlc3QuanMKaW5kZXggMDcwNTRhZTgzNmFlMGEwYjY2NDJmZTBiODk5MDM4
ODg2M2RmNTk5ZC4uMmRiMGQ1YmI0Mzc4Y2UzNWUzYzQ5YWRmM2FlNTAzODAxMzFkMzJmZCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQt
cmVxdWVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9idWlsZC1yZXF1ZXN0LmpzCkBAIC0yNiw2ICsyNiw3IEBAIGNsYXNzIEJ1aWxkUmVxdWVzdCBl
eHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIHRoaXMuX2J1aWxkSWQgPSBvYmplY3Qu
YnVpbGQ7CiAgICAgICAgIHRoaXMuX2NyZWF0ZWRBdCA9IG5ldyBEYXRlKG9iamVjdC5jcmVhdGVk
QXQpOwogICAgICAgICB0aGlzLl9yZXN1bHQgPSBudWxsOworICAgICAgICB0aGlzLl9zdGF0dXNE
ZXNjcmlwdGlvbiA9IG9iamVjdC5zdGF0dXNEZXNjcmlwdGlvbjsKICAgICB9CiAKICAgICB1cGRh
dGVTaW5nbGV0b24ob2JqZWN0KQpAQCAtNDIsMTIgKzQzLDE0IEBAIGNsYXNzIEJ1aWxkUmVxdWVz
dCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIHRoaXMuX3N0YXR1cyA9IG9iamVj
dC5zdGF0dXM7CiAgICAgICAgIHRoaXMuX3N0YXR1c1VybCA9IG9iamVjdC51cmw7CiAgICAgICAg
IHRoaXMuX2J1aWxkSWQgPSBvYmplY3QuYnVpbGQ7CisgICAgICAgIHRoaXMuX3N0YXR1c0Rlc2Ny
aXB0aW9uID0gb2JqZWN0LnN0YXR1c0Rlc2NyaXB0aW9uOwogICAgIH0KIAogICAgIHRyaWdnZXJh
YmxlKCkgeyByZXR1cm4gdGhpcy5fdHJpZ2dlcmFibGU7IH0KICAgICBhbmFseXNpc1Rhc2tJZCgp
IHsgcmV0dXJuIHRoaXMuX2FuYWx5c2lzVGFza0lkOyB9CiAgICAgdGVzdEdyb3VwSWQoKSB7IHJl
dHVybiB0aGlzLl90ZXN0R3JvdXBJZDsgfQogICAgIHRlc3RHcm91cCgpIHsgcmV0dXJuIHRoaXMu
X3Rlc3RHcm91cDsgfQorICAgIHN0YXR1c0Rlc2NyaXB0aW9uKCkgeyByZXR1cm4gdGhpcy5fc3Rh
dHVzRGVzY3JpcHRpb247IH0KICAgICByZXBvc2l0b3J5R3JvdXAoKSB7IHJldHVybiB0aGlzLl9y
ZXBvc2l0b3J5R3JvdXA7IH0KICAgICBwbGF0Zm9ybSgpIHsgcmV0dXJuIHRoaXMuX3BsYXRmb3Jt
OyB9CiAgICAgdGVzdCgpIHsgcmV0dXJuIHRoaXMuX3Rlc3Q7IH0KZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVx
dWVzdHMtdGVzdHMuanMKaW5kZXggODBjZWFmN2Y3NWMwMzAyMDJiNzQ4ZGU3NDg5NmMwOWM5NzMz
YzhhMy4uMDdkZjU4ZDQ4ZTE5MTZiNWM0YWNiOTcxNGUyZTk3OTFjODMyZTczZSAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVz
dHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTU3LDEwICs1NywxMCBAQCBkZXNjcmliZSgn
L2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXVsnY3JlYXRlZEF0J10gPSAwOwogICAgICAgICAgICAgY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdWydjcmVhdGVkQXQnXSA9IDA7CiAgICAgICAgICAgICBjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM11bJ2NyZWF0ZWRBdCddID0gMDsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0
YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEn
LCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAn
MCcsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czogJ3BlbmRpbmcnLCB1cmw6IG51bGwsIGJ1aWxk
OiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLCB7aWQ6ICc3MDUnLCB0YXNrOiAnMTA4MCcsIHRyaWdn
ZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxh
dGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMScsIGNvbW1pdFNldDogJzQw
NCcsIHN0YXR1czogJ3BlbmRpbmcnLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6
IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJl
cG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RH
cm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czogJ3BlbmRp
bmcnLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3MDcn
LCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIw
MDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVy
OiAnMycsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCB1cmw6IG51bGwsIGJ1
aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNrOiAnMTA4MCcsIHRy
aWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywg
cGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcsIGNvbW1pdFNldDog
JzQwMycsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBu
dWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXSwge2lkOiAnNzA1JywgdGFzazogJzEw
ODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDog
JzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzEnLCBjb21t
aXRTZXQ6ICc0MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGws
IHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0sIHtpZDogJzcwNicsIHRh
c2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScs
IHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcy
JywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9u
OiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3
MDcnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDog
JzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9y
ZGVyOiAnMycsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNj
cmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CiAg
ICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwppbmRleCA2MDkxNDU5
NmRhNTY5NDcyYzRkYmZiYWVlMmJiMTNmMGZlOGI4YTU1Li5hMjk5YzM1NTZjMTNlY2ZmMzdlZWI1
MDcxOTU1NmMyOWY5MGJkNDk1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCkBAIC0zMTAsNyAr
MzEwLDggQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICAgICAgIndrIjogW29wdGlvbnMud2Vi
a2l0UmV2aXNpb24gfHwgJzE5MTYyMicsICJVbmtub3duIl0sCiAgICAgICAgICAgICAgICAgIm9z
IjogW29wdGlvbnMub3N4UmV2aXNpb24gfHwgJzEwLjExIDE1QTI4NCcsICJVbmtub3duIl0sCiAg
ICAgICAgICAgICAgICAgInNsYXZlbmFtZSI6IFtvcHRpb25zLndvcmtlck5hbWUgfHwgImJvdDIw
MiIsICJXb3JrZXIgKGRlcHJlY2F0ZWQpIl0sCi0gICAgICAgICAgICAgICAgIndvcmtlcm5hbWUi
OiBbb3B0aW9ucy53b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAiV29ya2VyIl0KKyAgICAgICAgICAg
ICAgICAid29ya2VybmFtZSI6IFtvcHRpb25zLndvcmtlck5hbWUgfHwgImJvdDIwMiIsICJXb3Jr
ZXIiXSwKKyAgICAgICAgICAgICAgICAic3RhdHVzZGVzY3JpcHRpb24iOiBbb3B0aW9ucy5zdGF0
dXNEZXNjcmlwdGlvbiB8fCBudWxsLCAiVW5rbm93biJdCiAgICAgICAgICAgICB9CiAgICAgICAg
IH07CiAgICAgfSwKQEAgLTM0NSw3ICszNDYsOCBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6IFsnJywgIlVua25vd24iXSwKICAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiBbJycsICJVbmtub3duIl0sCiAgICAgICAgICAgICAgICAgInNsYXZlbmFtZSI6IFtv
cHRpb25zLndvcmtlck5hbWUgfHwgImJvdDIwMiIsICJXb3JrZXIgKGRlcHJlY2F0ZWQpIl0sCi0g
ICAgICAgICAgICAgICAgIndvcmtlcm5hbWUiOiBbb3B0aW9ucy53b3JrZXJOYW1lIHx8ICJib3Qy
MDIiLCAiV29ya2VyIl0KKyAgICAgICAgICAgICAgICAid29ya2VybmFtZSI6IFtvcHRpb25zLndv
cmtlck5hbWUgfHwgImJvdDIwMiIsICJXb3JrZXIiXSwKKyAgICAgICAgICAgICAgICAic3RhdHVz
ZGVzY3JpcHRpb24iOiBbb3B0aW9ucy5zdGF0dXNEZXNjcmlwdGlvbiB8fCBudWxsLCAiVW5rbm93
biJdCiAgICAgICAgICAgICB9CiAgICAgICAgIH07ICAgCiAgICAgfSwKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwppbmRleCBlNjEyNTgy
NjZjZDhlMGM1NGQ0YzAzNmU1NGQ5YjdkMTBmODZlMTVlLi42ODhkNzY5YWRjOWU4ZGZiZDRjYTJi
M2RiZmJkYjIwZDBjYzg5Mjg1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxk
Ym90LWludGVncmF0aW9uLXRlc3RzLmpzCkBAIC0xNzgsNyArMTc4LDcgQEAgZnVuY3Rpb24gY3Jl
YXRlVGVzdEdyb3VwKHRhc2tfbmFtZT0nY3VzdG9tIHRhc2snKSB7CiAgICAgfSk7CiB9CiAKLWFz
eW5jIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cFdpaFBhdGNoKCkKK2FzeW5jIGZ1bmN0aW9uIGNy
ZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpCiB7CiAgICAgY29uc3QgcGF0Y2hGaWxlID0gYXdhaXQg
VGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgncGF0Y2guZGF0JywgJ3BhdGNoIGZpbGUn
KTsKICAgICBjb25zdCBvcmlnaW5hbFByaXZpbGVnZWRBUEkgPSBnbG9iYWwuUHJpdmlsZWdlZEFQ
STsKQEAgLTMzMCw2ICszMzAsMzU2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCdzaG91bGQga2VlcCB1cGRh
dGluZyBidWlsZCBzdGF0dXMnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHJlcXVlc3Rz
ID0gTW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKKyAgICAgICAgbGV0IHRhc2tJZCA9IG51bGw7Cisg
ICAgICAgIGxldCBzeW5jUHJvbWlzZTsKKyAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gYXdhaXQg
Y3JlYXRlVHJpZ2dlcmFibGUoKTsKKyAgICAgICAgbGV0IHRlc3RHcm91cCA9IGF3YWl0IGNyZWF0
ZVRlc3RHcm91cFdpdGhQYXRjaCgpOworCisgICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNr
KCkuaWQoKTsKKyAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisgICAgICAgIGxldCBidWlsZFJlcXVlc3Qg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworCisgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
CisgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgbGV0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5z
dGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2gu
ZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIGxldCBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90aGVyQnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAg
bGV0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsK
KyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
JywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30p
OworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVy
cy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0
Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94
JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScs
ICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnfX0pOworICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwKKyAgICAgICAgICAg
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwor
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUo
J3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgc3RhdHVzRGVzY3JpcHRpb246ICdC
dWlsZGluZyBXZWJLaXQnfSkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
LCAyKSwge30pOworICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKKworICAgICAgICBsZXQgdGVz
dEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKKwor
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICB0ZXN0
R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
UnVubmluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJL
aXQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKKyAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDEyNCwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21w
aWxpbmcgV1RGJ30pKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwg
e30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7
CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyJywgMiksIHsKKyAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIHN0YXR1c0Rlc2NyaXB0aW9u
OiAnQ29tcGlsaW5nIFdURid9KV0KKyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOworCisg
ICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKKworICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVu
bmluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcgV1RGJyk7
CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKwor
ICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICBhd2FpdCB1cGxvYWRSb290KGJ1
aWxkUmVxdWVzdC5pZCgpLCAxMjMpOworCisgICAgICAgIHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OworICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcgV1RGJyk7CisgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Cisg
ICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Cisg
ICAgICAgIGxldCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
d2Via2l0Um9vdF0pOworCisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
c2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwor
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKwor
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Ml0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyJywgMiksCisgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6
IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJ
ZDogMSwgYnVpbGROdW1iZXI6IDEyNH0pKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInLCAyKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgeyd3ayc6ICcx
OTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNl
LWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7
CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7Cisg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLCB7CisgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgIE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFt
ZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICAgICAg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklE
Rm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjog
MTI0fSldCisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
LCAyKSwge30pOworICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKKworICAgICAgICBhd2FpdCBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOworICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQubm90RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIHdlYmtp
dFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICB3
ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAg
IGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0p
OworCisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIG90
aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXdh
aXQgdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworCisgICAgICAgIHRl
c3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVz
dEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5k
QnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAg
ICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAg
ICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOworICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOworICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbd2Via2l0Um9vdF0pOworCisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkp
OworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
IGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CisgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTI0LmRhdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7CisgICAgfSk7CisKICAgICBp
dCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgdG8gYnVpbGQgYSBwYXRjaCcsICgpID0+IHsKICAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzOwogICAgICAgICBs
ZXQgdHJpZ2dlcmFibGU7CkBAIC0zMzcsNyArNjg3LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKICAgICAgICAgcmV0
dXJuIGNyZWF0ZVRyaWdnZXJhYmxlKCkudGhlbigobmV3VHJpZ2dlcmFibGUpID0+IHsKICAgICAg
ICAgICAgIHRyaWdnZXJhYmxlID0gbmV3VHJpZ2dlcmFibGU7Ci0gICAgICAgICAgICByZXR1cm4g
Y3JlYXRlVGVzdEdyb3VwV2loUGF0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0
R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAg
ICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpKTsKQEAgLTYxMCw3ICs5NjAsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgbGV0IHN5bmNQcm9taXNlOwogICAgICAgICByZXR1cm4gY3JlYXRl
VHJpZ2dlcmFibGUoY29uZmlnV2l0aFBsYXRmb3JtTmFtZSkudGhlbigobmV3VHJpZ2dlcmFibGUp
ID0+IHsKICAgICAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3VHJpZ2dlcmFibGU7Ci0gICAgICAg
ICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2loUGF0Y2goKTsKKyAgICAgICAgICAgIHJldHVy
biBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vw
KSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKQEAgLTg4NCw3ICsxMjM0LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGxldCBmaXJzdFJvb3QgPSBudWxsOwogICAg
ICAgICByZXR1cm4gY3JlYXRlVHJpZ2dlcmFibGUoKS50aGVuKChuZXdUcmlnZ2VyYWJsZSkgPT4g
ewogICAgICAgICAgICAgdHJpZ2dlcmFibGUgPSBuZXdUcmlnZ2VyYWJsZTsKLSAgICAgICAgICAg
IHJldHVybiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpOworICAgICAgICAgICAgcmV0dXJuIGNy
ZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+
IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCkpOwpAQCAtOTg3LDcgKzEzMzcsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgbGV0IHN5bmNQcm9taXNlOwogICAgICAgICByZXR1
cm4gY3JlYXRlVHJpZ2dlcmFibGUoKS50aGVuKChuZXdUcmlnZ2VyYWJsZSkgPT4gewogICAgICAg
ICAgICAgdHJpZ2dlcmFibGUgPSBuZXdUcmlnZ2VyYWJsZTsKLSAgICAgICAgICAgIHJldHVybiBj
cmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RH
cm91cFdpdGhQYXRjaCgpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAg
ICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CkBAIC0xMDc2LDcg
KzE0MjYsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgbGV0IHN5bmNQcm9taXNlOwogICAgICAgICByZXR1cm4gY3JlYXRlVHJpZ2dlcmFibGUoKS50
aGVuKChuZXdUcmlnZ2VyYWJsZSkgPT4gewogICAgICAgICAgICAgdHJpZ2dlcmFibGUgPSBuZXdU
cmlnZ2VyYWJsZTsKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgp
OworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RHcm91
cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwppbmRleCBiOTEyNzI4ZmFjNzM1ZTIyZTE4YzA3
MThkMGMzY2QzNGIyZWExZTM5Li4zM2EzMzUxYWViMGE0NDFmMjJjNWIzOTE0ZTEyZTQ4NTI2ZGEx
MThlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRi
b3Qtc3luY2VyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWls
ZGJvdC1zeW5jZXIuanMKQEAgLTE1LDcgKzE1LDcgQEAgY2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5
IHsKICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVySUQoKSwgcmF3RGF0YVsnYnVp
bGRlcmlkJ10pOwogCiAgICAgICAgIHRoaXMuX3N5bmNlciA9IHN5bmNlcjsKLSAgICAgICAgdGhp
cy5fYnVpbGRib3RCdWlsZFJlcXVlc3RJZCA9IHJhd0RhdGFbJ2J1aWxkcmVxdWVzdGlkJ10KKyAg
ICAgICAgdGhpcy5fYnVpbGRib3RCdWlsZFJlcXVlc3RJZCA9IHJhd0RhdGFbJ2J1aWxkcmVxdWVz
dGlkJ107CiAgICAgICAgIHRoaXMuX2hhc0ZpbmlzaGVkID0gcmF3RGF0YVsnY29tcGxldGUnXTsK
ICAgICAgICAgdGhpcy5faXNQZW5kaW5nID0gJ2NsYWltZWQnIGluIHJhd0RhdGEgJiYgIXJhd0Rh
dGFbJ2NsYWltZWQnXTsKICAgICAgICAgdGhpcy5faXNJblByb2dyZXNzID0gIXRoaXMuX2lzUGVu
ZGluZyAmJiAhdGhpcy5faGFzRmluaXNoZWQ7CkBAIC0yMyw2ICsyMyw3IEBAIGNsYXNzIEJ1aWxk
Ym90QnVpbGRFbnRyeSB7CiAgICAgICAgIHRoaXMuX3dvcmtlck5hbWUgPSByYXdEYXRhWydwcm9w
ZXJ0aWVzJ10gJiYgcmF3RGF0YVsncHJvcGVydGllcyddWyd3b3JrZXJuYW1lJ10gPyByYXdEYXRh
Wydwcm9wZXJ0aWVzJ11bJ3dvcmtlcm5hbWUnXVswXSA6IG51bGw7CiAgICAgICAgIHRoaXMuX2J1
aWxkUmVxdWVzdElkID0gcmF3RGF0YVsncHJvcGVydGllcyddICYmIHJhd0RhdGFbJ3Byb3BlcnRp
ZXMnXVtzeW5jZXIuX2J1aWxkUmVxdWVzdFByb3BlcnR5TmFtZV0KICAgICAgICAgICAgID8gcmF3
RGF0YVsncHJvcGVydGllcyddW3N5bmNlci5fYnVpbGRSZXF1ZXN0UHJvcGVydHlOYW1lXVswXSA6
IG51bGw7CisgICAgICAgIHRoaXMuX3N0YXR1c0Rlc2NyaXB0aW9uID0gcmF3RGF0YVsncHJvcGVy
dGllcyddICYmIHJhd0RhdGFbJ3Byb3BlcnRpZXMnXVsnc3RhdHVzZGVzY3JpcHRpb24nXSA/IHJh
d0RhdGFbJ3Byb3BlcnRpZXMnXVsnc3RhdHVzZGVzY3JpcHRpb24nXVswXSA6IG51bGw7CiAgICAg
fQogCiAgICAgc3luY2VyKCkgeyByZXR1cm4gdGhpcy5fc3luY2VyOyB9CkBAIC0zMyw2ICszNCw3
IEBAIGNsYXNzIEJ1aWxkYm90QnVpbGRFbnRyeSB7CiAgICAgaXNQZW5kaW5nKCkgeyByZXR1cm4g
dGhpcy5faXNQZW5kaW5nOyB9CiAgICAgaXNJblByb2dyZXNzKCkgeyByZXR1cm4gdGhpcy5faXNJ
blByb2dyZXNzOyB9CiAgICAgaGFzRmluaXNoZWQoKSB7IHJldHVybiB0aGlzLl9oYXNGaW5pc2hl
ZDsgfQorICAgIHN0YXR1c0Rlc2NyaXB0aW9uKCkgeyByZXR1cm4gdGhpcy5fc3RhdHVzRGVzY3Jp
cHRpb247IH0KICAgICB1cmwoKSB7IHJldHVybiB0aGlzLmlzUGVuZGluZygpID8gdGhpcy5fc3lu
Y2VyLnVybEZvclBlbmRpbmdCdWlsZCh0aGlzLl9idWlsZGJvdEJ1aWxkUmVxdWVzdElkKSA6IHRo
aXMuX3N5bmNlci51cmxGb3JCdWlsZE51bWJlcih0aGlzLl9idWlsZE51bWJlcik7IH0KIAogICAg
IGJ1aWxkUmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNOZWVkZWQocmVxdWVzdCkKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJs
ZS5qcwppbmRleCBkY2RkZGY0MWE2Y2ViODU3ODFjOTA1ZDYxZmUyYzc5Y2EwMDk1NzA0Li5hYjYw
ZmJlYzcwNDMwODIxNmU3ZjgxODJlOTVlZGNhZGYxOWExZTZiIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpz
CkBAIC0xODQsMTAgKzE4NCwxMyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgbmV3U3RhdHVzID0gZW50cnkuYnVpbGRSZXF1ZXN0U3RhdHVz
SWZVcGRhdGVJc05lZWRlZChyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1N0
YXR1cykgewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgVXBkYXRp
bmcgdGhlIHN0YXR1cyBvZiBidWlsZCByZXF1ZXN0ICR7cmVxdWVzdC5pZCgpfSBmcm9tICR7cmVx
dWVzdC5zdGF0dXMoKX0gdG8gJHtuZXdTdGF0dXN9YCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB1cGRhdGVzW2VudHJ5LmJ1aWxkUmVxdWVzdElkKCldID0ge3N0YXR1czogbmV3U3RhdHVzLCB1
cmw6IGVudHJ5LnVybCgpfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXNbZW50cnku
YnVpbGRSZXF1ZXN0SWQoKV0gPSB7c3RhdHVzOiBuZXdTdGF0dXMsIHVybDogZW50cnkudXJsKCks
IHN0YXR1c0Rlc2NyaXB0aW9uOiBlbnRyeS5zdGF0dXNEZXNjcmlwdGlvbigpfTsKICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmICghcmVxdWVzdC5zdGF0dXNVcmwoKSkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgU2V0dGluZyB0aGUgc3RhdHVzIFVSTCBv
ZiBidWlsZCByZXF1ZXN0ICR7cmVxdWVzdC5pZCgpfSB0byAke2VudHJ5LnVybCgpfWApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgdXBkYXRlc1tlbnRyeS5idWlsZFJlcXVlc3RJZCgpXSA9IHtz
dGF0dXM6IHJlcXVlc3Quc3RhdHVzKCksIHVybDogZW50cnkudXJsKCl9OworICAgICAgICAgICAg
ICAgICAgICAgICAgdXBkYXRlc1tlbnRyeS5idWlsZFJlcXVlc3RJZCgpXSA9IHtzdGF0dXM6IHJl
cXVlc3Quc3RhdHVzKCksIHVybDogZW50cnkudXJsKCksIHN0YXR1c0Rlc2NyaXB0aW9uOiBlbnRy
eS5zdGF0dXNEZXNjcmlwdGlvbigpfTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChy
ZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCkgIT0gZW50cnkuc3RhdHVzRGVzY3JpcHRpb24oKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgU2V0dGluZyB0aGUg
c3RhdHVzIGRldGFpbCBvZiBidWlsZCByZXF1ZXN0ICR7cmVxdWVzdC5pZCgpfSBmcm9tICR7cmVx
dWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpfSB0byAke2VudHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCl9
YCk7CisgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzW2VudHJ5LmJ1aWxkUmVxdWVzdElk
KCldID0ge3N0YXR1czogcmVxdWVzdC5zdGF0dXMoKSwgdXJsOiBlbnRyeS51cmwoKSwgc3RhdHVz
RGVzY3JpcHRpb246IGVudHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCl9OwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXIt
dGVzdHMuanMKaW5kZXggOTY0MWU0MDIzMDNiZWFkZWU1MjA2M2QwMGYzNTU5ZmRiMTczYzQ2Yy4u
ZTBjYTE3ZjViZDM0Nzg2YWI1MWRkNjQ1NGNjNjU5MjgwOWRlNWNlNSAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNl
ci10ZXN0cy5qcwpAQCAtMjgzLDcgKzI4Myw3IEBAIGZ1bmN0aW9uIHNhbXBsZVBlbmRpbmdCdWls
ZFJlcXVlc3RzKGJ1aWxkUmVxdWVzdElkLCBidWlsZFRpbWUsIHdvcmtlck5hbWUsIGJ1aWxkCiAg
ICAgfTsKIH0KIAotZnVuY3Rpb24gc2FtcGxlQnVpbGREYXRhKHdvcmtlck5hbWUsIGlzQ29tcGxl
dGUsIGJ1aWxkUmVxdWVzdElkLCBidWlsZE51bWJlciwgYnVpbGRlcklkKQorZnVuY3Rpb24gc2Ft
cGxlQnVpbGREYXRhKHdvcmtlck5hbWUsIGlzQ29tcGxldGUsIGJ1aWxkUmVxdWVzdElkLCBidWls
ZE51bWJlciwgYnVpbGRlcklkLCBzdGF0dXNEZXNjcmlwdGlvbikKIHsKICAgICByZXR1cm4gewog
ICAgICAgICAiYnVpbGRlcmlkIjogYnVpbGRlcklkIHx8IDEwMiwKQEAgLTMwMiwxNCArMzAyLDE1
IEBAIGZ1bmN0aW9uIHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCBpc0NvbXBsZXRlLCBidWls
ZFJlcXVlc3RJZCwgYnVpbGROdW1iZXIsIGJ1CiAgICAgICAgICAgICAicGxhdGZvcm0iOiBbIm1h
YyIsICJVbmtub3duIl0sCiAgICAgICAgICAgICAic2NoZWR1bGVyIjogWyJBQlRlc3QtaVBhZC1S
dW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXIiLCAiU2NoZWR1bGVyIl0sCiAgICAgICAg
ICAgICAic2xhdmVuYW1lIjogW3dvcmtlck5hbWUgfHwgIkFCVGVzdC1pUGFkLTAiLCAiV29ya2Vy
IChkZXByZWNhdGVkKSJdLAotICAgICAgICAgICAgIndvcmtlcm5hbWUiOiBbd29ya2VyTmFtZSB8
fCAiQUJUZXN0LWlQYWQtMCIsICJXb3JrZXIiXQorICAgICAgICAgICAgIndvcmtlcm5hbWUiOiBb
d29ya2VyTmFtZSB8fCAiQUJUZXN0LWlQYWQtMCIsICJXb3JrZXIiXSwKKyAgICAgICAgICAgICJz
dGF0dXNkZXNjcmlwdGlvbiI6IFtzdGF0dXNEZXNjcmlwdGlvbiB8fCBudWxsLCAiVW5rbm93biJd
LAogICAgICAgICB9CiAgICAgfTsKIH0KIAogZnVuY3Rpb24gc2FtcGxlSW5Qcm9ncmVzc0J1aWxk
RGF0YSh3b3JrZXJOYW1lKQogewotICAgIHJldHVybiBzYW1wbGVCdWlsZERhdGEod29ya2VyTmFt
ZSwgZmFsc2UpOworICAgIHJldHVybiBzYW1wbGVCdWlsZERhdGEod29ya2VyTmFtZSwgZmFsc2Us
IG51bGwsIG51bGwsIG51bGwsICdidWlsZGluZycpOwogfQogCiBmdW5jdGlvbiBzYW1wbGVJblBy
b2dyZXNzQnVpbGQod29ya2VyTmFtZSkKQEAgLTExMTcsNiArMTExOCw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJ
blByb2dyZXNzKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgp
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIGluLXByb2dyZXNzIGJ1
aWxkJywgKCkgPT4gewpAQCAtMTEzNCw2ICsxMTM2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3lu
Y2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygp
KTsKICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkZXJzLzEwMi9idWlsZHMvNjE0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkuc3RhdHVzRGVzY3JpcHRpb24oKSwgJ2J1aWxkaW5nJyk7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgZmluaXNoZWQgYnVp
bGQnLCAoKSA9PiB7CkBAIC0xMTUxLDYgKzExNTQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygp
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRlcnMvMTAyL2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkuc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgbWl4IG9mIGluLXByb2dyZXNz
IGFuZCBmaW5pc2hlZCBidWlsZHMnLCAoKSA9PiB7CkBAIC0xMTY5LDYgKzExNzMsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQub2soZW50
cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5p
c2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82MTQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlbnRyeS5zdGF0dXNEZXNjcmlwdGlvbigpLCAnYnVpbGRpbmcnKTsKIAog
ICAgICAgICAgICAgZW50cnkgPSBlbnRyaWVzWzFdOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGVu
dHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKQEAgLTExNzksNiArMTE4NCw3IEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5v
ayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5Lmhh
c0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzE3NTUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374446</attachid>
            <date>2019-07-18 23:45:58 -0700</date>
            <delta_ts>2019-07-19 12:10:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199810-20190718234557.patch</filename>
            <type>text/plain</type>
            <size>46396</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjM1CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1NTE5YzMzZjE1N2JmNWMwNGU1NjkzNDQ3YjU4YzZhNWQ3YmY1ODVkLi42ZjRiY2Y5ZWZl
MGQ1NmU5MmU0YjBlMGExN2U4MDBlYTVhYmI1MTVmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxOS0wNy0xNSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBQcm92aWRlIGJ1aWxkIHJlcXVlc3Qgc3RhdHVzIGRlc2Ny
aXB0aW9uIGluZm9ybWF0aW9uIG9uIGRhc2hib2FyZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTgxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBidWlsZCByZXF1ZXN0IHN0YXR1cyBkZXRhaWwg
dG8gc2hvdyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBmb3IgYSBidWlsZCBhbmQgc2hvdyBpdCBpbiBk
YXNoYm9hcmQuCisgICAgICAgIFVwZGF0ZSBTUUwgZm9yIGV4aXN0aW5nIGluc3RhbmNlOgorICAg
ICAgICAgICAgQUxURVIgVEFCTEUgYnVpbGRfcmVxdWVzdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJ
U1RTIHJlcXVlc3Rfc3RhdHVzX2Rlc2NyaXB0aW9uIHZhcmNoYXIoMTAyNCkgREVGQVVMVCBOVUxM
OworCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFkZGVkIHJlcXVlc3Rfc3RhdHVzX2Rl
c2NyaXB0aW9uIGNvbHVtbi4KKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNlLnNxbDogQSBmaWxl
IHN0b3JlcyBtaWdyYXRpb24gU1FMIGZvciBleGlzdGluZyBpbnN0YW5jZS4KKyAgICAgICAgKiBw
dWJsaWMvYXBpL2J1aWxkLXJlcXVlc3RzLnBocDogQWRkZWQgc3VwcG9ydCBmb3IgdXBkYXRpbmcg
cmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24uCisgICAgICAgICogcHVibGljL2luY2x1ZGUvYnVp
bGQtcmVxdWVzdHMtZmV0Y2hlci5waHA6IEV4cG9zZWQgYHN0YXR1c0Rlc2NyaXB0aW9uYCB0byBB
UEkuCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1yZXZpc2lvbi10
YWJsZS5qczogQWRkZWQgVUkgZm9yIHNob3dpbmcgYnVpbGQgcmVxdWVzdCBzdGF0dXMgZGV0YWls
LgorICAgICAgICAoVGVzdEdyb3VwUmV2aXNpb25UYWJsZS5wcm90b3R5cGUuX3JlbmRlclRhYmxl
KToKKyAgICAgICAgKFRlc3RHcm91cFJldmlzaW9uVGFibGUucHJvdG90eXBlLl9idWlsZERlc2Ny
aXB0aW9uQ2VsbCk6CisgICAgICAgIChUZXN0R3JvdXBSZXZpc2lvblRhYmxlLmNzc1RlbXBsYXRl
KToKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy93YXJuaW5nLWljb24uanM6IEV4dGVu
ZGVkIHdhcm5pbmcgaWNvbiB0byBiZSBhYmxlIHRvIGN1c3RvbWl6ZSBpbmZvcm1hdGlvbiBvbiBo
b3Zlci4KKyAgICAgICAgKFdhcm5pbmdJY29uKToKKyAgICAgICAgKFdhcm5pbmdJY29uLnByb3Rv
dHlwZS5yZW5kZXIpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5q
czogQWRkZWQgJ3N0YXR1c0Rlc2NyaXB0aW9uJyBmaWVsZC4KKyAgICAgICAgKEJ1aWxkUmVxdWVz
dCk6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6Cisg
ICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBlLnN0YXR1c0Rlc2NyaXB0aW9uKToKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzOiBGaXhlZCB1bml0
IHRlc3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgor
ICAgICAgICAoTW9ja0RhdGEuc2V0IG1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVy
KTogQWRkZWQgJ3N0YXR1c19kZXNjcmlwdGlvbicgaW4gYnVpbGRib3QgbW9jayBkYXRhLgorICAg
ICAgICAoTW9ja0RhdGEuc2FtcGxlQnVpbGREYXRhKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
dG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0
cy4KKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6IEFkZGVkICdzdGF0dXNE
ZXNjcmlwdGlvbicgZmllbGQgdG8gJ0J1aWxkYm90QnVpbGRFbnRyeScuCisgICAgICAgIChCdWls
ZGJvdEJ1aWxkRW50cnkucHJvdG90eXBlLmluaXRpYWxpemUpOgorICAgICAgICAoQnVpbGRib3RC
dWlsZEVudHJ5LnByb3RvdHlwZS5zdGF0dXNEZXNjcmlwdGlvbik6CisgICAgICAgICogdG9vbHMv
anMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxl
LnByb3RvdHlwZS5fcHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKToKKyAgICAgICAgKiB1bml0LXRl
c3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogQWRkZWQgdGVzdCBjb2RlIGZvciBCdWlsZGJv
dEJ1aWxkRW50cnkuc3RhdHVzRGVzY3JpcHRpb24uCisKIDIwMTktMDctMDMgIERld2VpIFpodSAg
PGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdCBmcmVzaG5lc3MgcGFnZSBzaG91
bGQgZXhwb3NlIHJldmlzaW9uIGluZm9ybWF0aW9uIGZvciBsYXRlc3QgYnVpbGQgb24gdG9vbHRp
cC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNx
bCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAppbmRleCBjYjg4
NDVjODNiMGE1MzVmMTQ2OGQ0N2U5OWQ2ZTM2ZjA3NzI1Yzg2Li4zYmJlMzA4N2I3YTY3ZGI0NTUy
Njc4OWVlMDg5MWQ1ODg3MDk4NzVmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvaW5pdC1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQt
ZGF0YWJhc2Uuc3FsCkBAIC0zMTQsNiArMzE0LDcgQEAgQ1JFQVRFIFRBQkxFIGJ1aWxkX3JlcXVl
c3RzICgKICAgICByZXF1ZXN0X2NvbW1pdF9zZXQgaW50ZWdlciBSRUZFUkVOQ0VTIGNvbW1pdF9z
ZXRzIE5PVCBOVUxMLAogICAgIHJlcXVlc3Rfc3RhdHVzIGJ1aWxkX3JlcXVlc3Rfc3RhdHVzX3R5
cGUgTk9UIE5VTEwgREVGQVVMVCAncGVuZGluZycsCiAgICAgcmVxdWVzdF91cmwgdmFyY2hhcigx
MDI0KSwKKyAgICByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERFRkFV
TFQgTlVMTCwKICAgICByZXF1ZXN0X2J1aWxkIGludGVnZXIgUkVGRVJFTkNFUyBidWlsZHMsCiAg
ICAgcmVxdWVzdF9jcmVhdGVkX2F0IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChDVVJSRU5U
X1RJTUVTVEFNUCBBVCBUSU1FIFpPTkUgJ1VUQycpLAogICAgIENPTlNUUkFJTlQgYnVpbGRfcmVx
dWVzdF9vcmRlcl9tdXN0X2JlX3VuaXF1ZV9pbl9ncm91cCBVTklRVUUocmVxdWVzdF9ncm91cCwg
cmVxdWVzdF9vcmRlciksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWln
cmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRkOWFkOTVkZDE5MTc1NjJkMTNhMDY1YjEzNzNhOTQ2NTcz
NDBjMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRl
LWRhdGFiYXNlLnNxbApAQCAtMCwwICsxIEBACitBTFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBB
REQgQ09MVU1OIElGIE5PVCBFWElTVFMgcmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hh
cigxMDI0KSBERUZBVUxUIE5VTEw7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMu
cGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMu
cGhwCmluZGV4IDQ5NzM3NmQwZDg3MmJkZjI5YzUyNjZmNjkyODQ3YzNkMGIyODgxM2UuLmY0YzM2
NjI5ZDlkMjI2YWQ4NGU3YjllNTEzMWRhMzI4ZTg4OGJjMjYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2J1aWxkLXJlcXVlc3RzLnBocAorKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAKQEAgLTQ2
LDYgKzQ2LDcgQEAgZnVuY3Rpb24gdXBkYXRlX2J1aWxkcygkZGIsICR1cGRhdGVzKSB7CiAgICAg
ICAgICRpZCA9IGludHZhbCgkaWQpOwogICAgICAgICAkc3RhdHVzID0gJGluZm9bJ3N0YXR1cydd
OwogICAgICAgICAkdXJsID0gYXJyYXlfZ2V0KCRpbmZvLCAndXJsJyk7CisgICAgICAgICRzdGF0
dXNfZGVzY3JpcHRpb24gPSBhcnJheV9nZXQoJGluZm8sICdzdGF0dXNEZXNjcmlwdGlvbicpOwog
ICAgICAgICAkcmVxdWVzdF9yb3cgPSAkZGItPnNlbGVjdF9maXJzdF9yb3coJ2J1aWxkX3JlcXVl
c3RzJywgJ3JlcXVlc3QnLCBhcnJheSgnaWQnID0+ICRpZCkpOwogICAgICAgICBpZiAoJHN0YXR1
cyA9PSAnZmFpbGVkSWZOb3RDb21wbGV0ZWQnKSB7CiAgICAgICAgICAgICBpZiAoISRyZXF1ZXN0
X3JvdykgewpAQCAtNjAsMTQgKzYxLDEzIEBAIGZ1bmN0aW9uIHVwZGF0ZV9idWlsZHMoJGRiLCAk
dXBkYXRlcykgewogICAgICAgICAgICAgICAgICAgICBXSEVSRSByZXF1ZXN0X2dyb3VwID0gJDEg
QU5EIHJlcXVlc3Rfb3JkZXIgPiAkMicsCiAgICAgICAgICAgICAgICAgICAgIGFycmF5KCRyZXF1
ZXN0X3Jvd1sncmVxdWVzdF9ncm91cCddLCAkcmVxdWVzdF9yb3dbJ3JlcXVlc3Rfb3JkZXInXSkp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1
ZXN0cycsICdyZXF1ZXN0JywgYXJyYXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAn
ZmFpbGVkJywgJ3VybCcgPT4gJHVybCkpOworICAgICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdi
dWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0JywgYXJyYXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3Rh
dHVzJyA9PiAnZmFpbGVkJywgJ3VybCcgPT4gJHVybCwgJ3N0YXR1c19kZXNjcmlwdGlvbicgPT4g
JHN0YXR1c19kZXNjcmlwdGlvbikpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYg
KCFpbl9hcnJheSgkc3RhdHVzLCBhcnJheSgncGVuZGluZycsICdzY2hlZHVsZWQnLCAncnVubmlu
ZycsICdmYWlsZWQnLCAnY29tcGxldGVkJywgJ2NhbmNlbGVkJykpKSB7CiAgICAgICAgICAgICAg
ICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOwogICAgICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignVW5rbm93bkJ1aWxkUmVxdWVzdFN0YXR1cycsIGFycmF5KCdidWlsZFJlcXVlc3Qn
ID0+ICRpZCwgJ3N0YXR1cycgPT4gJHN0YXR1cykpOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0JywgYXJyYXkoJ2lk
JyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAkc3RhdHVzLCAndXJsJyA9PiAkdXJsKSk7Ci0g
ICAgICAgICAgICAkdGVzdF9ncm91cF9pZCA9ICRyZXF1ZXN0X3Jvd1sncmVxdWVzdF9ncm91cCdd
OworICAgICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0
JywgYXJyYXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAkc3RhdHVzLCAndXJsJyA9
PiAkdXJsLCAnc3RhdHVzX2Rlc2NyaXB0aW9uJyA9PiAkc3RhdHVzX2Rlc2NyaXB0aW9uKSk7CiAg
ICAgICAgICAgICBpZiAoJHN0YXR1cyAhPSAnZmFpbGVkJykKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwCmluZGV4
IGIzODg3NzliMjdkM2Y5MzA1NDM4OGNmOTVlNjJjMzE5MDcxOWFlMjguLjI2ODllNDU3ZTU4YTEx
MTU5MjY4YTNjOTM0NjgxNDA3NDY5MjFmYzQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocAorKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0
Y2hlci5waHAKQEAgLTkyLDYgKzkyLDcgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0c0ZldGNoZXIgewog
ICAgICAgICAgICAgICAgICd1cmwnID0+ICRyb3dbJ3JlcXVlc3RfdXJsJ10sCiAgICAgICAgICAg
ICAgICAgJ2J1aWxkJyA9PiAkcm93WydyZXF1ZXN0X2J1aWxkJ10sCiAgICAgICAgICAgICAgICAg
J2NyZWF0ZWRBdCcgPT4gJHJvd1sncmVxdWVzdF9jcmVhdGVkX2F0J10gPyBzdHJ0b3RpbWUoJHJv
d1sncmVxdWVzdF9jcmVhdGVkX2F0J10pICogMTAwMCA6IE5VTEwsCisgICAgICAgICAgICAgICAg
J3N0YXR1c0Rlc2NyaXB0aW9uJyA9PiAkcm93WydyZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbidd
LAogICAgICAgICAgICAgKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICRyZXF1ZXN0czsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy90ZXN0LWdyb3VwLXJldmlzaW9uLXRhYmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmV2aXNpb24tdGFibGUuanMKaW5kZXgg
MDNlZjE2MDU3MWFhODE4OGQ1YTliOWI3ZTBjNGIwM2ZiM2Y1Njc4Ny4uYzEyNTM3NGRiYzNiMWY1
OTNkODlkMmM5ZjIzNjliYjk4OGU0MjAwNSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmV2aXNpb24tdGFibGUuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3Qt
Z3JvdXAtcmV2aXNpb24tdGFibGUuanMKQEAgLTg5LDcgKzg5LDYgQEAgY2xhc3MgVGVzdEdyb3Vw
UmV2aXNpb25UYWJsZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICBjb25zdCBhZGRp
dGlvbmFsUmVwb3NpdG9yeUxpc3QgPSBSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoWy4uLmFkZGl0aW9uYWxSZXBvc2l0b3J5U2V0XSk7CiAKICAgICAgICAgY29uc3Qg
ZWxlbWVudCA9IENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKLSAgICAgICAgY29uc3QgbGlu
ayA9IENvbXBvbmVudEJhc2UuY3JlYXRlTGluazsKICAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNl
KHRoaXMuY29udGVudCgncmV2aXNpb24tdGFibGUnKSwgWwogICAgICAgICAgICAgZWxlbWVudCgn
dGhlYWQnLCBbCiAgICAgICAgICAgICAgICAgZWxlbWVudCgndGgnLCAnQ29uZmlndXJhdGlvbicp
LApAQCAtMTA2LDEyICsxMDUsMzAgQEAgY2xhc3MgVGVzdEdyb3VwUmV2aXNpb25UYWJsZSBleHRl
bmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRSZXBvc2l0
b3J5TGlzdC5tYXAoKHJlcG9zaXRvcnkpID0+IHRoaXMuX2J1aWxkQ29tbWl0Q2VsbChlbnRyeSwg
cmVwb3NpdG9yeSwgcGF0Y2hlZFBlcG9zaXRvcnlTZXQuaGFzKHJlcG9zaXRvcnkpKSksCiAgICAg
ICAgICAgICAgICAgICAgIGhhc0N1c3RvbVJvb3RzID8gdGhpcy5fYnVpbGRDdXN0b21Sb290c0Nl
bGwoZW50cnkpIDogW10sCiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3RkJywgZW50cnku
bGFiZWwpLAotICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCd0ZCcsIHJlcXVlc3Quc3RhdHVz
VXJsKCkgPyBsaW5rKHJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgcmVxdWVzdC5zdGF0dXNVcmwoKSkg
OiByZXF1ZXN0LnN0YXR1c0xhYmVsKCkpLAorICAgICAgICAgICAgICAgICAgICB0aGlzLl9idWls
ZERlc2NyaXB0aW9uQ2VsbChyZXF1ZXN0KSwKICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25h
bFJlcG9zaXRvcnlMaXN0Lm1hcCgocmVwb3NpdG9yeSkgPT4gdGhpcy5fYnVpbGRDb21taXRDZWxs
KGVudHJ5LCByZXBvc2l0b3J5KSksCiAgICAgICAgICAgICAgICAgXSk7CiAgICAgICAgICAgICB9
KSldKTsKICAgICB9CiAKKyAgICBfYnVpbGREZXNjcmlwdGlvbkNlbGwocmVxdWVzdCkKKyAgICB7
CisgICAgICAgIGNvbnN0IGxpbmsgPSBDb21wb25lbnRCYXNlLmNyZWF0ZUxpbms7CisgICAgICAg
IGNvbnN0IGVsZW1lbnQgPSBDb21wb25lbnRCYXNlLmNyZWF0ZUVsZW1lbnQ7CisgICAgICAgIGNv
bnN0IHNob3dXYXJuaW5nSWNvbiA9IHJlcXVlc3QuaGFzQ29tcGxldGVkKCkgJiYgcmVxdWVzdC5z
dGF0dXNEZXNjcmlwdGlvbigpOworICAgICAgICBjb25zdCBjZWxsQ29udGVudCA9IFtdOworICAg
ICAgICBpZiAoc2hvd1dhcm5pbmdJY29uKQorICAgICAgICAgICAgY2VsbENvbnRlbnQucHVzaChl
bGVtZW50KCdkaXYnLCB7Y2xhc3M6ICd3YXJuaW5nLWljb24tY29udGFpbmVyJ30sIG5ldyBXYXJu
aW5nSWNvbihgTGFzdCBzeW5jZWQgc3RhdHVzIGRldGFpbDogJHtyZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCl9YCkpKTsKKworICAgICAgICBjb25zdCBzdGF0dXNMYWJlbCA9IHJlcXVlc3Quc3Rh
dHVzTGFiZWwoKTsKKyAgICAgICAgY29uc3Qgc3RhdHVzTGluayA9IHJlcXVlc3Quc3RhdHVzVXJs
KCkgPyBsaW5rKHN0YXR1c0xhYmVsLCByZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIHJlcXVl
c3Quc3RhdHVzVXJsKCkpIDogc3RhdHVzTGFiZWw7CisgICAgICAgIGNlbGxDb250ZW50LnB1c2go
c3RhdHVzTGluayk7CisgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCkgJiYg
IXNob3dXYXJuaW5nSWNvbikKKyAgICAgICAgICAgIGNlbGxDb250ZW50LnB1c2goZWxlbWVudCgn
bGFiZWwnLCAnOicpLCBlbGVtZW50KCdsYWJlbCcsIGAke3JlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKX1gKSk7CisKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQoJ3RkJywge2NsYXNzOiAnZGVzY3Jp
cHRpb24tY2VsbCd9LCAgY2VsbENvbnRlbnQpOworICAgIH0KKwogICAgIF9idWlsZENvbW1pdENl
bGwoZW50cnksIHJlcG9zaXRvcnksIHNob3dSb290ID0gZmFsc2UpCiAgICAgewogICAgICAgICBj
b25zdCBlbGVtZW50ID0gQ29tcG9uZW50QmFzZS5jcmVhdGVFbGVtZW50OwpAQCAtMjIyLDYgKzIz
OSwyMSBAQCBjbGFzcyBUZXN0R3JvdXBSZXZpc2lvblRhYmxlIGV4dGVuZHMgQ29tcG9uZW50QmFz
ZSB7CiAgICAgICAgICAgICB0aCB7CiAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVy
aXQ7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAuZGVzY3JpcHRpb24tY2VsbCBsYWJlbCB7
CisgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICAgICAgICAg
IG1heC13aWR0aDogMTByZW07CisgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsK
KyAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKKyAgICAgICAgICAgICAg
ICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGQuZGVzY3Jp
cHRpb24tY2VsbCB7CisgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgZGl2Lndhcm5pbmctaWNvbi1jb250YWluZXIgeworICAgICAg
ICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgICAgICB0b3A6IC0wLjJy
ZW07CisgICAgICAgICAgICAgICAgbGVmdDowOworICAgICAgICAgICAgfQogICAgICAgICAgICAg
LnJvb3RzIHsKICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDIwcmVtOwogICAgICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25l
bnRzL3dhcm5pbmctaWNvbi5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
Y29tcG9uZW50cy93YXJuaW5nLWljb24uanMKaW5kZXggN2IzZWZkYTUzZDEyYTE3YjZhYmIzYmI4
ZmZlYTE4NDBjM2MzYWUxMy4uMGVlNGY4ZjBjYTdiMDJlM2E5MjlmYTU0MjA5MWM4ZTdkNTlmYWE4
NSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25l
bnRzL3dhcm5pbmctaWNvbi5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2NvbXBvbmVudHMvd2FybmluZy1pY29uLmpzCkBAIC0xLDggKzEsMTYgQEAKIAogY2xhc3Mg
V2FybmluZ0ljb24gZXh0ZW5kcyBCdXR0b25CYXNlIHsKLSAgICBjb25zdHJ1Y3RvcigpCisgICAg
Y29uc3RydWN0b3Iod2FybmluZ01lc3NhZ2UpCiAgICAgewogICAgICAgICBzdXBlcignd2Fybmlu
Zy1pY29uJyk7CisgICAgICAgIHRoaXMuX3dhcm5pbmdNZXNzYWdlID0gd2FybmluZ01lc3NhZ2U7
CisgICAgfQorCisgICAgcmVuZGVyKCkKKyAgICB7CisgICAgICAgIHN1cGVyLnJlbmRlcigpOwor
ICAgICAgICBpZiAodGhpcy5fd2FybmluZ01lc3NhZ2UpCisgICAgICAgICAgICB0aGlzLmNvbnRl
bnQoJ2J1dHRvbicpLnRpdGxlID0gdGhpcy5fd2FybmluZ01lc3NhZ2U7CiAgICAgfQogCiAgICAg
c3RhdGljIHNpemVGYWN0b3IoKSB7IHJldHVybiAwLjc7IH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzCmlu
ZGV4IDA3MDU0YWU4MzZhZTBhMGI2NjQyZmUwYjg5OTAzODg4NjNkZjU5OWQuLjJkYjBkNWJiNDM3
OGNlMzVlM2M0OWFkZjNhZTUwMzgwMTMxZDMyZmQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcwpAQCAt
MjYsNiArMjYsNyBAQCBjbGFzcyBCdWlsZFJlcXVlc3QgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3Qg
ewogICAgICAgICB0aGlzLl9idWlsZElkID0gb2JqZWN0LmJ1aWxkOwogICAgICAgICB0aGlzLl9j
cmVhdGVkQXQgPSBuZXcgRGF0ZShvYmplY3QuY3JlYXRlZEF0KTsKICAgICAgICAgdGhpcy5fcmVz
dWx0ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fc3RhdHVzRGVzY3JpcHRpb24gPSBvYmplY3Quc3Rh
dHVzRGVzY3JpcHRpb247CiAgICAgfQogCiAgICAgdXBkYXRlU2luZ2xldG9uKG9iamVjdCkKQEAg
LTQyLDEyICs0MywxNCBAQCBjbGFzcyBCdWlsZFJlcXVlc3QgZXh0ZW5kcyBEYXRhTW9kZWxPYmpl
Y3QgewogICAgICAgICB0aGlzLl9zdGF0dXMgPSBvYmplY3Quc3RhdHVzOwogICAgICAgICB0aGlz
Ll9zdGF0dXNVcmwgPSBvYmplY3QudXJsOwogICAgICAgICB0aGlzLl9idWlsZElkID0gb2JqZWN0
LmJ1aWxkOworICAgICAgICB0aGlzLl9zdGF0dXNEZXNjcmlwdGlvbiA9IG9iamVjdC5zdGF0dXNE
ZXNjcmlwdGlvbjsKICAgICB9CiAKICAgICB0cmlnZ2VyYWJsZSgpIHsgcmV0dXJuIHRoaXMuX3Ry
aWdnZXJhYmxlOyB9CiAgICAgYW5hbHlzaXNUYXNrSWQoKSB7IHJldHVybiB0aGlzLl9hbmFseXNp
c1Rhc2tJZDsgfQogICAgIHRlc3RHcm91cElkKCkgeyByZXR1cm4gdGhpcy5fdGVzdEdyb3VwSWQ7
IH0KICAgICB0ZXN0R3JvdXAoKSB7IHJldHVybiB0aGlzLl90ZXN0R3JvdXA7IH0KKyAgICBzdGF0
dXNEZXNjcmlwdGlvbigpIHsgcmV0dXJuIHRoaXMuX3N0YXR1c0Rlc2NyaXB0aW9uOyB9CiAgICAg
cmVwb3NpdG9yeUdyb3VwKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeUdyb3VwOyB9CiAgICAg
cGxhdGZvcm0oKSB7IHJldHVybiB0aGlzLl9wbGF0Zm9ybTsgfQogICAgIHRlc3QoKSB7IHJldHVy
biB0aGlzLl90ZXN0OyB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IDgw
Y2VhZjdmNzVjMDMwMjAyYjc0OGRlNzQ4OTZjMDljOTczM2M4YTMuLjA3ZGY1OGQ0OGUxOTE2YjVj
NGFjYjk3MTRlMmU5NzkxYzgzMmU3M2UgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3Rz
LmpzCkBAIC01NywxMCArNTcsMTAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV1bJ2Ny
ZWF0ZWRBdCddID0gMDsKICAgICAgICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXVsn
Y3JlYXRlZEF0J10gPSAwOwogICAgICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNd
WydjcmVhdGVkQXQnXSA9IDA7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXSwge2lkOiAnNzA0JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJs
ZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3Jt
OiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzAnLCBjb21taXRTZXQ6ICc0MDMnLCBz
dGF0dXM6ICdwZW5kaW5nJywgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XSwge2lkOiAnNzA1JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0
b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6
ICc5MDAnLCBvcmRlcjogJzEnLCBjb21taXRTZXQ6ICc0MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywg
dXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXSwge2lkOiAnNzA2JywgdGFz
azogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywg
dGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzIn
LCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywgdXJsOiBudWxsLCBidWlsZDog
bnVsbCwgY3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAnLCB0cmlnZ2Vy
YWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRm
b3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRTZXQ6ICc0MDQn
LCBzdGF0dXM6ICdwZW5kaW5nJywgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAw
fSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXSwge2lkOiAnNzA0JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBv
c2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3Jv
dXA6ICc5MDAnLCBvcmRlcjogJzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5n
Jywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0
ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMV0sIHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAw
JywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1Jywg
dGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAn
cGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxs
LCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxl
OiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06
ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0
YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWls
ZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAnLCB0cmln
Z2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBs
YXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRTZXQ6ICc0
MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVs
bCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOwogICAgICAgIH0pOwogICAgIH0pOwogCmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNl
cy9tb2NrLWRhdGEuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jl
c291cmNlcy9tb2NrLWRhdGEuanMKaW5kZXggNjA5MTQ1OTZkYTU2OTQ3MmM0ZGJmYmFlZTJiYjEz
ZjBmZThiOGE1NS4uYTI5OWMzNTU2YzEzZWNmZjM3ZWViNTA3MTk1NTZjMjlmOTBiZDQ5NSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMv
bW9jay1kYXRhLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cmVzb3VyY2VzL21vY2stZGF0YS5qcwpAQCAtMzEwLDcgKzMxMCw4IEBAIE1vY2tEYXRhID0gewog
ICAgICAgICAgICAgICAgICJ3ayI6IFtvcHRpb25zLndlYmtpdFJldmlzaW9uIHx8ICcxOTE2MjIn
LCAiVW5rbm93biJdLAogICAgICAgICAgICAgICAgICJvcyI6IFtvcHRpb25zLm9zeFJldmlzaW9u
IHx8ICcxMC4xMSAxNUEyODQnLCAiVW5rbm93biJdLAogICAgICAgICAgICAgICAgICJzbGF2ZW5h
bWUiOiBbb3B0aW9ucy53b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAiV29ya2VyIChkZXByZWNhdGVk
KSJdLAotICAgICAgICAgICAgICAgICJ3b3JrZXJuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8
fCAiYm90MjAyIiwgIldvcmtlciJdCisgICAgICAgICAgICAgICAgIndvcmtlcm5hbWUiOiBbb3B0
aW9ucy53b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAiV29ya2VyIl0sCisgICAgICAgICAgICAgICAg
InN0YXR1c2Rlc2NyaXB0aW9uIjogW29wdGlvbnMuc3RhdHVzRGVzY3JpcHRpb24gfHwgbnVsbCwg
IlVua25vd24iXQogICAgICAgICAgICAgfQogICAgICAgICB9OwogICAgIH0sCkBAIC0zNDUsNyAr
MzQ2LDggQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiBbJycs
ICJVbmtub3duIl0sCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogWycnLCAiVW5rbm93biJd
LAogICAgICAgICAgICAgICAgICJzbGF2ZW5hbWUiOiBbb3B0aW9ucy53b3JrZXJOYW1lIHx8ICJi
b3QyMDIiLCAiV29ya2VyIChkZXByZWNhdGVkKSJdLAotICAgICAgICAgICAgICAgICJ3b3JrZXJu
YW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldvcmtlciJdCisgICAgICAg
ICAgICAgICAgIndvcmtlcm5hbWUiOiBbb3B0aW9ucy53b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAi
V29ya2VyIl0sCisgICAgICAgICAgICAgICAgInN0YXR1c2Rlc2NyaXB0aW9uIjogW29wdGlvbnMu
c3RhdHVzRGVzY3JpcHRpb24gfHwgbnVsbCwgIlVua25vd24iXQogICAgICAgICAgICAgfQogICAg
ICAgICB9OyAgIAogICAgIH0sCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3Qt
aW50ZWdyYXRpb24tdGVzdHMuanMKaW5kZXggZTYxMjU4MjY2Y2Q4ZTBjNTRkNGMwMzZlNTRkOWI3
ZDEwZjg2ZTE1ZS4uNjg4ZDc2OWFkYzllOGRmYmQ0Y2EyYjNkYmZiZGIyMGQwY2M4OTI4NSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5j
LWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5q
cwpAQCAtMTc4LDcgKzE3OCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cCh0YXNrX25hbWU9
J2N1c3RvbSB0YXNrJykgewogICAgIH0pOwogfQogCi1hc3luYyBmdW5jdGlvbiBjcmVhdGVUZXN0
R3JvdXBXaWhQYXRjaCgpCithc3luYyBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2go
KQogewogICAgIGNvbnN0IHBhdGNoRmlsZSA9IGF3YWl0IFRlbXBvcmFyeUZpbGUubWFrZVRlbXBv
cmFyeUZpbGUoJ3BhdGNoLmRhdCcsICdwYXRjaCBmaWxlJyk7CiAgICAgY29uc3Qgb3JpZ2luYWxQ
cml2aWxlZ2VkQVBJID0gZ2xvYmFsLlByaXZpbGVnZWRBUEk7CkBAIC0zMzAsNiArMzMwLDM1NiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKKyAgICBpdCgnc2hvdWxkIGtlZXAgdXBkYXRpbmcgYnVpbGQgc3RhdHVzJywgYXN5
bmMgKCkgPT4geworICAgICAgICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkucmVxdWVz
dHM7CisgICAgICAgIGxldCB0YXNrSWQgPSBudWxsOworICAgICAgICBsZXQgc3luY1Byb21pc2U7
CisgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IGF3YWl0IGNyZWF0ZVRyaWdnZXJhYmxlKCk7Cisg
ICAgICAgIGxldCB0ZXN0R3JvdXAgPSBhd2FpdCBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsK
KworICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CisgICAgICAgIGxldCB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKworICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBsZXQgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgIGxldCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKKworICAgICAgICBsZXQgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
RGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIGxldCBvdGhlckNvbW1pdFNldCA9IG90
aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgc3luY1Byb21pc2UgPSB0cmln
Z2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7
CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKKyAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBhd2FpdCBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30p
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsK
KyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2
XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09L
Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcx
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAg
ICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2Fw
aS91cGxvYWRlZC1maWxlLzEuZGF0JyksICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13
ayc6IHRydWUsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2UtYWItYnVpbGRzJ319KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyJyksCisgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1
aWxkUmVxdWVzdElkOiAxfSkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVp
bGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRS
ZXF1ZXN0SWQ6IDEsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQnVpbGRpbmcgV2ViS2l0J30pKTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdh
aXQgc3luY1Byb21pc2U7CisKKyAgICAgICAgbGV0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
KyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBv
c2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwor
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNEZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgd2Vi
a2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAg
IGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CisKKyAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOworICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworCisgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKKworICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAg
ICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30p
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKKyAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVt
YmVyOiAxMjQsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQ29tcGlsaW5nIFdURid9KSk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30p
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAgICAg
ICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEo
e2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1
aWxkUmVxdWVzdElkOiAxLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0NvbXBpbGluZyBXVEYnfSldCisg
ICAgICAgIH0pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30p
OworICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKKworICAgICAgICBhd2FpdCBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAg
ICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOworICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBh
dGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisg
ICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
KyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFz
c2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwp
OworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CisKKyAgICAgICAgYXdhaXQgdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsK
KworICAgICAgICB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgIHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOworICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisg
ICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CisgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCAnQ29tcGlsaW5nIFdURicpOworICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBsZXQgd2Via2l0Um9vdCA9
IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Vi
a2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKKworICAgICAg
ICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAg
ICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisK
KyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwor
CisgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWls
ZGVycygpKTsKKyAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
M10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAxMjR9
KSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAg
ICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Ut
YWItYnVpbGRzJywgJ09LJyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0u
ZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdw
YXJhbXMnOgorICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gn
OiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlfX0pOworICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsK
KyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsK
KyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgeworICAgICAgICAgICAg
J2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGRE
YXRhKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicp
LCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDEyNH0pXQorICAgICAgICB9KTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdh
aXQgc3luY1Byb21pc2U7CisKKyAgICAgICAgYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgIHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOworICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
CisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Cisg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKKworICAgICAgICBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
c2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGF3YWl0IHVwbG9hZFJvb3Qob3RoZXJCdWls
ZFJlcXVlc3QuaWQoKSwgMTI0KTsKKworICAgICAgICB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07
CisgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
KyAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRj
aCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0
KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgd2Via2l0
Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3Nl
cnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKKwor
ICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CisgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBh
c3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5u
b3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIG90
aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3Qg
PSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3Nl
cnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290
aGVyV2Via2l0Um9vdF0pOworICAgIH0pOworCiAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1
aWxkIHRvIGJ1aWxkIGEgcGF0Y2gnLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0g
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKICAgICAgICAgbGV0IHRyaWdnZXJhYmxlOwpAQCAtMzM3
LDcgKzY4Nyw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBsZXQgc3luY1Byb21pc2U7CiAgICAgICAgIHJldHVybiBjcmVhdGVUcmlnZ2VyYWJsZSgp
LnRoZW4oKG5ld1RyaWdnZXJhYmxlKSA9PiB7CiAgICAgICAgICAgICB0cmlnZ2VyYWJsZSA9IG5l
d1RyaWdnZXJhYmxlOwotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpaFBhdGNo
KCk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoKCk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdy
b3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CkBAIC02MTAsNyArOTYwLDcg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGxldCBz
eW5jUHJvbWlzZTsKICAgICAgICAgcmV0dXJuIGNyZWF0ZVRyaWdnZXJhYmxlKGNvbmZpZ1dpdGhQ
bGF0Zm9ybU5hbWUpLnRoZW4oKG5ld1RyaWdnZXJhYmxlKSA9PiB7CiAgICAgICAgICAgICB0cmln
Z2VyYWJsZSA9IG5ld1RyaWdnZXJhYmxlOwotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RH
cm91cFdpaFBhdGNoKCk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2l0aFBh
dGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFz
a0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CkBAIC04
ODQsNyArMTIzNCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICBsZXQgZmlyc3RSb290ID0gbnVsbDsKICAgICAgICAgcmV0dXJuIGNyZWF0ZVRyaWdn
ZXJhYmxlKCkudGhlbigobmV3VHJpZ2dlcmFibGUpID0+IHsKICAgICAgICAgICAgIHRyaWdnZXJh
YmxlID0gbmV3VHJpZ2dlcmFibGU7Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3Vw
V2loUGF0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2go
KTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQg
PSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKQEAgLTk4Nyw3
ICsxMzM3LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIGxldCBzeW5jUHJvbWlzZTsKICAgICAgICAgcmV0dXJuIGNyZWF0ZVRyaWdnZXJhYmxlKCku
dGhlbigobmV3VHJpZ2dlcmFibGUpID0+IHsKICAgICAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3
VHJpZ2dlcmFibGU7Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2loUGF0Y2go
KTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsKICAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3Jv
dXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwpAQCAtMTA3Niw3ICsxNDI2LDcgQEAgZGVzY3JpYmUoJ3N5
bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKICAg
ICAgICAgcmV0dXJuIGNyZWF0ZVRyaWdnZXJhYmxlKCkudGhlbigobmV3VHJpZ2dlcmFibGUpID0+
IHsKICAgICAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3VHJpZ2dlcmFibGU7Ci0gICAgICAgICAg
ICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2loUGF0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBj
cmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9
PiB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5
bmNlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5j
ZXIuanMKaW5kZXggYjkxMjcyOGZhYzczNWUyMmUxOGMwNzE4ZDBjM2NkMzRiMmVhMWUzOS4uMzNh
MzM1MWFlYjBhNDQxZjIyYzViMzkxNGUxMmU0ODUyNmRhMTE4ZSAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCkBAIC0xNSw3
ICsxNSw3IEBAIGNsYXNzIEJ1aWxkYm90QnVpbGRFbnRyeSB7CiAgICAgICAgIGFzc2VydC5lcXVh
bChzeW5jZXIuYnVpbGRlcklEKCksIHJhd0RhdGFbJ2J1aWxkZXJpZCddKTsKIAogICAgICAgICB0
aGlzLl9zeW5jZXIgPSBzeW5jZXI7Ci0gICAgICAgIHRoaXMuX2J1aWxkYm90QnVpbGRSZXF1ZXN0
SWQgPSByYXdEYXRhWydidWlsZHJlcXVlc3RpZCddCisgICAgICAgIHRoaXMuX2J1aWxkYm90QnVp
bGRSZXF1ZXN0SWQgPSByYXdEYXRhWydidWlsZHJlcXVlc3RpZCddOwogICAgICAgICB0aGlzLl9o
YXNGaW5pc2hlZCA9IHJhd0RhdGFbJ2NvbXBsZXRlJ107CiAgICAgICAgIHRoaXMuX2lzUGVuZGlu
ZyA9ICdjbGFpbWVkJyBpbiByYXdEYXRhICYmICFyYXdEYXRhWydjbGFpbWVkJ107CiAgICAgICAg
IHRoaXMuX2lzSW5Qcm9ncmVzcyA9ICF0aGlzLl9pc1BlbmRpbmcgJiYgIXRoaXMuX2hhc0Zpbmlz
aGVkOwpAQCAtMjMsNiArMjMsNyBAQCBjbGFzcyBCdWlsZGJvdEJ1aWxkRW50cnkgewogICAgICAg
ICB0aGlzLl93b3JrZXJOYW1lID0gcmF3RGF0YVsncHJvcGVydGllcyddICYmIHJhd0RhdGFbJ3By
b3BlcnRpZXMnXVsnd29ya2VybmFtZSddID8gcmF3RGF0YVsncHJvcGVydGllcyddWyd3b3JrZXJu
YW1lJ11bMF0gOiBudWxsOwogICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RJZCA9IHJhd0RhdGFb
J3Byb3BlcnRpZXMnXSAmJiByYXdEYXRhWydwcm9wZXJ0aWVzJ11bc3luY2VyLl9idWlsZFJlcXVl
c3RQcm9wZXJ0eU5hbWVdCiAgICAgICAgICAgICA/IHJhd0RhdGFbJ3Byb3BlcnRpZXMnXVtzeW5j
ZXIuX2J1aWxkUmVxdWVzdFByb3BlcnR5TmFtZV1bMF0gOiBudWxsOworICAgICAgICB0aGlzLl9z
dGF0dXNEZXNjcmlwdGlvbiA9IHJhd0RhdGFbJ3Byb3BlcnRpZXMnXSAmJiByYXdEYXRhWydwcm9w
ZXJ0aWVzJ11bJ3N0YXR1c2Rlc2NyaXB0aW9uJ10gPyByYXdEYXRhWydwcm9wZXJ0aWVzJ11bJ3N0
YXR1c2Rlc2NyaXB0aW9uJ11bMF0gOiBudWxsOwogICAgIH0KIAogICAgIHN5bmNlcigpIHsgcmV0
dXJuIHRoaXMuX3N5bmNlcjsgfQpAQCAtMzMsNiArMzQsNyBAQCBjbGFzcyBCdWlsZGJvdEJ1aWxk
RW50cnkgewogICAgIGlzUGVuZGluZygpIHsgcmV0dXJuIHRoaXMuX2lzUGVuZGluZzsgfQogICAg
IGlzSW5Qcm9ncmVzcygpIHsgcmV0dXJuIHRoaXMuX2lzSW5Qcm9ncmVzczsgfQogICAgIGhhc0Zp
bmlzaGVkKCkgeyByZXR1cm4gdGhpcy5faGFzRmluaXNoZWQ7IH0KKyAgICBzdGF0dXNEZXNjcmlw
dGlvbigpIHsgcmV0dXJuIHRoaXMuX3N0YXR1c0Rlc2NyaXB0aW9uOyB9CiAgICAgdXJsKCkgeyBy
ZXR1cm4gdGhpcy5pc1BlbmRpbmcoKSA/IHRoaXMuX3N5bmNlci51cmxGb3JQZW5kaW5nQnVpbGQo
dGhpcy5fYnVpbGRib3RCdWlsZFJlcXVlc3RJZCkgOiB0aGlzLl9zeW5jZXIudXJsRm9yQnVpbGRO
dW1iZXIodGhpcy5fYnVpbGROdW1iZXIpOyB9CiAKICAgICBidWlsZFJlcXVlc3RTdGF0dXNJZlVw
ZGF0ZUlzTmVlZGVkKHJlcXVlc3QpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKaW5kZXggZGNkZGRmNDFhNmNl
Yjg1NzgxYzkwNWQ2MWZlMmM3OWNhMDA5NTcwNC4uYWI2MGZiZWM3MDQzMDgyMTZlN2Y4MTgyZTk1
ZWRjYWRmMTlhMWU2YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xz
L2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwpAQCAtMTg0LDEwICsxODQsMTMgQEAg
Y2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5l
d1N0YXR1cyA9IGVudHJ5LmJ1aWxkUmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNOZWVkZWQocmVxdWVz
dCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTdGF0dXMpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX2xvZ2dlci5sb2coYFVwZGF0aW5nIHRoZSBzdGF0dXMgb2YgYnVpbGQg
cmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZnJvbSAke3JlcXVlc3Quc3RhdHVzKCl9IHRvICR7bmV3
U3RhdHVzfWApOwotICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlc1tlbnRyeS5idWlsZFJl
cXVlc3RJZCgpXSA9IHtzdGF0dXM6IG5ld1N0YXR1cywgdXJsOiBlbnRyeS51cmwoKX07CisgICAg
ICAgICAgICAgICAgICAgICAgICB1cGRhdGVzW2VudHJ5LmJ1aWxkUmVxdWVzdElkKCldID0ge3N0
YXR1czogbmV3U3RhdHVzLCB1cmw6IGVudHJ5LnVybCgpLCBzdGF0dXNEZXNjcmlwdGlvbjogZW50
cnkuc3RhdHVzRGVzY3JpcHRpb24oKX07CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
IXJlcXVlc3Quc3RhdHVzVXJsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2xv
Z2dlci5sb2coYFNldHRpbmcgdGhlIHN0YXR1cyBVUkwgb2YgYnVpbGQgcmVxdWVzdCAke3JlcXVl
c3QuaWQoKX0gdG8gJHtlbnRyeS51cmwoKX1gKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVw
ZGF0ZXNbZW50cnkuYnVpbGRSZXF1ZXN0SWQoKV0gPSB7c3RhdHVzOiByZXF1ZXN0LnN0YXR1cygp
LCB1cmw6IGVudHJ5LnVybCgpfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXNbZW50
cnkuYnVpbGRSZXF1ZXN0SWQoKV0gPSB7c3RhdHVzOiByZXF1ZXN0LnN0YXR1cygpLCB1cmw6IGVu
dHJ5LnVybCgpLCBzdGF0dXNEZXNjcmlwdGlvbjogZW50cnkuc3RhdHVzRGVzY3JpcHRpb24oKX07
CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpICE9IGVudHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX2xvZ2dlci5sb2coYFNldHRpbmcgdGhlIHN0YXR1cyBkZXRhaWwgb2YgYnVpbGQg
cmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZnJvbSAke3JlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24o
KX0gdG8gJHtlbnRyeS5zdGF0dXNEZXNjcmlwdGlvbigpfWApOworICAgICAgICAgICAgICAgICAg
ICAgICAgdXBkYXRlc1tlbnRyeS5idWlsZFJlcXVlc3RJZCgpXSA9IHtzdGF0dXM6IHJlcXVlc3Qu
c3RhdHVzKCksIHVybDogZW50cnkudXJsKCksIHN0YXR1c0Rlc2NyaXB0aW9uOiBlbnRyeS5zdGF0
dXNEZXNjcmlwdGlvbigpfTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCmluZGV4IDk2NDFlNDAy
MzAzYmVhZGVlNTIwNjNkMDBmMzU1OWZkYjE3M2M0NmMuLmUwY2ExN2Y1YmQzNDc4NmFiNTFkZDY0
NTRjYzY1OTI4MDlkZTVjZTUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKQEAgLTI4Myw3ICsy
ODMsNyBAQCBmdW5jdGlvbiBzYW1wbGVQZW5kaW5nQnVpbGRSZXF1ZXN0cyhidWlsZFJlcXVlc3RJ
ZCwgYnVpbGRUaW1lLCB3b3JrZXJOYW1lLCBidWlsZAogICAgIH07CiB9CiAKLWZ1bmN0aW9uIHNh
bXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCBpc0NvbXBsZXRlLCBidWlsZFJlcXVlc3RJZCwgYnVp
bGROdW1iZXIsIGJ1aWxkZXJJZCkKK2Z1bmN0aW9uIHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1l
LCBpc0NvbXBsZXRlLCBidWlsZFJlcXVlc3RJZCwgYnVpbGROdW1iZXIsIGJ1aWxkZXJJZCwgc3Rh
dHVzRGVzY3JpcHRpb24pCiB7CiAgICAgcmV0dXJuIHsKICAgICAgICAgImJ1aWxkZXJpZCI6IGJ1
aWxkZXJJZCB8fCAxMDIsCkBAIC0zMDIsMTQgKzMwMiwxNSBAQCBmdW5jdGlvbiBzYW1wbGVCdWls
ZERhdGEod29ya2VyTmFtZSwgaXNDb21wbGV0ZSwgYnVpbGRSZXF1ZXN0SWQsIGJ1aWxkTnVtYmVy
LCBidQogICAgICAgICAgICAgInBsYXRmb3JtIjogWyJtYWMiLCAiVW5rbm93biJdLAogICAgICAg
ICAgICAgInNjaGVkdWxlciI6IFsiQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNl
U2NoZWR1bGVyIiwgIlNjaGVkdWxlciJdLAogICAgICAgICAgICAgInNsYXZlbmFtZSI6IFt3b3Jr
ZXJOYW1lIHx8ICJBQlRlc3QtaVBhZC0wIiwgIldvcmtlciAoZGVwcmVjYXRlZCkiXSwKLSAgICAg
ICAgICAgICJ3b3JrZXJuYW1lIjogW3dvcmtlck5hbWUgfHwgIkFCVGVzdC1pUGFkLTAiLCAiV29y
a2VyIl0KKyAgICAgICAgICAgICJ3b3JrZXJuYW1lIjogW3dvcmtlck5hbWUgfHwgIkFCVGVzdC1p
UGFkLTAiLCAiV29ya2VyIl0sCisgICAgICAgICAgICAic3RhdHVzZGVzY3JpcHRpb24iOiBbc3Rh
dHVzRGVzY3JpcHRpb24gfHwgbnVsbCwgIlVua25vd24iXSwKICAgICAgICAgfQogICAgIH07CiB9
CiAKIGZ1bmN0aW9uIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERhdGEod29ya2VyTmFtZSkKIHsKLSAg
ICByZXR1cm4gc2FtcGxlQnVpbGREYXRhKHdvcmtlck5hbWUsIGZhbHNlKTsKKyAgICByZXR1cm4g
c2FtcGxlQnVpbGREYXRhKHdvcmtlck5hbWUsIGZhbHNlLCBudWxsLCBudWxsLCBudWxsLCAnYnVp
bGRpbmcnKTsKIH0KIAogZnVuY3Rpb24gc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKHdvcmtlck5hbWUp
CkBAIC0xMTE3LDYgKzExMTgsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVz
dHMvMTcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVp
bGRib3RCdWlsZEVudHJ5IGZvciBpbi1wcm9ncmVzcyBidWlsZCcsICgpID0+IHsKQEAgLTExMzQs
NiArMTEzNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5vayhlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
b2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5
LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYx
NCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCks
ICdidWlsZGluZycpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBC
dWlsZGJvdEJ1aWxkRW50cnkgZm9yIGZpbmlzaGVkIGJ1aWxkJywgKCkgPT4gewpAQCAtMTE1MSw2
ICsxMTU0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
b2soZW50cnkuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
dXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvMTc1
NScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCks
IG51bGwpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJv
dEJ1aWxkRW50cnkgZm9yIG1peCBvZiBpbi1wcm9ncmVzcyBhbmQgZmluaXNoZWQgYnVpbGRzJywg
KCkgPT4gewpAQCAtMTE2OSw2ICsxMTczLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
ZXJzLzEwMi9idWlsZHMvNjE0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc3Rh
dHVzRGVzY3JpcHRpb24oKSwgJ2J1aWxkaW5nJyk7CiAKICAgICAgICAgICAgIGVudHJ5ID0gZW50
cmllc1sxXTsKICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90
QnVpbGRFbnRyeSk7CkBAIC0xMTc5LDYgKzExODQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygp
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRlcnMvMTAyL2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkuc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374488</attachid>
            <date>2019-07-19 12:10:15 -0700</date>
            <delta_ts>2019-07-23 21:43:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199810-20190719121014.patch</filename>
            <type>text/plain</type>
            <size>47309</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjM1CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1NTE5YzMzZjE1N2JmNWMwNGU1NjkzNDQ3YjU4YzZhNWQ3YmY1ODVkLi42ZGRhNDMxMTFi
MDkzMzhmOTA0MjQ0YmNjYjNiZDc4MjQxNjgwYzBmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxOS0wNy0xNSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBQcm92aWRlIGJ1aWxkIHJlcXVlc3Qgc3RhdHVzIGRlc2Ny
aXB0aW9uIGluZm9ybWF0aW9uIG9uIGRhc2hib2FyZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTgxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBidWlsZCByZXF1ZXN0IHN0YXR1cyBkZXRhaWwg
dG8gc2hvdyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBmb3IgYSBidWlsZCBhbmQgc2hvdyBpdCBpbiBk
YXNoYm9hcmQuCisgICAgICAgIFVwZGF0ZSBTUUwgZm9yIGV4aXN0aW5nIGluc3RhbmNlOgorICAg
ICAgICAgICAgQUxURVIgVEFCTEUgYnVpbGRfcmVxdWVzdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJ
U1RTIHJlcXVlc3Rfc3RhdHVzX2Rlc2NyaXB0aW9uIHZhcmNoYXIoMTAyNCkgREVGQVVMVCBOVUxM
OworCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFkZGVkIHJlcXVlc3Rfc3RhdHVzX2Rl
c2NyaXB0aW9uIGNvbHVtbi4KKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNlLnNxbDogQSBmaWxl
IHN0b3JlcyBtaWdyYXRpb24gU1FMIGZvciBleGlzdGluZyBpbnN0YW5jZS4KKyAgICAgICAgKiBw
dWJsaWMvYXBpL2J1aWxkLXJlcXVlc3RzLnBocDogQWRkZWQgc3VwcG9ydCBmb3IgdXBkYXRpbmcg
cmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24uCisgICAgICAgICogcHVibGljL2luY2x1ZGUvYnVp
bGQtcmVxdWVzdHMtZmV0Y2hlci5waHA6IEV4cG9zZWQgYHN0YXR1c0Rlc2NyaXB0aW9uYCB0byBB
UEkuCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1yZXZpc2lvbi10
YWJsZS5qczogQWRkZWQgVUkgZm9yIHNob3dpbmcgYnVpbGQgcmVxdWVzdCBzdGF0dXMgZGV0YWls
LgorICAgICAgICAoVGVzdEdyb3VwUmV2aXNpb25UYWJsZS5wcm90b3R5cGUuX3JlbmRlclRhYmxl
KToKKyAgICAgICAgKFRlc3RHcm91cFJldmlzaW9uVGFibGUucHJvdG90eXBlLl9idWlsZERlc2Ny
aXB0aW9uQ2VsbCk6CisgICAgICAgIChUZXN0R3JvdXBSZXZpc2lvblRhYmxlLmNzc1RlbXBsYXRl
KToKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy93YXJuaW5nLWljb24uanM6IEV4dGVu
ZGVkIHdhcm5pbmcgaWNvbiB0byBiZSBhYmxlIHRvIGN1c3RvbWl6ZSBpbmZvcm1hdGlvbiBvbiBo
b3Zlci4KKyAgICAgICAgKFdhcm5pbmdJY29uKToKKyAgICAgICAgKFdhcm5pbmdJY29uLnByb3Rv
dHlwZS5yZW5kZXIpOgorICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2J1dHRvbi1iYXNl
LmpzOiBBZGRlZCBhIGluc3RhbmNlIG1ldGhvZCB0byBzZXQgYnV0dG9uIHRpdGxlLgorICAgICAg
ICAoQnV0dG9uQmFzZS5wcm90b3R5cGUuc2V0QnV0dG9uVGl0bGUpOgorICAgICAgICAqIHB1Ymxp
Yy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qczogQWRkZWQgJ3N0YXR1c0Rlc2NyaXB0aW9uJyBm
aWVsZC4KKyAgICAgICAgKEJ1aWxkUmVxdWVzdCk6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJv
dG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBl
LnN0YXR1c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJl
cXVlc3RzLXRlc3RzLmpzOiBGaXhlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0
cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAgICAgICAoTW9ja0RhdGEuc2V0IG1vY2tUZXN0
U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKTogQWRkZWQgJ3N0YXR1c19kZXNjcmlwdGlvbicg
aW4gYnVpbGRib3QgbW9jayBkYXRhLgorICAgICAgICAoTW9ja0RhdGEuc2FtcGxlQnVpbGREYXRh
KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlv
bi10ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJv
dC1zeW5jZXIuanM6IEFkZGVkICdzdGF0dXNEZXNjcmlwdGlvbicgZmllbGQgdG8gJ0J1aWxkYm90
QnVpbGRFbnRyeScuCisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkucHJvdG90eXBlLmluaXRp
YWxpemUpOgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5zdGF0dXNEZXNj
cmlwdGlvbik6CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6Cisg
ICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fcHVsbEJ1aWxkYm90T25BbGxT
eW5jZXJzKToKKyAgICAgICAgKiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczog
QWRkZWQgdGVzdCBjb2RlIGZvciBCdWlsZGJvdEJ1aWxkRW50cnkuc3RhdHVzRGVzY3JpcHRpb24u
CisKIDIwMTktMDctMDMgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAg
ICAgVGVzdCBmcmVzaG5lc3MgcGFnZSBzaG91bGQgZXhwb3NlIHJldmlzaW9uIGluZm9ybWF0aW9u
IGZvciBsYXRlc3QgYnVpbGQgb24gdG9vbHRpcC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9p
bml0LWRhdGFiYXNlLnNxbAppbmRleCBjYjg4NDVjODNiMGE1MzVmMTQ2OGQ0N2U5OWQ2ZTM2ZjA3
NzI1Yzg2Li4zYmJlMzA4N2I3YTY3ZGI0NTUyNjc4OWVlMDg5MWQ1ODg3MDk4NzVmIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCkBAIC0zMTQsNiArMzE0LDcg
QEAgQ1JFQVRFIFRBQkxFIGJ1aWxkX3JlcXVlc3RzICgKICAgICByZXF1ZXN0X2NvbW1pdF9zZXQg
aW50ZWdlciBSRUZFUkVOQ0VTIGNvbW1pdF9zZXRzIE5PVCBOVUxMLAogICAgIHJlcXVlc3Rfc3Rh
dHVzIGJ1aWxkX3JlcXVlc3Rfc3RhdHVzX3R5cGUgTk9UIE5VTEwgREVGQVVMVCAncGVuZGluZycs
CiAgICAgcmVxdWVzdF91cmwgdmFyY2hhcigxMDI0KSwKKyAgICByZXF1ZXN0X3N0YXR1c19kZXNj
cmlwdGlvbiB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTCwKICAgICByZXF1ZXN0X2J1aWxkIGlu
dGVnZXIgUkVGRVJFTkNFUyBidWlsZHMsCiAgICAgcmVxdWVzdF9jcmVhdGVkX2F0IHRpbWVzdGFt
cCBOT1QgTlVMTCBERUZBVUxUIChDVVJSRU5UX1RJTUVTVEFNUCBBVCBUSU1FIFpPTkUgJ1VUQycp
LAogICAgIENPTlNUUkFJTlQgYnVpbGRfcmVxdWVzdF9vcmRlcl9tdXN0X2JlX3VuaXF1ZV9pbl9n
cm91cCBVTklRVUUocmVxdWVzdF9ncm91cCwgcmVxdWVzdF9vcmRlciksCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRkOWFkOTVk
ZDE5MTc1NjJkMTNhMDY1YjEzNzNhOTQ2NTczNDBjMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMCwwICsxIEBACitB
TFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgcmVxdWVz
dF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5VTEw7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwCmluZGV4IDQ5NzM3NmQwZDg3MmJkZjI5YzUy
NjZmNjkyODQ3YzNkMGIyODgxM2UuLmY0YzM2NjI5ZDlkMjI2YWQ4NGU3YjllNTEzMWRhMzI4ZTg4
OGJjMjYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2J1
aWxkLXJlcXVlc3RzLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2Fw
aS9idWlsZC1yZXF1ZXN0cy5waHAKQEAgLTQ2LDYgKzQ2LDcgQEAgZnVuY3Rpb24gdXBkYXRlX2J1
aWxkcygkZGIsICR1cGRhdGVzKSB7CiAgICAgICAgICRpZCA9IGludHZhbCgkaWQpOwogICAgICAg
ICAkc3RhdHVzID0gJGluZm9bJ3N0YXR1cyddOwogICAgICAgICAkdXJsID0gYXJyYXlfZ2V0KCRp
bmZvLCAndXJsJyk7CisgICAgICAgICRzdGF0dXNfZGVzY3JpcHRpb24gPSBhcnJheV9nZXQoJGlu
Zm8sICdzdGF0dXNEZXNjcmlwdGlvbicpOwogICAgICAgICAkcmVxdWVzdF9yb3cgPSAkZGItPnNl
bGVjdF9maXJzdF9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBhcnJheSgnaWQnID0+
ICRpZCkpOwogICAgICAgICBpZiAoJHN0YXR1cyA9PSAnZmFpbGVkSWZOb3RDb21wbGV0ZWQnKSB7
CiAgICAgICAgICAgICBpZiAoISRyZXF1ZXN0X3JvdykgewpAQCAtNjAsMTQgKzYxLDEzIEBAIGZ1
bmN0aW9uIHVwZGF0ZV9idWlsZHMoJGRiLCAkdXBkYXRlcykgewogICAgICAgICAgICAgICAgICAg
ICBXSEVSRSByZXF1ZXN0X2dyb3VwID0gJDEgQU5EIHJlcXVlc3Rfb3JkZXIgPiAkMicsCiAgICAg
ICAgICAgICAgICAgICAgIGFycmF5KCRyZXF1ZXN0X3Jvd1sncmVxdWVzdF9ncm91cCddLCAkcmVx
dWVzdF9yb3dbJ3JlcXVlc3Rfb3JkZXInXSkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
JGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0JywgYXJyYXkoJ2lkJyA9
PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAnZmFpbGVkJywgJ3VybCcgPT4gJHVybCkpOworICAg
ICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0JywgYXJy
YXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAnZmFpbGVkJywgJ3VybCcgPT4gJHVy
bCwgJ3N0YXR1c19kZXNjcmlwdGlvbicgPT4gJHN0YXR1c19kZXNjcmlwdGlvbikpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKCFpbl9hcnJheSgkc3RhdHVzLCBhcnJheSgncGVu
ZGluZycsICdzY2hlZHVsZWQnLCAncnVubmluZycsICdmYWlsZWQnLCAnY29tcGxldGVkJywgJ2Nh
bmNlbGVkJykpKSB7CiAgICAgICAgICAgICAgICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigp
OwogICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkJ1aWxkUmVxdWVzdFN0
YXR1cycsIGFycmF5KCdidWlsZFJlcXVlc3QnID0+ICRpZCwgJ3N0YXR1cycgPT4gJHN0YXR1cykp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1
ZXN0cycsICdyZXF1ZXN0JywgYXJyYXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAk
c3RhdHVzLCAndXJsJyA9PiAkdXJsKSk7Ci0gICAgICAgICAgICAkdGVzdF9ncm91cF9pZCA9ICRy
ZXF1ZXN0X3Jvd1sncmVxdWVzdF9ncm91cCddOworICAgICAgICAgICAgJGRiLT51cGRhdGVfcm93
KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0JywgYXJyYXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgn
c3RhdHVzJyA9PiAkc3RhdHVzLCAndXJsJyA9PiAkdXJsLCAnc3RhdHVzX2Rlc2NyaXB0aW9uJyA9
PiAkc3RhdHVzX2Rlc2NyaXB0aW9uKSk7CiAgICAgICAgICAgICBpZiAoJHN0YXR1cyAhPSAnZmFp
bGVkJykKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZl
dGNoZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxk
LXJlcXVlc3RzLWZldGNoZXIucGhwCmluZGV4IGIzODg3NzliMjdkM2Y5MzA1NDM4OGNmOTVlNjJj
MzE5MDcxOWFlMjguLjI2ODllNDU3ZTU4YTExMTU5MjY4YTNjOTM0NjgxNDA3NDY5MjFmYzQgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1y
ZXF1ZXN0cy1mZXRjaGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAKQEAgLTkyLDYgKzkyLDcgQEAgY2xh
c3MgQnVpbGRSZXF1ZXN0c0ZldGNoZXIgewogICAgICAgICAgICAgICAgICd1cmwnID0+ICRyb3db
J3JlcXVlc3RfdXJsJ10sCiAgICAgICAgICAgICAgICAgJ2J1aWxkJyA9PiAkcm93WydyZXF1ZXN0
X2J1aWxkJ10sCiAgICAgICAgICAgICAgICAgJ2NyZWF0ZWRBdCcgPT4gJHJvd1sncmVxdWVzdF9j
cmVhdGVkX2F0J10gPyBzdHJ0b3RpbWUoJHJvd1sncmVxdWVzdF9jcmVhdGVkX2F0J10pICogMTAw
MCA6IE5VTEwsCisgICAgICAgICAgICAgICAgJ3N0YXR1c0Rlc2NyaXB0aW9uJyA9PiAkcm93Wydy
ZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiddLAogICAgICAgICAgICAgKSk7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuICRyZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9idXR0b24tYmFzZS5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9idXR0b24tYmFzZS5qcwppbmRleCA0
YzBlMzRiYzMxZjdkMDFjZTVkY2QwZDdkODlkMGViMzkwNDNmM2QyLi5lYTJkMTI3ZmI0MDhiODEx
MmM1M2UxMzBlOTU4ZDRlYTc1NDQ0YWZiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvYnV0dG9uLWJhc2UuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2J1dHRvbi1iYXNlLmpzCkBAIC0x
Myw2ICsxMywxMiBAQCBjbGFzcyBCdXR0b25CYXNlIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAg
ICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAgfQogCisgICAgc2V0QnV0dG9uVGl0
bGUodGl0bGUpCisgICAgeworICAgICAgICB0aGlzLmNvbnRlbnQoJ2J1dHRvbicpLnRpdGxlID0g
dGl0bGU7CisgICAgICAgIHRoaXMuZW5xdWVUb1JlbmRlcigpOworICAgIH0KKwogICAgIGRpZENv
bnN0cnVjdFNoYWRvd1RyZWUoKQogICAgIHsKICAgICAgICAgdGhpcy5jb250ZW50KCdidXR0b24n
KS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY3JlYXRlRXZlbnRIYW5kbGVyKCgpID0+
IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9u
ZW50cy90ZXN0LWdyb3VwLXJldmlzaW9uLXRhYmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmV2aXNpb24tdGFibGUuanMKaW5k
ZXggMDNlZjE2MDU3MWFhODE4OGQ1YTliOWI3ZTBjNGIwM2ZiM2Y1Njc4Ny4uMDA3MWU5MjBkNGQ2
YjAyYzdlZWNmOGVjZjU3ZTZkNWYxNjViYzM5ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmV2aXNpb24tdGFibGUu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rl
c3QtZ3JvdXAtcmV2aXNpb24tdGFibGUuanMKQEAgLTg5LDcgKzg5LDYgQEAgY2xhc3MgVGVzdEdy
b3VwUmV2aXNpb25UYWJsZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICBjb25zdCBh
ZGRpdGlvbmFsUmVwb3NpdG9yeUxpc3QgPSBSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoWy4uLmFkZGl0aW9uYWxSZXBvc2l0b3J5U2V0XSk7CiAKICAgICAgICAgY29u
c3QgZWxlbWVudCA9IENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKLSAgICAgICAgY29uc3Qg
bGluayA9IENvbXBvbmVudEJhc2UuY3JlYXRlTGluazsKICAgICAgICAgdGhpcy5yZW5kZXJSZXBs
YWNlKHRoaXMuY29udGVudCgncmV2aXNpb24tdGFibGUnKSwgWwogICAgICAgICAgICAgZWxlbWVu
dCgndGhlYWQnLCBbCiAgICAgICAgICAgICAgICAgZWxlbWVudCgndGgnLCAnQ29uZmlndXJhdGlv
bicpLApAQCAtMTA2LDEyICsxMDUsMzAgQEAgY2xhc3MgVGVzdEdyb3VwUmV2aXNpb25UYWJsZSBl
eHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRSZXBv
c2l0b3J5TGlzdC5tYXAoKHJlcG9zaXRvcnkpID0+IHRoaXMuX2J1aWxkQ29tbWl0Q2VsbChlbnRy
eSwgcmVwb3NpdG9yeSwgcGF0Y2hlZFBlcG9zaXRvcnlTZXQuaGFzKHJlcG9zaXRvcnkpKSksCiAg
ICAgICAgICAgICAgICAgICAgIGhhc0N1c3RvbVJvb3RzID8gdGhpcy5fYnVpbGRDdXN0b21Sb290
c0NlbGwoZW50cnkpIDogW10sCiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3RkJywgZW50
cnkubGFiZWwpLAotICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCd0ZCcsIHJlcXVlc3Quc3Rh
dHVzVXJsKCkgPyBsaW5rKHJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgcmVxdWVzdC5zdGF0dXNVcmwo
KSkgOiByZXF1ZXN0LnN0YXR1c0xhYmVsKCkpLAorICAgICAgICAgICAgICAgICAgICB0aGlzLl9i
dWlsZERlc2NyaXB0aW9uQ2VsbChyZXF1ZXN0KSwKICAgICAgICAgICAgICAgICAgICAgYWRkaXRp
b25hbFJlcG9zaXRvcnlMaXN0Lm1hcCgocmVwb3NpdG9yeSkgPT4gdGhpcy5fYnVpbGRDb21taXRD
ZWxsKGVudHJ5LCByZXBvc2l0b3J5KSksCiAgICAgICAgICAgICAgICAgXSk7CiAgICAgICAgICAg
ICB9KSldKTsKICAgICB9CiAKKyAgICBfYnVpbGREZXNjcmlwdGlvbkNlbGwocmVxdWVzdCkKKyAg
ICB7CisgICAgICAgIGNvbnN0IGxpbmsgPSBDb21wb25lbnRCYXNlLmNyZWF0ZUxpbms7CisgICAg
ICAgIGNvbnN0IGVsZW1lbnQgPSBDb21wb25lbnRCYXNlLmNyZWF0ZUVsZW1lbnQ7CisgICAgICAg
IGNvbnN0IHNob3dXYXJuaW5nSWNvbiA9IHJlcXVlc3QuaGFzRmluaXNoZWQoKSAmJiByZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCk7CisgICAgICAgIGNvbnN0IGNlbGxDb250ZW50ID0gW107Cisg
ICAgICAgIGlmIChzaG93V2FybmluZ0ljb24pCisgICAgICAgICAgICBjZWxsQ29udGVudC5wdXNo
KGVsZW1lbnQoJ2RpdicsIHtjbGFzczogJ3dhcm5pbmctaWNvbi1jb250YWluZXInfSwgbmV3IFdh
cm5pbmdJY29uKGBMYXN0IHN5bmNlZCBzdGF0dXMgZGVzY3JpcHRpb246ICR7cmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpfWApKSk7CisKKyAgICAgICAgY2VsbENvbnRlbnQucHVzaChyZXF1ZXN0
LnN0YXR1c1VybCgpID8gbGluayhyZXF1ZXN0LnN0YXR1c0xhYmVsKCksIHJlcXVlc3Quc3RhdHVz
RGVzY3JpcHRpb24oKSwgcmVxdWVzdC5zdGF0dXNVcmwoKSkgOiByZXF1ZXN0LnN0YXR1c0xhYmVs
KCkpOworCisgICAgICAgIGNvbnN0IGhhc0luUHJvZ3Jlc3NSZXBvcnQgPSAhcmVxdWVzdC5oYXNG
aW5pc2hlZCgpICYmIHJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKTsKKyAgICAgICAgaWYgKGhh
c0luUHJvZ3Jlc3NSZXBvcnQpCisgICAgICAgICAgICBjZWxsQ29udGVudC5wdXNoKGVsZW1lbnQo
J3NwYW4nLCBgJHtyZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCl9YCkpOworCisgICAgICAgIHJl
dHVybiBlbGVtZW50KCd0ZCcsIHtjbGFzczogJ2Rlc2NyaXB0aW9uLWNlbGwnfSwgIGNlbGxDb250
ZW50KTsKKyAgICB9CisKICAgICBfYnVpbGRDb21taXRDZWxsKGVudHJ5LCByZXBvc2l0b3J5LCBz
aG93Um9vdCA9IGZhbHNlKQogICAgIHsKICAgICAgICAgY29uc3QgZWxlbWVudCA9IENvbXBvbmVu
dEJhc2UuY3JlYXRlRWxlbWVudDsKQEAgLTIyMiw2ICsyMzksMjQgQEAgY2xhc3MgVGVzdEdyb3Vw
UmV2aXNpb25UYWJsZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICAgICAgdGggewog
ICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OwogICAgICAgICAgICAgfQorICAg
ICAgICAgICAgLmRlc2NyaXB0aW9uLWNlbGwgc3BhbiB7CisgICAgICAgICAgICAgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTByZW07CisgICAg
ICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICAgICAgICAgICAgICB0ZXh0LW92
ZXJmbG93OiBlbGxpcHNpczsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgLmRlc2NyaXB0aW9uLWNlbGwgc3Bhbjo6YmVmb3JlIHsK
KyAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICB0ZC5kZXNjcmlwdGlvbi1jZWxsIHsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkaXYud2FybmluZy1pY29uLWNvbnRhaW5l
ciB7CisgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgICAg
IHRvcDogLTAuMnJlbTsKKyAgICAgICAgICAgICAgICBsZWZ0OjA7CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAucm9vdHMgewogICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjByZW07CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2NvbXBvbmVudHMvd2FybmluZy1pY29uLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9jb21wb25lbnRzL3dhcm5pbmctaWNvbi5qcwppbmRleCA3YjNlZmRhNTNkMTJh
MTdiNmFiYjNiYjhmZmVhMTg0MGMzYzNhZTEzLi41MTA0NDVlOTAwZWRhZmNiMGZlNWUyNzM3MzE5
ODRkNDhhNzMwODQxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2NvbXBvbmVudHMvd2FybmluZy1pY29uLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy93YXJuaW5nLWljb24uanMKQEAgLTEsOCArMSwxNiBA
QAogCiBjbGFzcyBXYXJuaW5nSWNvbiBleHRlbmRzIEJ1dHRvbkJhc2UgewotICAgIGNvbnN0cnVj
dG9yKCkKKyAgICBjb25zdHJ1Y3Rvcih3YXJuaW5nTWVzc2FnZSkKICAgICB7CiAgICAgICAgIHN1
cGVyKCd3YXJuaW5nLWljb24nKTsKKyAgICAgICAgdGhpcy5fd2FybmluZ01lc3NhZ2UgPSB3YXJu
aW5nTWVzc2FnZTsKKyAgICB9CisKKyAgICByZW5kZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIu
cmVuZGVyKCk7CisgICAgICAgIGlmICh0aGlzLl93YXJuaW5nTWVzc2FnZSkKKyAgICAgICAgICAg
IHRoaXMuc2V0QnV0dG9uVGl0bGUodGhpcy5fd2FybmluZ01lc3NhZ2UpOwogICAgIH0KIAogICAg
IHN0YXRpYyBzaXplRmFjdG9yKCkgeyByZXR1cm4gMC43OyB9CmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcwpp
bmRleCAwNzA1NGFlODM2YWUwYTBiNjY0MmZlMGI4OTkwMzg4ODYzZGY1OTlkLi4yZGIwZDViYjQz
NzhjZTM1ZTNjNDlhZGYzYWU1MDM4MDEzMWQzMmZkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKQEAg
LTI2LDYgKzI2LDcgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0
IHsKICAgICAgICAgdGhpcy5fYnVpbGRJZCA9IG9iamVjdC5idWlsZDsKICAgICAgICAgdGhpcy5f
Y3JlYXRlZEF0ID0gbmV3IERhdGUob2JqZWN0LmNyZWF0ZWRBdCk7CiAgICAgICAgIHRoaXMuX3Jl
c3VsdCA9IG51bGw7CisgICAgICAgIHRoaXMuX3N0YXR1c0Rlc2NyaXB0aW9uID0gb2JqZWN0LnN0
YXR1c0Rlc2NyaXB0aW9uOwogICAgIH0KIAogICAgIHVwZGF0ZVNpbmdsZXRvbihvYmplY3QpCkBA
IC00MiwxMiArNDMsMTQgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVsT2Jq
ZWN0IHsKICAgICAgICAgdGhpcy5fc3RhdHVzID0gb2JqZWN0LnN0YXR1czsKICAgICAgICAgdGhp
cy5fc3RhdHVzVXJsID0gb2JqZWN0LnVybDsKICAgICAgICAgdGhpcy5fYnVpbGRJZCA9IG9iamVj
dC5idWlsZDsKKyAgICAgICAgdGhpcy5fc3RhdHVzRGVzY3JpcHRpb24gPSBvYmplY3Quc3RhdHVz
RGVzY3JpcHRpb247CiAgICAgfQogCiAgICAgdHJpZ2dlcmFibGUoKSB7IHJldHVybiB0aGlzLl90
cmlnZ2VyYWJsZTsgfQogICAgIGFuYWx5c2lzVGFza0lkKCkgeyByZXR1cm4gdGhpcy5fYW5hbHlz
aXNUYXNrSWQ7IH0KICAgICB0ZXN0R3JvdXBJZCgpIHsgcmV0dXJuIHRoaXMuX3Rlc3RHcm91cElk
OyB9CiAgICAgdGVzdEdyb3VwKCkgeyByZXR1cm4gdGhpcy5fdGVzdEdyb3VwOyB9CisgICAgc3Rh
dHVzRGVzY3JpcHRpb24oKSB7IHJldHVybiB0aGlzLl9zdGF0dXNEZXNjcmlwdGlvbjsgfQogICAg
IHJlcG9zaXRvcnlHcm91cCgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlHcm91cDsgfQogICAg
IHBsYXRmb3JtKCkgeyByZXR1cm4gdGhpcy5fcGxhdGZvcm07IH0KICAgICB0ZXN0KCkgeyByZXR1
cm4gdGhpcy5fdGVzdDsgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRleCA4
MGNlYWY3Zjc1YzAzMDIwMmI3NDhkZTc0ODk2YzA5Yzk3MzNjOGEzLi4wN2RmNThkNDhlMTkxNmI1
YzRhY2I5NzE0ZTJlOTc5MWM4MzJlNzNlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0
cy5qcwpAQCAtNTcsMTAgKzU3LDEwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdWydj
cmVhdGVkQXQnXSA9IDA7CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl1b
J2NyZWF0ZWRBdCddID0gMDsKICAgICAgICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsz
XVsnY3JlYXRlZEF0J10gPSAwOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0sIHtpZDogJzcwNCcsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFi
bGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9y
bTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcwJywgY29tbWl0U2V0OiAnNDAzJywg
c3RhdHVzOiAncGVuZGluZycsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MV0sIHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3Np
dG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3Vw
OiAnOTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAncGVuZGluZycs
IHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0sIHtpZDogJzcwNicsIHRh
c2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScs
IHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcy
JywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHVybDogbnVsbCwgYnVpbGQ6
IG51bGwsIGNyZWF0ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJpZ2dl
cmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0
Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAnNDA0
Jywgc3RhdHVzOiAncGVuZGluZycsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDog
MH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0sIHtpZDogJzcwNCcsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVw
b3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdy
b3VwOiAnOTAwJywgb3JkZXI6ICcwJywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGlu
ZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVh
dGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzFdLCB7aWQ6ICc3MDUnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAw
MCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScs
IHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czog
J3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVs
bCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJs
ZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3Jt
OiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBz
dGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVp
bGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJp
Z2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBw
bGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAn
NDA0Jywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51
bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKICAgICAgICB9KTsKICAgICB9KTsKIApk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvbW9jay1kYXRhLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9y
ZXNvdXJjZXMvbW9jay1kYXRhLmpzCmluZGV4IDYwOTE0NTk2ZGE1Njk0NzJjNGRiZmJhZWUyYmIx
M2YwZmU4YjhhNTUuLmEyOTljMzU1NmMxM2VjZmYzN2VlYjUwNzE5NTU2YzI5ZjkwYmQ0OTUgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2Vz
L21vY2stZGF0YS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Jlc291cmNlcy9tb2NrLWRhdGEuanMKQEAgLTMxMCw3ICszMTAsOCBAQCBNb2NrRGF0YSA9IHsK
ICAgICAgICAgICAgICAgICAid2siOiBbb3B0aW9ucy53ZWJraXRSZXZpc2lvbiB8fCAnMTkxNjIy
JywgIlVua25vd24iXSwKICAgICAgICAgICAgICAgICAib3MiOiBbb3B0aW9ucy5vc3hSZXZpc2lv
biB8fCAnMTAuMTEgMTVBMjg0JywgIlVua25vd24iXSwKICAgICAgICAgICAgICAgICAic2xhdmVu
YW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldvcmtlciAoZGVwcmVjYXRl
ZCkiXSwKLSAgICAgICAgICAgICAgICAid29ya2VybmFtZSI6IFtvcHRpb25zLndvcmtlck5hbWUg
fHwgImJvdDIwMiIsICJXb3JrZXIiXQorICAgICAgICAgICAgICAgICJ3b3JrZXJuYW1lIjogW29w
dGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldvcmtlciJdLAorICAgICAgICAgICAgICAg
ICJzdGF0dXNkZXNjcmlwdGlvbiI6IFtvcHRpb25zLnN0YXR1c0Rlc2NyaXB0aW9uIHx8IG51bGws
ICJVbmtub3duIl0KICAgICAgICAgICAgIH0KICAgICAgICAgfTsKICAgICB9LApAQCAtMzQ1LDcg
KzM0Niw4IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogWycn
LCAiVW5rbm93biJdLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6IFsnJywgIlVua25vd24i
XSwKICAgICAgICAgICAgICAgICAic2xhdmVuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAi
Ym90MjAyIiwgIldvcmtlciAoZGVwcmVjYXRlZCkiXSwKLSAgICAgICAgICAgICAgICAid29ya2Vy
bmFtZSI6IFtvcHRpb25zLndvcmtlck5hbWUgfHwgImJvdDIwMiIsICJXb3JrZXIiXQorICAgICAg
ICAgICAgICAgICJ3b3JrZXJuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwg
IldvcmtlciJdLAorICAgICAgICAgICAgICAgICJzdGF0dXNkZXNjcmlwdGlvbiI6IFtvcHRpb25z
LnN0YXR1c0Rlc2NyaXB0aW9uIHx8IG51bGwsICJVbmtub3duIl0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfTsgICAKICAgICB9LApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90
LWludGVncmF0aW9uLXRlc3RzLmpzCmluZGV4IGU2MTI1ODI2NmNkOGUwYzU0ZDRjMDM2ZTU0ZDli
N2QxMGY4NmUxNWUuLjY4OGQ3NjlhZGM5ZThkZmJkNGNhMmIzZGJmYmRiMjBkMGNjODkyODUgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3lu
Yy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMu
anMKQEAgLTE3OCw3ICsxNzgsNyBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXAodGFza19uYW1l
PSdjdXN0b20gdGFzaycpIHsKICAgICB9KTsKIH0KIAotYXN5bmMgZnVuY3Rpb24gY3JlYXRlVGVz
dEdyb3VwV2loUGF0Y2goKQorYXN5bmMgZnVuY3Rpb24gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNo
KCkKIHsKICAgICBjb25zdCBwYXRjaEZpbGUgPSBhd2FpdCBUZW1wb3JhcnlGaWxlLm1ha2VUZW1w
b3JhcnlGaWxlKCdwYXRjaC5kYXQnLCAncGF0Y2ggZmlsZScpOwogICAgIGNvbnN0IG9yaWdpbmFs
UHJpdmlsZWdlZEFQSSA9IGdsb2JhbC5Qcml2aWxlZ2VkQVBJOwpAQCAtMzMwLDYgKzMzMCwzNTYg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCBrZWVwIHVwZGF0aW5nIGJ1aWxkIHN0YXR1cycsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzOworICAgICAgICBsZXQgdGFza0lkID0gbnVsbDsKKyAgICAgICAgbGV0IHN5bmNQcm9taXNl
OworICAgICAgICBsZXQgdHJpZ2dlcmFibGUgPSBhd2FpdCBjcmVhdGVUcmlnZ2VyYWJsZSgpOwor
ICAgICAgICBsZXQgdGVzdEdyb3VwID0gYXdhaXQgY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoKCk7
CisKKyAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOworICAgICAgICBsZXQg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisKKyAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgbGV0IGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICBsZXQgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
CisgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CisKKyAgICAgICAgbGV0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBsZXQgb3RoZXJDb21taXRTZXQgPSBv
dGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnMoKSk7CisgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7
CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Nl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdP
SycpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAn
MScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAg
ICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9h
cGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQt
d2snOiB0cnVlLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLWFiLWJ1aWxkcyd9fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAorICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMX0pKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVy
JyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwor
CisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksCisgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1
aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxk
UmVxdWVzdElkOiAxLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0J1aWxkaW5nIFdlYktpdCd9KSk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3
YWl0IHN5bmNQcm9taXNlOworCisgICAgICAgIGxldCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07
CisgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
KyAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgJ0J1aWxkaW5nIFdlYktpdCcpOworICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgY29tbWl0U2V0
ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIHdl
YmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OworCisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCks
IG51bGwpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CisKKyAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCisg
ICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51
bWJlcjogMTI0LCBzdGF0dXNEZXNjcmlwdGlvbjogJ0NvbXBpbGluZyBXVEYnfSkpOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7
fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgeworICAgICAgICAg
ICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRh
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMSwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcgV1RGJ30pXQor
ICAgICAgICB9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9
KTsKKyAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CisKKyAgICAgICAgYXdhaXQgVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Cisg
ICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAg
ICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJraXRQ
YXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNz
ZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKwor
ICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CisgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBh
c3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOworCisgICAgICAgIGF3YWl0IHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMyk7
CisKKyAgICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKwor
ICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOworICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24o
KSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBh
dGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgbGV0IHdlYmtpdFJvb3Qg
PSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdl
YmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CisKKyAgICAg
ICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
CisgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KworICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnMoKSk7CisgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgYXdhaXQg
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7
fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAg
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9y
TmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogMTI0
fSkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNl
LWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZd
LmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAn
cGFyYW1zJzoKKyAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0
LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94
JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZX19KTsKKyAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
N10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7
CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEzKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7
CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKKyAgICAgICAgICAg
ICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7
YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
RGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIn
KSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAxMjR9KV0KKyAgICAgICAgfSk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3
YWl0IHN5bmNQcm9taXNlOworCisgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwor
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKworICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5m
aWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5z
dGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CisKKyAgICAgICAgb3RoZXJCdWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBhd2FpdCB1cGxvYWRSb290KG90aGVyQnVp
bGRSZXF1ZXN0LmlkKCksIDEyNCk7CisKKyAgICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBd
OworICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJl
cG9zaXRvcnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CisgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5ub3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgd2Via2l0UGF0
Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIHdlYmtp
dFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNz
ZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CisK
KyAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFd
OworICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAg
YXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290
ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNz
ZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7Cisg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtv
dGhlcldlYmtpdFJvb3RdKTsKKyAgICB9KTsKKwogICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBi
dWlsZCB0byBidWlsZCBhIHBhdGNoJywgKCkgPT4gewogICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CiAgICAgICAgIGxldCB0cmlnZ2VyYWJsZTsKQEAgLTMz
Nyw3ICs2ODcsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgbGV0IHN5bmNQcm9taXNlOwogICAgICAgICByZXR1cm4gY3JlYXRlVHJpZ2dlcmFibGUo
KS50aGVuKChuZXdUcmlnZ2VyYWJsZSkgPT4gewogICAgICAgICAgICAgdHJpZ2dlcmFibGUgPSBu
ZXdUcmlnZ2VyYWJsZTsKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRj
aCgpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RH
cm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwpAQCAtNjEwLDcgKzk2MCw3
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBsZXQg
c3luY1Byb21pc2U7CiAgICAgICAgIHJldHVybiBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWdXaXRo
UGxhdGZvcm1OYW1lKS50aGVuKChuZXdUcmlnZ2VyYWJsZSkgPT4gewogICAgICAgICAgICAgdHJp
Z2dlcmFibGUgPSBuZXdUcmlnZ2VyYWJsZTsKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0
R3JvdXBXaWhQYXRjaCgpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQ
YXRjaCgpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRh
c2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwpAQCAt
ODg0LDcgKzEyMzQsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgbGV0IGZpcnN0Um9vdCA9IG51bGw7CiAgICAgICAgIHJldHVybiBjcmVhdGVUcmln
Z2VyYWJsZSgpLnRoZW4oKG5ld1RyaWdnZXJhYmxlKSA9PiB7CiAgICAgICAgICAgICB0cmlnZ2Vy
YWJsZSA9IG5ld1RyaWdnZXJhYmxlOwotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91
cFdpaFBhdGNoKCk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNo
KCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lk
ID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CkBAIC05ODcs
NyArMTMzNyw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBsZXQgc3luY1Byb21pc2U7CiAgICAgICAgIHJldHVybiBjcmVhdGVUcmlnZ2VyYWJsZSgp
LnRoZW4oKG5ld1RyaWdnZXJhYmxlKSA9PiB7CiAgICAgICAgICAgICB0cmlnZ2VyYWJsZSA9IG5l
d1RyaWdnZXJhYmxlOwotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpaFBhdGNo
KCk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoKCk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdy
b3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKQEAgLTEwNzYsNyArMTQyNiw3IEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBsZXQgc3luY1Byb21pc2U7CiAg
ICAgICAgIHJldHVybiBjcmVhdGVUcmlnZ2VyYWJsZSgpLnRoZW4oKG5ld1RyaWdnZXJhYmxlKSA9
PiB7CiAgICAgICAgICAgICB0cmlnZ2VyYWJsZSA9IG5ld1RyaWdnZXJhYmxlOwotICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpaFBhdGNoKCk7CisgICAgICAgICAgICByZXR1cm4g
Y3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkg
PT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1z
eW5jZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3lu
Y2VyLmpzCmluZGV4IGI5MTI3MjhmYWM3MzVlMjJlMThjMDcxOGQwYzNjZDM0YjJlYTFlMzkuLjMz
YTMzNTFhZWIwYTQ0MWYyMmM1YjM5MTRlMTJlNDg1MjZkYTExOGUgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwpAQCAtMTUs
NyArMTUsNyBAQCBjbGFzcyBCdWlsZGJvdEJ1aWxkRW50cnkgewogICAgICAgICBhc3NlcnQuZXF1
YWwoc3luY2VyLmJ1aWxkZXJJRCgpLCByYXdEYXRhWydidWlsZGVyaWQnXSk7CiAKICAgICAgICAg
dGhpcy5fc3luY2VyID0gc3luY2VyOwotICAgICAgICB0aGlzLl9idWlsZGJvdEJ1aWxkUmVxdWVz
dElkID0gcmF3RGF0YVsnYnVpbGRyZXF1ZXN0aWQnXQorICAgICAgICB0aGlzLl9idWlsZGJvdEJ1
aWxkUmVxdWVzdElkID0gcmF3RGF0YVsnYnVpbGRyZXF1ZXN0aWQnXTsKICAgICAgICAgdGhpcy5f
aGFzRmluaXNoZWQgPSByYXdEYXRhWydjb21wbGV0ZSddOwogICAgICAgICB0aGlzLl9pc1BlbmRp
bmcgPSAnY2xhaW1lZCcgaW4gcmF3RGF0YSAmJiAhcmF3RGF0YVsnY2xhaW1lZCddOwogICAgICAg
ICB0aGlzLl9pc0luUHJvZ3Jlc3MgPSAhdGhpcy5faXNQZW5kaW5nICYmICF0aGlzLl9oYXNGaW5p
c2hlZDsKQEAgLTIzLDYgKzIzLDcgQEAgY2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5IHsKICAgICAg
ICAgdGhpcy5fd29ya2VyTmFtZSA9IHJhd0RhdGFbJ3Byb3BlcnRpZXMnXSAmJiByYXdEYXRhWydw
cm9wZXJ0aWVzJ11bJ3dvcmtlcm5hbWUnXSA/IHJhd0RhdGFbJ3Byb3BlcnRpZXMnXVsnd29ya2Vy
bmFtZSddWzBdIDogbnVsbDsKICAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0SWQgPSByYXdEYXRh
Wydwcm9wZXJ0aWVzJ10gJiYgcmF3RGF0YVsncHJvcGVydGllcyddW3N5bmNlci5fYnVpbGRSZXF1
ZXN0UHJvcGVydHlOYW1lXQogICAgICAgICAgICAgPyByYXdEYXRhWydwcm9wZXJ0aWVzJ11bc3lu
Y2VyLl9idWlsZFJlcXVlc3RQcm9wZXJ0eU5hbWVdWzBdIDogbnVsbDsKKyAgICAgICAgdGhpcy5f
c3RhdHVzRGVzY3JpcHRpb24gPSByYXdEYXRhWydwcm9wZXJ0aWVzJ10gJiYgcmF3RGF0YVsncHJv
cGVydGllcyddWydzdGF0dXNkZXNjcmlwdGlvbiddID8gcmF3RGF0YVsncHJvcGVydGllcyddWydz
dGF0dXNkZXNjcmlwdGlvbiddWzBdIDogbnVsbDsKICAgICB9CiAKICAgICBzeW5jZXIoKSB7IHJl
dHVybiB0aGlzLl9zeW5jZXI7IH0KQEAgLTMzLDYgKzM0LDcgQEAgY2xhc3MgQnVpbGRib3RCdWls
ZEVudHJ5IHsKICAgICBpc1BlbmRpbmcoKSB7IHJldHVybiB0aGlzLl9pc1BlbmRpbmc7IH0KICAg
ICBpc0luUHJvZ3Jlc3MoKSB7IHJldHVybiB0aGlzLl9pc0luUHJvZ3Jlc3M7IH0KICAgICBoYXNG
aW5pc2hlZCgpIHsgcmV0dXJuIHRoaXMuX2hhc0ZpbmlzaGVkOyB9CisgICAgc3RhdHVzRGVzY3Jp
cHRpb24oKSB7IHJldHVybiB0aGlzLl9zdGF0dXNEZXNjcmlwdGlvbjsgfQogICAgIHVybCgpIHsg
cmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgPyB0aGlzLl9zeW5jZXIudXJsRm9yUGVuZGluZ0J1aWxk
KHRoaXMuX2J1aWxkYm90QnVpbGRSZXF1ZXN0SWQpIDogdGhpcy5fc3luY2VyLnVybEZvckJ1aWxk
TnVtYmVyKHRoaXMuX2J1aWxkTnVtYmVyKTsgfQogCiAgICAgYnVpbGRSZXF1ZXN0U3RhdHVzSWZV
cGRhdGVJc05lZWRlZChyZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCmluZGV4IGRjZGRkZjQxYTZj
ZWI4NTc4MWM5MDVkNjFmZTJjNzljYTAwOTU3MDQuLmFiNjBmYmVjNzA0MzA4MjE2ZTdmODE4MmU5
NWVkY2FkZjE5YTFlNmIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29s
cy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKQEAgLTE4NCwxMCArMTg0LDEzIEBA
IGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBu
ZXdTdGF0dXMgPSBlbnRyeS5idWlsZFJlcXVlc3RTdGF0dXNJZlVwZGF0ZUlzTmVlZGVkKHJlcXVl
c3QpOwogICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3RhdHVzKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9nKGBVcGRhdGluZyB0aGUgc3RhdHVzIG9mIGJ1aWxk
IHJlcXVlc3QgJHtyZXF1ZXN0LmlkKCl9IGZyb20gJHtyZXF1ZXN0LnN0YXR1cygpfSB0byAke25l
d1N0YXR1c31gKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXNbZW50cnkuYnVpbGRS
ZXF1ZXN0SWQoKV0gPSB7c3RhdHVzOiBuZXdTdGF0dXMsIHVybDogZW50cnkudXJsKCl9OworICAg
ICAgICAgICAgICAgICAgICAgICAgdXBkYXRlc1tlbnRyeS5idWlsZFJlcXVlc3RJZCgpXSA9IHtz
dGF0dXM6IG5ld1N0YXR1cywgdXJsOiBlbnRyeS51cmwoKSwgc3RhdHVzRGVzY3JpcHRpb246IGVu
dHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCl9OwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KCFyZXF1ZXN0LnN0YXR1c1VybCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9s
b2dnZXIubG9nKGBTZXR0aW5nIHRoZSBzdGF0dXMgVVJMIG9mIGJ1aWxkIHJlcXVlc3QgJHtyZXF1
ZXN0LmlkKCl9IHRvICR7ZW50cnkudXJsKCl9YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1
cGRhdGVzW2VudHJ5LmJ1aWxkUmVxdWVzdElkKCldID0ge3N0YXR1czogcmVxdWVzdC5zdGF0dXMo
KSwgdXJsOiBlbnRyeS51cmwoKX07CisgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzW2Vu
dHJ5LmJ1aWxkUmVxdWVzdElkKCldID0ge3N0YXR1czogcmVxdWVzdC5zdGF0dXMoKSwgdXJsOiBl
bnRyeS51cmwoKSwgc3RhdHVzRGVzY3JpcHRpb246IGVudHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCl9
OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSAhPSBlbnRyeS5zdGF0dXNEZXNjcmlwdGlvbigpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9sb2dnZXIubG9nKGBTZXR0aW5nIHRoZSBzdGF0dXMgZGV0YWlsIG9mIGJ1aWxk
IHJlcXVlc3QgJHtyZXF1ZXN0LmlkKCl9IGZyb20gJHtyZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9u
KCl9IHRvICR7ZW50cnkuc3RhdHVzRGVzY3JpcHRpb24oKX1gKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHVwZGF0ZXNbZW50cnkuYnVpbGRSZXF1ZXN0SWQoKV0gPSB7c3RhdHVzOiByZXF1ZXN0
LnN0YXR1cygpLCB1cmw6IGVudHJ5LnVybCgpLCBzdGF0dXNEZXNjcmlwdGlvbjogZW50cnkuc3Rh
dHVzRGVzY3JpcHRpb24oKX07CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwppbmRleCA5NjQxZTQw
MjMwM2JlYWRlZTUyMDYzZDAwZjM1NTlmZGIxNzNjNDZjLi5lMGNhMTdmNWJkMzQ3ODZhYjUxZGQ2
NDU0Y2M2NTkyODA5ZGU1Y2U1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCkBAIC0yODMsNyAr
MjgzLDcgQEAgZnVuY3Rpb24gc2FtcGxlUGVuZGluZ0J1aWxkUmVxdWVzdHMoYnVpbGRSZXF1ZXN0
SWQsIGJ1aWxkVGltZSwgd29ya2VyTmFtZSwgYnVpbGQKICAgICB9OwogfQogCi1mdW5jdGlvbiBz
YW1wbGVCdWlsZERhdGEod29ya2VyTmFtZSwgaXNDb21wbGV0ZSwgYnVpbGRSZXF1ZXN0SWQsIGJ1
aWxkTnVtYmVyLCBidWlsZGVySWQpCitmdW5jdGlvbiBzYW1wbGVCdWlsZERhdGEod29ya2VyTmFt
ZSwgaXNDb21wbGV0ZSwgYnVpbGRSZXF1ZXN0SWQsIGJ1aWxkTnVtYmVyLCBidWlsZGVySWQsIHN0
YXR1c0Rlc2NyaXB0aW9uKQogewogICAgIHJldHVybiB7CiAgICAgICAgICJidWlsZGVyaWQiOiBi
dWlsZGVySWQgfHwgMTAyLApAQCAtMzAyLDE0ICszMDIsMTUgQEAgZnVuY3Rpb24gc2FtcGxlQnVp
bGREYXRhKHdvcmtlck5hbWUsIGlzQ29tcGxldGUsIGJ1aWxkUmVxdWVzdElkLCBidWlsZE51bWJl
ciwgYnUKICAgICAgICAgICAgICJwbGF0Zm9ybSI6IFsibWFjIiwgIlVua25vd24iXSwKICAgICAg
ICAgICAgICJzY2hlZHVsZXIiOiBbIkFCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3Jj
ZVNjaGVkdWxlciIsICJTY2hlZHVsZXIiXSwKICAgICAgICAgICAgICJzbGF2ZW5hbWUiOiBbd29y
a2VyTmFtZSB8fCAiQUJUZXN0LWlQYWQtMCIsICJXb3JrZXIgKGRlcHJlY2F0ZWQpIl0sCi0gICAg
ICAgICAgICAid29ya2VybmFtZSI6IFt3b3JrZXJOYW1lIHx8ICJBQlRlc3QtaVBhZC0wIiwgIldv
cmtlciJdCisgICAgICAgICAgICAid29ya2VybmFtZSI6IFt3b3JrZXJOYW1lIHx8ICJBQlRlc3Qt
aVBhZC0wIiwgIldvcmtlciJdLAorICAgICAgICAgICAgInN0YXR1c2Rlc2NyaXB0aW9uIjogW3N0
YXR1c0Rlc2NyaXB0aW9uIHx8IG51bGwsICJVbmtub3duIl0sCiAgICAgICAgIH0KICAgICB9Owog
fQogCiBmdW5jdGlvbiBzYW1wbGVJblByb2dyZXNzQnVpbGREYXRhKHdvcmtlck5hbWUpCiB7Ci0g
ICAgcmV0dXJuIHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCBmYWxzZSk7CisgICAgcmV0dXJu
IHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCBmYWxzZSwgbnVsbCwgbnVsbCwgbnVsbCwgJ2J1
aWxkaW5nJyk7CiB9CiAKIGZ1bmN0aW9uIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCh3b3JrZXJOYW1l
KQpAQCAtMTExNyw2ICsxMTE4LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVl
c3RzLzE3Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1
aWxkYm90QnVpbGRFbnRyeSBmb3IgaW4tcHJvZ3Jlc3MgYnVpbGQnLCAoKSA9PiB7CkBAIC0xMTM0
LDYgKzExMzYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQub2soZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82
MTQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zdGF0dXNEZXNjcmlwdGlvbigp
LCAnYnVpbGRpbmcnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUg
QnVpbGRib3RCdWlsZEVudHJ5IGZvciBmaW5pc2hlZCBidWlsZCcsICgpID0+IHsKQEAgLTExNTEs
NiArMTE1NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5
LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzE3
NTUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zdGF0dXNEZXNjcmlwdGlvbigp
LCBudWxsKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRi
b3RCdWlsZEVudHJ5IGZvciBtaXggb2YgaW4tcHJvZ3Jlc3MgYW5kIGZpbmlzaGVkIGJ1aWxkcycs
ICgpID0+IHsKQEAgLTExNjksNiArMTE3Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8xMDIvYnVpbGRzLzYxNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnN0
YXR1c0Rlc2NyaXB0aW9uKCksICdidWlsZGluZycpOwogCiAgICAgICAgICAgICBlbnRyeSA9IGVu
dHJpZXNbMV07CiAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJv
dEJ1aWxkRW50cnkpOwpAQCAtMTE3OSw2ICsxMTg0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3lu
Y2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3Mo
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaGFzRmluaXNoZWQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkZXJzLzEwMi9idWlsZHMvMTc1NScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVu
dHJ5LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIAo=
</data>
<flag name="review"
          id="390277"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>