<?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>184340</bug_id>
          
          <creation_ts>2018-04-05 14:18:03 -0700</creation_ts>
          <short_desc>Perf dashboard should send a notification when a test group finishes</short_desc>
          <delta_ts>2018-08-15 19:16:52 -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>
          <dependson>186299</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1412169</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-04-05 14:18:03 -0700</bug_when>
    <thetext>Add a field to analysis_test_group table to indicate whether the its results has been sent to author.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412177</commentid>
    <comment_count>1</comment_count>
      <attachid>337299</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-04-05 14:29:54 -0700</bug_when>
    <thetext>Created attachment 337299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414337</commentid>
    <comment_count>2</comment_count>
      <attachid>337299</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-04-13 00:30:13 -0700</bug_when>
    <thetext>Comment on attachment 337299
Patch

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

I really don&apos;t think we should be making these database schema changes without a corresponding frontend or a backend change.

&gt; Websites/perf.webkit.org/public/v3/models/test-group.js:191
&gt; +    async updateNotifiedAuthorFlag(notified)

Why do we need this function in frontend?
Also, this should really be called didNotifyAuthor() and shouldn&apos;t take a boolean
because it never makes sense to unset the flag.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-update-test-group-tests.js:131
&gt; +        webkit = Repository.all().filter((repository) =&gt; repository.name() == &apos;WebKit&apos;)[0];

Why aren&apos;t we using const webkit here instead?

&gt; Websites/perf.webkit.org/server-tests/privileged-api-update-test-group-tests.js:135
&gt; +        insertedGroupId = result[&apos;testGroupId&apos;];

Ditto about doing const testGroupId here instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418549</commentid>
    <comment_count>3</comment_count>
      <attachid>339006</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-04-27 10:58:41 -0700</bug_when>
    <thetext>Created attachment 339006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418588</commentid>
    <comment_count>4</comment_count>
      <attachid>339006</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-04-27 12:58:23 -0700</bug_when>
    <thetext>Comment on attachment 339006
Patch

Again, I don&apos;t think we should be making these kind of database schema changes independently of the rest of the changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427196</commentid>
    <comment_count>5</comment_count>
      <attachid>341254</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-05-24 23:45:43 -0700</bug_when>
    <thetext>Created attachment 341254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427205</commentid>
    <comment_count>6</comment_count>
      <attachid>341254</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-05-25 00:24:26 -0700</bug_when>
    <thetext>Comment on attachment 341254
Patch

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

&gt; Websites/perf.webkit.org/init-database.sql:282
&gt; +    testgroup_has_pending_notification boolean NOT NULL DEFAULT FALSE,

As we discussed in person, I think we should call this needs_notification instead
since has_pending_notification sounds as though we&apos;ve already got a notification to send
when in reality this boolean indicates that we must send a notification WHEN all build requests complete.

&gt; Websites/perf.webkit.org/public/api/test-groups.php:16
&gt; +    if (count($path) &gt; 0 &amp;&amp; $path[0] == &apos;all-with-pending-notification&apos;) {

I think ?notifications-pending=true will do.

&gt; Websites/perf.webkit.org/public/api/test-groups.php:24
&gt; +        $test_group_id_list = array();
&gt; +        foreach($test_groups as $group)
&gt; +            array_push($test_group_id_list, $group[&apos;testgroup_id&apos;]);

Why don&apos;t we move this code into fetch_requests_for_groups
so that we can call int() on each test group ID to make sure they&apos;re not random strings.

&gt; Websites/perf.webkit.org/public/api/test-groups.php:26
&gt; +        if (!count($test_group_id_list))

You need { ~ } here.

&gt; Websites/perf.webkit.org/tools/js/email-notifier.js:4
&gt; +class EmailNotifier {

Since this class doesn&apos;t directly send an email but rather notifies an external service, we shouldn&apos;t call this EmailNotifier.
How about AnalysisResultsNotifier?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428155</commentid>
    <comment_count>7</comment_count>
      <attachid>341502</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-05-29 11:56:11 -0700</bug_when>
    <thetext>Created attachment 341502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428179</commentid>
    <comment_count>8</comment_count>
      <attachid>341502</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-05-29 13:11:49 -0700</bug_when>
    <thetext>Comment on attachment 341502
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:3
&gt; +        Added sending notification feature when test group finishes.

I updated the bugzilla title to be more descriptive. Please update the title in the change log accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429510</commentid>
    <comment_count>9</comment_count>
      <attachid>341829</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-06-01 22:05:54 -0700</bug_when>
    <thetext>Created attachment 341829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429528</commentid>
    <comment_count>10</comment_count>
      <attachid>341829</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-02 00:40:11 -0700</bug_when>
    <thetext>Comment on attachment 341829
Patch

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

&gt; Websites/perf.webkit.org/public/api/test-groups.php:-16
&gt; -    if (count($path) &gt; 0 &amp;&amp; $path[0]) {

I think you need to add an error case for when count($path) &gt; 1 first
and then use something like $path_name = array_get($path, 0);

&gt; Websites/perf.webkit.org/public/api/test-groups.php:16
&gt; +    if (count($path) &gt; 0 &amp;&amp; $path[0] == &apos;notifications-pending&apos;) {

This should be count($path) == 1.

&gt; Websites/perf.webkit.org/public/api/test-groups.php:31
&gt; +    }elseif (count($path) &gt; 0 &amp;&amp; $path[0]) {

Nit: Need a space between } and else if.

&gt; Websites/perf.webkit.org/public/v3/models/test-group.js:197
&gt; +            needsNotification: false

Let&apos;s add a new database field to record when the notification was sent instead of just clearing it.

&gt; Websites/perf.webkit.org/public/v3/models/test-group.js:203
&gt; +    static createWithTask(taskName, platform, test, groupName, repetitionCount, commitSets, notifyOnCompletion)

We need a test for when notifyOnCompletion to set to false as well.

&gt; Websites/perf.webkit.org/public/v3/models/test-group.js:250
&gt; +        return this.cachedFetch(&apos;/api/test-groups/notifications-pending&apos;, null, true).then(this._createModelsFromFetchedTestGroups.bind(this));

Why don&apos;t we call the API /api/test-groups/notifications-available or /api/test-groups/available-for-notification
/api/test-groups/ready-for-notification or /api/test-groups/notification-ready

&gt; Websites/perf.webkit.org/server-tests/api-upload-root-tests.js:68
&gt; -        return TestGroup.createWithTask(&apos;custom task&apos;, Platform.findById(MockData.somePlatformId()), someTest, &apos;some group&apos;, 2, [set1, set2]);
&gt; +        return TestGroup.createWithTask(&apos;custom task&apos;, Platform.findById(MockData.somePlatformId()), someTest, &apos;some group&apos;, 2, [set1, set2], true);

If you&apos;re modifying these tests, be sure to heck that the test group has this bit set later in the case.
Otherwise don&apos;t make the changes.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:1234
&gt; +            return Promise.all([AnalysisTask.fetchById(result[&apos;taskId&apos;]), TestGroup.fetchForTask(result[&apos;taskId&apos;], true)]);

You should probably rename this test to say &quot;with needs-notification flag set&quot;

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:22
&gt; +        const tempDir = fs.mkdtempSync(os.tmpdir());
&gt; +        const tempFilePath = path.join(tempDir, &apos;temp-content.json&apos;);

Don&apos;t create a temporary directory or a file until everything else is ready.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:25
&gt; +            const title = `Test group: &quot;${testGroup.name()}&quot; from Analysis task &quot;${testGroup.task().name()}&quot; has finished all build requests`;

This is a very verbose name. Why don&apos;t we just say: &quot;${testGroup.task().name()}&quot; - &quot;${testGroup.name()}&quot; has finished.
Or: &quot;${testGroup.name()}&quot; in &quot;${testGroup.task().name()}&quot; has completed.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:28
&gt; +            content = this._constructMessageByRules(testGroup.platform().name(), testGroup.test().path()[0].name(), content);

I think we should call this applyRules or something.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:34
&gt; +            await this._notifcationService.sendNotification(content);
&gt; +            await testGroup.didSendNotification();

We should probably log before &amp; after this critical section so that in the case the script got killed
after sending the notification but before clearing the flag, we would at least see it in the log.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:43
&gt; +            if (matchingFunction(platformName, testName))

I think we should just do what _buildMessageConstructionRules is doing it here.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:72
&gt; +    static _applyUpdate(message, update) {

{ should be on the next line.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:140
&gt; +        return this._notificationServerRemoteAPI.postJSON(this._notificationServicePath, message);

I don&apos;t think we need this class. Just do it directly in AnalysisResultsNotifier.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:167
&gt; +

Nit: extra line.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:172
&gt; +            totalRows = 0;

This is very misleading. First off, this variable should be renamed to something like total runs.
Second off, it&apos;s very misleading for this counter to be reset each time.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:225
&gt; +                barGraphPlaceholder.style.width = 20 + (value - minValue) / (maxValue - minValue) * 280 + &apos;px&apos;;

Use % instead.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:263
&gt; +                &apos;font&apos;: &apos;Serif&apos;,

Use sans-serif.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:266
&gt; +                &apos;font-size&apos;: &apos;14pt&apos;,

Don&apos;t use pt. Use rem.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:270
&gt; +                &apos;font-size&apos;: &apos;14pt&apos;,

Ditto.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:274
&gt; +                &apos;font-size&apos;: &apos;14pt&apos;,

Use rem.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:275
&gt; +                &apos;margin-bottom&apos;: &apos;2px&apos;,

Ditto.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:276
&gt; +                &apos;min-width&apos;: &apos;600px&apos;,

Use rem instead.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:285
&gt; +                &apos;margin-top&apos;: &apos;20px&apos;,

Ditto.

&gt; Websites/perf.webkit.org/unit-tests/test-groups-tests.js:168
&gt; +            const updatedTestGroup = sampleTestGroup();
&gt; +            updatedTestGroup.testGroups[0].needsNotification = false;

We should instead of make sampleTestGroup take an argument like &quot;options&quot; which specifies this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430291</commentid>
    <comment_count>11</comment_count>
      <attachid>342008</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-06-05 17:24:17 -0700</bug_when>
    <thetext>Created attachment 342008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430372</commentid>
    <comment_count>12</comment_count>
      <attachid>342008</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-05 23:10:50 -0700</bug_when>
    <thetext>Comment on attachment 342008
Patch

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

&gt; Websites/perf.webkit.org/public/api/test-groups.php:27
&gt; +                WHERE EXISTS(SELECT 1 FROM build_requests

Nit: Wrong indentation. WHERE should appear exactly 4 spaces to the right of $test_groups.

&gt; Websites/perf.webkit.org/public/api/test-groups.php:29
&gt; +                  AND request_status IN (\&apos;pending\&apos;, \&apos;scheduled\&apos;, \&apos;running\&apos;, \&apos;canceled\&apos;)) IS FALSE

Can we use &quot; for the string so that we don&apos;t have to escape it manually here?

&gt; Websites/perf.webkit.org/public/privileged-api/update-test-group.php:25
&gt; +        if (!($has_notification_sent_at_field xor $data[&apos;needsNotification&apos;]))

I think a simpler way to express this would be: !!$data[&apos;needsNotification&apos;] == !!$has_notification_sent_at_field

&gt; Websites/perf.webkit.org/server-tests/api-test-groups.js:63
&gt; +        it(&apos;should not list test groups that have author notified before&apos;, async () =&gt; {

Nit: should not list test groups without needs notification flag.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-analysis-task-tests.js:606
&gt; +    it(&apos;should create an analysis task with test group and respect the &quot;needsNotification&quot; flag in the http request&apos;, async () =&gt; {

Don&apos;t change the test name. Keep the original test in tact, add a new test which sets needsNotification to true.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-analysis-task-tests.js:638
&gt; +            startRun: testRuns[0][&apos;id&apos;], endRun: testRuns[1][&apos;id&apos;], needsNotification: false});

Omit needsNotification here to keep the original test case.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:342
&gt; -            return PrivilegedAPI.sendRequest(&apos;create-test-group&apos;, {name: &apos;test&apos;, task: taskId, commitSets}).then((content) =&gt; {
&gt; +            return PrivilegedAPI.sendRequest(&apos;create-test-group&apos;, {name: &apos;test&apos;, task: taskId, commitSets, needsNotification: true}).then((content) =&gt; {

I don&apos;t think we should be modifying all these tests. Keep them intact.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:1224
&gt; +    it(&apos;should create a test group with an analysis task with needs-notification flag set&apos;, () =&gt; {

Use async &amp; await?

&gt; Websites/perf.webkit.org/server-tests/privileged-api-update-test-group-tests.js:132
&gt; +    it(&apos;should throw &quot;SlaveNotFound&quot; if invalid slave name and password combination is provided&apos;, async () =&gt; {

Nit: API isn&apos;t throwing anything. It&apos;s simply returning an error code so revise the description as such.
Ditto for the rest of tests.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-update-test-group-tests.js:137
&gt; +        await assertThrows(&apos;SlaveNotFound&apos;, () =&gt;
&gt; +            PrivilegedAPI.sendRequest(&apos;update-test-group&apos;, {}));

This can fit in a single line.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-update-test-group-tests.js:144
&gt; +        await assertThrows(&apos;TestGroupNotSpecified&apos;, () =&gt;
&gt; +            PrivilegedAPI.sendRequest(&apos;update-test-group&apos;, {}));

Ditto.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:41
&gt; +        const analysisTask = testGroup.task() || await AnalysisTask.fetchById(testGroup._taskId);
&gt; +        const analysisResults = await AnalysisResults.fetch(analysisTask.id());

We should add a method on TestGroupResultPage to set test group which fetches these things
since AnalysisResultsNotifier itself doesn&apos;t need them.
Also, we should probably add TestGroup.fetchTask with this fallback logic.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:43
&gt; +        return (new TestGroupResultPage(&apos;test&apos;, testGroup, analysisResults, analysisTask, AnalysisResultsNotifier._URLForAnalysisTask(analysisTask))).generateMarkup();

Use the email title for the title.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:46
&gt; +    static _URLForAnalysisTask(analysisTask)

This should just be a method on TestGroupResultPage.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:76
&gt; +    static _matchesRule(platform, test, platforms, tests)

I think function should just take rule object to match its name for clarity.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:108
&gt; +            if (!message.hasOwnProperty(key))

We can just do: &quot;!(key in message)&quot;

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:110
&gt; +            else if (Array.isArray(value) &amp;&amp; Array.isArray(valueToMerge))

I think a simpler thing to do here is:
if (Array.isArray(value) || Array.isArray(valueToMerge)) {
    if (!Array.isArray(value))
        value = [value];
    if (!Array.isArray(valueToMerge))
        valueToMerge = [valueToMerge];
    mergedValue = [...value, ...valueToMerge];
}

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:21
&gt; +        const element = ComponentBase.createElement.bind(ComponentBase);
&gt; +        const link = ComponentBase.createLink.bind(ComponentBase);

Just directly call this.createElement &amp; this.createLink.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:54
&gt; +            }

We should extract this function which computes min &amp; max, and it should build a map from commitSet to results.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:64
&gt; +                const values = results.filter((result) =&gt; !!result).map((result) =&gt; result.value);
&gt; +                arrayOfValues.push(values);

This arrayOfValues &amp; values variables are confusing.
I think it&apos;s better if kept the list of all results: e.g. resultsList.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:66
&gt; +                for(const result of results) {

Nit: Need a space between for and (.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:69
&gt; +                        barGraphPlaceholder.style.width = (10 + (result.value - minValue) / (maxValue - minValue) * 90) + &apos;%&apos;;

I don&apos;t think this math makes sense. This will just always add 10% margin on the left.
Instead, expand min &amp; max by 10%.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:72
&gt; +                    const barGraphContainer = element(&apos;div&apos;, {class: &apos;bar-graph-container&apos;}, barGraphPlaceholder);
&gt; +                    const cellContent = [barGraphContainer, result ? formatValue(result.value, result.interval).join(&apos;&apos;) : &apos;Failed&apos;];

We should just extra this as a very simple BarGraph component.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:79
&gt; +                                [testGroup.labelForCommitSet(commitSet) + &apos;: &apos;,
&gt; +                                    formatValue(Statistics.mean(values), Statistics.confidenceInterval(values)).map((content =&gt; element(&apos;span&apos;, {class: &apos;no-wrap&apos;}, content)))]),

Can we define a local variable before generating the label?

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:83
&gt; +                    }
&gt; +                    else

Nit: } and else need to be in the same line.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:90
&gt; +            const changeStyleClass =  `${comparison.isStatisticallySignificant ? comparison.changeType : &apos;insignificant&apos;}-result`;

Nit: Two spaces between = and `.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:94
&gt; +            tablesWithSummary.push([element(&apos;table&apos;, {class: &apos;result-table &apos;}, [caption, tableBodies])]);

Nit: An extra space after result-table.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:102
&gt; +
&gt; +

Nit: Two blank lines here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430660</commentid>
    <comment_count>13</comment_count>
      <attachid>342101</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-06-06 17:58:32 -0700</bug_when>
    <thetext>Created attachment 342101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430694</commentid>
    <comment_count>14</comment_count>
      <attachid>342101</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-06 21:12:06 -0700</bug_when>
    <thetext>Comment on attachment 342101
Patch

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

&gt; Websites/perf.webkit.org/public/api/test-groups.php:30
&gt; +                    AND testgroup_needs_notification IS TRUE and testgroup_hidden IS FALSE&quot;);

Nit: and -&gt; AND.

&gt; Websites/perf.webkit.org/public/v3/models/test-group.js:43
&gt; +    notificationSentAt() { return this._notificationSentAt; }

This should probably return new Date if _notificationSentAt is set.

&gt; Websites/perf.webkit.org/public/v3/models/test-group.js:61
&gt; +            await AnalysisTask.fetchById(this._taskId);

We should just return here.

&gt; Websites/perf.webkit.org/public/v3/pages/chart-pane.js:123
&gt; +        createWithTestGroupCheckbox.onchange = () =&gt; repetitionCount.disabled = notifyOnCompletion.disabled = !createWithTestGroupCheckbox.checked;

Nit: Each assignment statement needs to be on its own line per our style guideline.
https://webkit.org/code-style-guidelines/#linebreaking-multiple-statements

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:1253
&gt; +    it(&apos;should be able to create a test group with needs-notification flag not set&apos;, async () =&gt; {

Nit: flag unset*

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:18
&gt; +        this._messageConstructionRules = messageConstructionRules;

Why don&apos;t we add a check here to make sure each rule has either tests or platforms filter set,
and make sure they&apos;re also arrays of strings.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:80
&gt; +        if (rule.tests) {
&gt; +            if (!rule.tests.includes(test))

A simpler way to write this might be:
if (rule.tests &amp;&amp; !rule.tests.includes(test))
    return false;
if (rule.platforms &amp;&amp; !rule.platforms.includes(platform))
    return false;
return true;

and then do a check to make sure each rule has either tests or platforms set
as an early error check in the constructor.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:21
&gt; +    static _URLForAnalysisTask(analysisTask)

Nit: I think we usually use lowercase url.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:26
&gt; +    _buildCommitSetToResultsAMapAndBarWidthCalculator(testGroup, analysisResultsView)

I think it&apos;s better to simply call this _buildCommitSetToResultsMap.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:47
&gt; +        return [resultsByCommitSet, (value) =&gt; (value - minValue) / (maxValue - minValue) * 100];

Let&apos;s return a dictionary instead; e.g. {resultsByCommitSet, barWidthFromValue: (value) =&gt; ~}

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:60
&gt; +            const formatter = metric.makeFormatter(4);

Can we extract the content of this loop as a helper function?

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:80
&gt; +                for (const result of results) {

Can we extract this as a helper function as well?

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:193
&gt; +    _constructBarGraph(width)

We should put this below render() function so that it reads naturally top-down.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:195
&gt; +        const barGraphPlaceholder = this.createElement(&apos;div&apos;,{class: &apos;bar-graph-placeholder&apos;});

It&apos;s not necessary to create div each time. Just put it into the template and just set width instead.

&gt; Websites/perf.webkit.org/tools/js/test-group-result-page.js:207
&gt; +    static get pageContent()

This is not right. Use contentTemplate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431330</commentid>
    <comment_count>15</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-06-08 11:30:43 -0700</bug_when>
    <thetext>rdar://problem/30343379</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450558</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-15 19:16:52 -0700</bug_when>
    <thetext>r232612</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337299</attachid>
            <date>2018-04-05 14:29:54 -0700</date>
            <delta_ts>2018-04-27 10:58:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184340-20180405142953.patch</filename>
            <type>text/plain</type>
            <size>17817</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlNTkyOWJhNjM3YWU1MzE3ZThhOTRlYzcxN2Y4ZWU1MDU3YzA1ZmI4Li5hZTA0NDc5ZWEy
YmQ3YjM1OTNlODBmMjg2YzI2ZDZkNWY3MGQyN2QxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxOC0wNC0wNSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBmaWVsZCB0byBhbmFseXNpc190ZXN0X2dyb3Vw
IHRhYmxlIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGl0cyByZXN1bHRzIGhhcyBiZWVuIHNlbnQg
dG8gYXV0aG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg0MzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgJ3Rlc3Rncm91cF9ub3RpZmllZF9hdXRob3InIGZpbGVkIHRvICdhbmFseXNpc190
ZXN0X2dyb3VwJyB0YWJsZSB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBhdXRob3IgaXMgbm90aWZp
ZWQuCisgICAgICAgIFRoaXMgZmllbGQgaXMgZGVmYXVsdCB0byBmYWxzZSwgaG93ZXZlciwgZm9y
IGV4aXN0aW5nIGVudHJpZXMgaW4gdGhlIGRhdGFiYXNlLCB3ZSBzaG91bGQgc2V0IGl0IHRvIHRy
dWUgdG8gYXZvaWQgc3BhbWluZy4KKyAgICAgICAgU1FMIHF1ZXJ5IHRvIHVwZGF0ZSBleGlzdGlu
ZyBkYXRhYmFzZSBpczoKKyAgICAgICAgICAgICdBTFRFUiBUQUJMRSBhbmFseXNpc190ZXN0X2dy
b3VwcyBBREQgQ09MVU1OIHRlc3Rncm91cF9ub3RpZmllZF9hdXRob3IgYm9vbGVhbiBOT1QgTlVM
TCBERUZBVUxUIEZBTFNFOycKKyAgICAgICAgICAgICdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91
cHMgU0VUIHRlc3Rncm91cF9ub3RpZmllZF9hdXRob3IgPSBUUlVFOycKKworICAgICAgICAqIGlu
aXQtZGF0YWJhc2Uuc3FsOiBBZGRlZCAndGVzdGdyb3VwX25vdGlmaWVkX2F1dGhvcicgZmllbGQg
dG8gJ2FuYWx5c2lzX3Rlc3RfZ3JvdXAnLgorICAgICAgICAqIHB1YmxpYy9hcGkvdGVzdC1ncm91
cHMucGhwOiBVcGRhdGVkIEFQSSB0byByZXR1cm4gJ25vdGlmaWVkQXV0aG9yJy4KKyAgICAgICAg
KiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAucGhwOiBVcGRhdGVkIEFQ
SSB0byBzdXBwb3J0IHVwZGF0aW5nICd0ZXN0Z3JvdXBfbm90aWZpZWRfYXV0aG9yJyBmaWVsZC4K
KyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanM6CisgICAgICAgIChUZXN0
R3JvdXApOiBTZXRzICd0aGlzLl9ub3RpZmllZEF1dGhvcicgaW4gY29uc3RydWN0b3IuCisgICAg
ICAgIChUZXN0R3JvdXAucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6IFVwZGF0ZXMgJ3RoaXMu
X25vdGlmaWVkQXV0aG9yJyBpbiB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoVGVzdEdyb3VwLnBy
b3RvdHlwZS5ub3RpZmllZEF1dGhvcik6IFJldHVybnMgd2hldGVyIG5vdGlmaWNhdGlvbiBoYXMg
YmVlbiBzZW50IHRvIGF1dGhvciBmb3IgdGhpcyB0ZXN0IGdyb3VwLgorICAgICAgICAoVGVzdEdy
b3VwLnByb3RvdHlwZS5hc3luYy51cGRhdGVOb3RpZmllZEF1dGhvckZsYWcpOiBQcm92aWRlIGEg
QVBJIHRvIHVwZGF0ZSAndGVzdGdyb3VwX25vdGlmaWVkX2F1dGhvcicgaW4gJ2FuYWx5c2lzX3Rl
c3RfZ3JvdXAnIHRhYmxlLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11
cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0IGZvciAndXBkYXRlLXRl
c3QtZ3JvdXAnIEFQSS4KKyAgICAgICAgKGNyZWF0ZUFuYWx5c2lzVGFzayk6CisgICAgICAgIChh
ZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2spOgorICAgICAgICAqIHVuaXQtdGVzdHMvcmVzb3Vy
Y2VzL21vY2stcmVtb3RlLWFwaS5qczogQWRkZWQgbG9naWMgdG8gY2xlYW4gdXAgY3NyZiB0b2tl
biBiZXR3ZWVuIGV2ZXJ5IHRlc3QuCisgICAgICAgIChNb2NrUmVtb3RlQVBJLmluamVjdCk6Cisg
ICAgICAgICogdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0
cyByZWdhcmRpbmcgdGhpcyBjaGFuZ2UuCisKIDIwMTgtMDMtMjkgIERld2VpIFpodSAgPGRld2Vp
X3podUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkZWQgVUkgdG8gc2hvdyBwb3RlbnRpYWwgcmVn
cmVzc2lvbnMgaW4gY2hhcnQgd2l0aCB0LXRlc3RpbmcgYWdhaW5zdCBzZWdtZW50YXRpb25zLgpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCmluZGV4IDUyNzg4Zjc4
MGY4NTgzNTg1NzQzYTAwNmRlOWU1MmY4MDAwYmRmMDQuLjE2ZjJlMGYwNTU4ODJiMGI0Y2Q2NGFl
N2FjOTI1MTRiMmY4YzAxYTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9p
bml0LWRhdGFiYXNlLnNxbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRh
YmFzZS5zcWwKQEAgLTI3OCw2ICsyNzgsNyBAQCBDUkVBVEUgVEFCTEUgYW5hbHlzaXNfdGVzdF9n
cm91cHMgKAogICAgIHRlc3Rncm91cF9hdXRob3IgdmFyY2hhcigyNTYpLAogICAgIHRlc3Rncm91
cF9jcmVhdGVkX2F0IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChDVVJSRU5UX1RJTUVTVEFN
UCBBVCBUSU1FIFpPTkUgJ1VUQycpLAogICAgIHRlc3Rncm91cF9oaWRkZW4gYm9vbGVhbiBOT1Qg
TlVMTCBERUZBVUxUIEZBTFNFLAorICAgIHRlc3Rncm91cF9ub3RpZmllZF9hdXRob3IgYm9vbGVh
biBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIENPTlNUUkFJTlQgdGVzdGdyb3VwX25hbWVf
bXVzdF9iZV91bmlxdWVfZm9yX2VhY2hfdGFzayBVTklRVUUodGVzdGdyb3VwX3Rhc2ssIHRlc3Rn
cm91cF9uYW1lKSk7CiBDUkVBVEUgSU5ERVggdGVzdGdyb3VwX3Rhc2tfaW5kZXggT04gYW5hbHlz
aXNfdGVzdF9ncm91cHModGVzdGdyb3VwX3Rhc2spOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS90ZXN0LWdyb3Vwcy5waHAgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2FwaS90ZXN0LWdyb3Vwcy5waHAKaW5kZXggNDJkZGQzMDkzNTA5
ZGQyZjRhZDYzMGU4NGU0ZDNhMDVlN2IwOTYxYy4uYWUwYmY4NGM0ZDFhODdmMzIxYWNjYjcyZWVh
MTYyMjk3MjMyNDkxMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9hcGkvdGVzdC1ncm91cHMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvYXBpL3Rlc3QtZ3JvdXBzLnBocApAQCAtNjUsNiArNjUsNyBAQCBmdW5jdGlvbiBmb3JtYXRf
dGVzdF9ncm91cCgkZ3JvdXBfcm93KSB7CiAgICAgICAgICdhdXRob3InID0+ICRncm91cF9yb3db
J3Rlc3Rncm91cF9hdXRob3InXSwKICAgICAgICAgJ2NyZWF0ZWRBdCcgPT4gc3RydG90aW1lKCRn
cm91cF9yb3dbJ3Rlc3Rncm91cF9jcmVhdGVkX2F0J10pICogMTAwMCwKICAgICAgICAgJ2hpZGRl
bicgPT4gRGF0YWJhc2U6OmlzX3RydWUoJGdyb3VwX3Jvd1sndGVzdGdyb3VwX2hpZGRlbiddKSwK
KyAgICAgICAgJ25vdGlmaWVkQXV0aG9yJyA9PiBEYXRhYmFzZTo6aXNfdHJ1ZSgkZ3JvdXBfcm93
Wyd0ZXN0Z3JvdXBfbm90aWZpZWRfYXV0aG9yJ10pLAogICAgICAgICAnYnVpbGRSZXF1ZXN0cycg
PT4gYXJyYXkoKSwKICAgICAgICAgJ2NvbW1pdFNldHMnID0+IGFycmF5KCksCiAgICAgKTsKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkv
dXBkYXRlLXRlc3QtZ3JvdXAucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9w
cml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cC5waHAKaW5kZXggZGIxZWQzODM5MmE1NzIw
MWNjMDc2NTI4ZTQ4YTQ5NjhkMjBlOWVlOC4uZGQ1OTg4N2I1M2VmYTQ5ZTQ5ZWMwMzllYjc1NWM4
MGZkZGMwNWZhYiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9w
cml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cC5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cC5waHAKQEAg
LTE3LDYgKzE3LDkgQEAgZnVuY3Rpb24gbWFpbigpIHsKICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0
cygnaGlkZGVuJywgJGRhdGEpKQogICAgICAgICAkdmFsdWVzWydoaWRkZW4nXSA9IERhdGFiYXNl
Ojp0b19kYXRhYmFzZV9ib29sZWFuKCRkYXRhWydoaWRkZW4nXSk7CiAKKyAgICBpZiAoYXJyYXlf
a2V5X2V4aXN0cygnbm90aWZpZWRBdXRob3InLCAkZGF0YSkpCisgICAgICAgICR2YWx1ZXNbJ25v
dGlmaWVkX2F1dGhvciddID0gRGF0YWJhc2U6OnRvX2RhdGFiYXNlX2Jvb2xlYW4oJGRhdGFbJ25v
dGlmaWVkQXV0aG9yJ10pOworCiAgICAgaWYgKCEkdmFsdWVzKQogICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ05vdGhpbmdUb1VwZGF0ZScpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwppbmRleCBjZjhmMjk2N2Ji
ZTYyZTU2M2E2OTBmYmQ4N2E2YzJiZGVhNzQwNDJjLi5hNTdlYmMzNTY3NDg3MWMzNmIxOGY0ODM1
NGQ5OGQ3OTlmNWMxNmU1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKQEAgLTksNiArOSw3IEBAIGNsYXNzIFRl
c3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB0aGlzLl9hdXRob3JOYW1l
ID0gb2JqZWN0LmF1dGhvcjsKICAgICAgICAgdGhpcy5fY3JlYXRlZEF0ID0gbmV3IERhdGUob2Jq
ZWN0LmNyZWF0ZWRBdCk7CiAgICAgICAgIHRoaXMuX2lzSGlkZGVuID0gb2JqZWN0LmhpZGRlbjsK
KyAgICAgICAgdGhpcy5fbm90aWZpZWRBdXRob3IgPSBvYmplY3Qubm90aWZpZWRBdXRob3I7CiAg
ICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdHMgPSBbXTsKICAgICAgICAgdGhpcy5fb3JkZXJCdWls
ZFJlcXVlc3RzTGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uKCguLi5idWlsZFJl
cXVlc3RzKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gYnVpbGRSZXF1ZXN0cy5zb3J0KChhLCBi
KSA9PiBhLm9yZGVyKCkgLSBiLm9yZGVyKCkpOwpAQCAtMzAsMTIgKzMxLDE0IEBAIGNsYXNzIFRl
c3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0
aGlzLl9wbGF0Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOwogCiAgICAgICAgIHRoaXMuX2lzSGlk
ZGVuID0gb2JqZWN0LmhpZGRlbjsKKyAgICAgICAgdGhpcy5fbm90aWZpZWRBdXRob3IgPSBvYmpl
Y3Qubm90aWZpZWRBdXRob3I7CiAgICAgfQogCiAgICAgdGFzaygpIHsgcmV0dXJuIEFuYWx5c2lz
VGFzay5maW5kQnlJZCh0aGlzLl90YXNrSWQpOyB9CiAgICAgY3JlYXRlZEF0KCkgeyByZXR1cm4g
dGhpcy5fY3JlYXRlZEF0OyB9CiAgICAgaXNIaWRkZW4oKSB7IHJldHVybiB0aGlzLl9pc0hpZGRl
bjsgfQogICAgIGJ1aWxkUmVxdWVzdHMoKSB7IHJldHVybiB0aGlzLl9idWlsZFJlcXVlc3RzOyB9
CisgICAgbm90aWZpZWRBdXRob3IoKSB7IHJldHVybiB0aGlzLl9ub3RpZmllZEF1dGhvcjsgfQog
ICAgIGFkZEJ1aWxkUmVxdWVzdChyZXF1ZXN0KQogICAgIHsKICAgICAgICAgdGhpcy5fYnVpbGRS
ZXF1ZXN0cy5wdXNoKHJlcXVlc3QpOwpAQCAtMTQ2LDcgKzE0OSw3IEBAIGNsYXNzIFRlc3RHcm91
cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICBpZiAoYmVmb3JlVmFsdWVzLmxlbmd0
aCAmJiBhZnRlclZhbHVlcy5sZW5ndGgpIHsKICAgICAgICAgICAgIGNvbnN0IHN1bW1hcnkgPSBt
ZXRyaWMubGFiZWxGb3JEaWZmZXJlbmNlKGJlZm9yZU1lYW4sIGFmdGVyTWVhbiwgJ2JldHRlcics
ICd3b3JzZScpOwogICAgICAgICAgICAgcmVzdWx0LmNoYW5nZVR5cGUgPSBzdW1tYXJ5LmNoYW5n
ZVR5cGU7Ci0gICAgICAgICAgICByZXN1bHQuY2hhbmdlTGFiZWwgPSBzdW1tYXJ5LmNoYW5nZUxh
YmVsOworICAgICAgICAgICAgcmVzdWx0LmxhYmVsID0gc3VtbWFyeS5jaGFuZ2VMYWJlbDsKICAg
ICAgICAgICAgIHZhciBpc1NpZ25pZmljYW50ID0gU3RhdGlzdGljcy50ZXN0V2VsY2hzVChiZWZv
cmVWYWx1ZXMsIGFmdGVyVmFsdWVzKTsKICAgICAgICAgICAgIHZhciBzaWduaWZpY2FuY2VMYWJl
bCA9IGlzU2lnbmlmaWNhbnQgPyAnc2lnbmlmaWNhbnQnIDogJ2luc2lnbmlmaWNhbnQnOwogCkBA
IC0xODUsNiArMTg4LDE3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3Qg
ewogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBhc3luYyB1cGRhdGVOb3RpZmllZEF1dGhvckZs
YWcobm90aWZpZWQpCisgICAgeworICAgICAgICBjb25zdCBpZCA9IHRoaXMuaWQoKTsKKyAgICAg
ICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7
CisgICAgICAgICAgICBncm91cDogaWQsCisgICAgICAgICAgICBub3RpZmllZEF1dGhvcjogISFu
b3RpZmllZAorICAgICAgICB9KTsKKyAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IFRlc3RHcm91
cC5jYWNoZWRGZXRjaChgL2FwaS90ZXN0LWdyb3Vwcy8ke2lkfWAsIHt9LCB0cnVlKTsKKyAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5fY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzKGRh
dGEpOworICAgIH0KKwogICAgIHN0YXRpYyBjcmVhdGVXaXRoVGFzayh0YXNrTmFtZSwgcGxhdGZv
cm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzKQogICAgIHsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZWU4MmRlYzg1Yjc0OGU4NWE5NDgzNTk2MjI2ZmEwYmJmNDExNzFiCi0tLSAvZGV2
L251bGwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxl
Z2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtMCwwICsxLDE1MSBAQAorJ3Vz
ZSBzdHJpY3QnOworCitjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKKworY29uc3Qg
TW9ja0RhdGEgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKK2NvbnN0IFRl
c3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3Qg
YWRkU2xhdmVGb3JSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9u
cy5qcycpLmFkZFNsYXZlRm9yUmVwb3J0OworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1
aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0
OworCithc3luYyBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2aXNp
b25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCit7CisgICAgY29uc3QgcmVwb3J0V2l0aFJldmlz
aW9uID0gW3sKKyAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNCIsCisgICAgICAgICJidWlsZFRp
bWUiOiAiMjAxNS0xMC0yN1QxNTozNDo1MSIsCisgICAgICAgICJyZXZpc2lvbnMiOiB7CisgICAg
ICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6IHdlYmtpdFJl
dmlzaW9uc1swXSwKKyAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogJzIwMTUtMTAtMjdUMTE6
MzY6NTYuODc4NDczWicsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm1hY09TIjogewor
ICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNUEyODQiLAorICAgICAgICAgICAgfQorICAg
ICAgICB9LAorICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAi
c2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQ
YXNzd29yZCIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJzb21lIHBsYXRmb3JtIiwKKyAgICAgICAg
InRlc3RzIjogeworICAgICAgICAgICAgInNvbWUgdGVzdCI6IHsKKyAgICAgICAgICAgICAgICAi
bWV0cmljcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIlRpbWUiOiBbIkFyaXRobWV0aWMiXSwK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAg
ICAgICAgICAgICAgInRlc3QxIjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3Mi
OiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzExXSB9fSwKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH19XTsKKworICAgIGNv
bnN0IGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24gPSBbeworICAgICAgICAiYnVpbGROdW1iZXIi
OiAiMTI1IiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDE1LTEwLTI3VDE3OjI3OjQxIiwKKyAg
ICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAg
ICAgICAgInJldmlzaW9uIjogd2Via2l0UmV2aXNpb25zWzFdLAorICAgICAgICAgICAgICAgICJ0
aW1lc3RhbXAiOiAnMjAxNS0xMC0yN1QxNjozODoxMC43Njg5OTVaJywKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE1
QTI4NCIsCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJidWlsZGVyTmFtZSI6
ICJzb21lQnVpbGRlciIsCisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAg
ICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3JtIjog
InNvbWUgcGxhdGZvcm0iLAorICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAic29tZSB0
ZXN0IjogeworICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeworICAgICAgICAgICAgICAgICAg
ICAiVGltZSI6IFsiQXJpdGhtZXRpYyJdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTJdIH19
LAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSwKKyAgICAgICAgfX1dOworCisgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7
CisgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICBhd2FpdCBh
ZGRTbGF2ZUZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOworICAgIGF3YWl0IHJlbW90
ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICBhd2Fp
dCByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNp
b24pOworICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgY29uc3QgdGVzdCA9IFRlc3Qu
ZmluZEJ5UGF0aChbJ3NvbWUgdGVzdCcsICd0ZXN0MSddKTsKKyAgICBjb25zdCBwbGF0Zm9ybSA9
IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICBjb25zdCBjb25maWdS
b3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRy
aWM6IHRlc3QubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7Cisg
ICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29u
ZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKKworICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5n
dGgsIDIpOworICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKKyAgICAgICAgbmFtZTogbmFtZSwKKyAgICAg
ICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLAorICAgICAgICBlbmRSdW46IHRlc3RSdW5z
WzFdWydpZCddLAorICAgIH0pOworICAgIHJldHVybiBjb250ZW50Wyd0YXNrSWQnXTsKK30KKwor
YXN5bmMgZnVuY3Rpb24gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKG5hbWUsIHdlYmtpdFJl
dmlzaW9ucykKK3sKKyAgICBjb25zdCByZXBvcnQgPSB7CisgICAgICAgICdzbGF2ZU5hbWUnOiAn
YW5vdGhlclNsYXZlJywKKyAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAnYW5vdGhlclBhc3N3b3Jk
JywKKyAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCisgICAgICAgICdjb25m
aWd1cmF0aW9ucyc6IFsKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCks
IHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0
OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3Jt
SWQoKX0sCisgICAgICAgIF0sCisgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWworICAgICAg
ICAgICAge25hbWU6ICdvcy1vbmx5JywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczog
WworICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJ
ZCgpLCBhY2NlcHRzUGF0Y2g6IGZhbHNlfSwKKyAgICAgICAgICAgIF19LAorICAgICAgICAgICAg
e25hbWU6ICd3ZWJraXQtb25seScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6IFsK
KyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCksIGFjY2VwdHNQYXRjaDogdHJ1ZX0sCisgICAgICAgICAgICBdfSwKKyAgICAgICAgICAgIHtu
YW1lOiAnc3lzdGVtLWFuZC13ZWJraXQnLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVz
OiBbCisgICAgICAgICAgICAgICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9y
eUlkKCksIGFjY2VwdHNQYXRjaDogZmFsc2V9LAorICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5
OiBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiB0cnVlfQorICAg
ICAgICAgICAgXX0sCisgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS13ZWJraXQtc2pjJywgYWNj
ZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWworICAgICAgICAgICAgICAgIHtyZXBvc2l0
b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6IGZhbHNlfSwK
KyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEuanNjUmVwb3NpdG9yeUlkKCks
IGFjY2VwdHNQYXRjaDogZmFsc2V9LAorICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2Nr
RGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiB0cnVlfQorICAgICAgICAg
ICAgXX0sCisgICAgICAgIF0KKyAgICB9OworICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRh
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CisgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQocmVw
b3J0KTsKKyAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCByZXBvcnQpOworICAgIGF3YWl0IGNyZWF0ZUFuYWx5c2lzVGFz
ayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMpOworfQorCitkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKKyAgICBwcmVwYXJlU2VydmVyVGVzdCh0
aGlzKTsKKworICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGRhdGUgbm90aWZpZWQgYXV0aG9y
IGZsYWcnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7CisgICAg
ICAgIGxldCB3ZWJraXQ7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFz
aygnc29tZSB0YXNrJyk7CisgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVy
KChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07CisgICAg
ICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkx
NjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKKyAgICAgICAg
bGV0IHJlc3VsdCA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywKKyAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVy
IHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9ja0Rh
dGEuc29tZVRlc3RJZCgpLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgaW5zZXJ0ZWRHcm91cElk
ID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOworICAgICAgICByZXN1bHQgPSBhd2FpdCBQcm9taXNl
LmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOworCisgICAgICAgIGNvbnN0
IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gcmVzdWx0OworCisgICAgICAgIGFzc2VydC5l
cXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOworCisgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGNvbnN0IGdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7
CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5ub3RpZmllZEF1dGhvcigpLCBmYWxzZSk7Cisg
ICAgICAgIGF3YWl0IGdyb3VwLnVwZGF0ZU5vdGlmaWVkQXV0aG9yRmxhZyh0cnVlKTsKKyAgICAg
ICAgY29uc3QgdXBkYXRlZEdyb3VwID0gVGVzdEdyb3VwLmZpbmRCeUlkKGdyb3VwLmlkKCkpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3VwLm5vdGlmaWVkQXV0aG9yKCksIHRydWUp
OworICAgIH0pOworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stcmVtb3Rl
LWFwaS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9t
b2NrLXJlbW90ZS1hcGkuanMKaW5kZXggZTdiMDU1Yzg0YTRkMGZkYzczMTBlZjM2NzZlODhmYTE2
YTAxOWU3MC4uMWU0NWQ0ODczMmIzNjI0NTlkNjc1ZmZkMTNmMTZjMWY1ZTcxMDc2YiAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2st
cmVtb3RlLWFwaS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9y
ZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzCkBAIC02NSw2ICs2NSw4IEBAIHZhciBNb2NrUmVt
b3RlQVBJID0gewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCh1cmxQcmVmaXgpOwog
ICAgICAgICAgICAgb3JpZ2luYWxSZW1vdGVBUEkgPSBnbG9iYWwuUmVtb3RlQVBJOwogICAgICAg
ICAgICAgZ2xvYmFsLlJlbW90ZUFQSSA9IE1vY2tSZW1vdGVBUEk7CisgICAgICAgICAgICBQcml2
aWxlZ2VkQVBJLl90b2tlbiA9IG51bGw7CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLl9leHBp
cmF0aW9uID0gbnVsbDsKICAgICAgICAgfSk7CiAKICAgICAgICAgYWZ0ZXJFYWNoKGZ1bmN0aW9u
ICgpIHsgICAgICAgIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qcwppbmRleCBmM2U4MzNjNTQ0MDQ4MGM3NDEyMTk5
MDFlMmRjMGE5MGJmNmJmZjRjLi4zNDI0MDVlNTI5NjVlMjFmN2QyMjE3NjhiMGMwMzM4ODMyYmQw
NTAyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0
LWdyb3Vwcy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0
cy90ZXN0LWdyb3Vwcy10ZXN0cy5qcwpAQCAtMTYsNiArMTYsNyBAQCBmdW5jdGlvbiBzYW1wbGVU
ZXN0R3JvdXAoKSB7CiAgICAgICAgICAgICAiYXV0aG9yIjogInJuaXdhIiwKICAgICAgICAgICAg
ICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwLAogICAgICAgICAgICAgImhpZGRlbiI6IGZhbHNl
LAorICAgICAgICAgICAgIm5vdGlmaWVkQXV0aG9yIjogZmFsc2UsCiAgICAgICAgICAgICAiYnVp
bGRSZXF1ZXN0cyI6IFsiMTY5ODUiLCAiMTY5ODYiLCAiMTY5ODciLCAiMTY5ODgiLCAiMTY5ODki
LCAiMTY5OTAiLCAiMTY5OTEiLCAiMTY5OTIiXSwKICAgICAgICAgICAgICJjb21taXRTZXRzIjog
WyI0MjU1IiwgIjQyNTYiXSwKICAgICAgICAgfV0sCkBAIC0xMzgsNiArMTM5LDQ3IEBAIGRlc2Ny
aWJlKCdUZXN0R3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgZGVzY3JpYmUoJ3VwZGF0ZU5vdGlmaWVkQXV0aG9yRmxhZycsICgpID0+IHsKKyAgICAgICAg
Y29uc3QgcmVxdWVzdHMgPSBNb2NrUmVtb3RlQVBJLmluamVjdCgnaHR0cHM6Ly9wZXJmLndlYmtp
dC5vcmcnKTsKKworICAgICAgICBpdCgnc2hvdWxkIHVwZGF0ZSBub3RpZmllZCBhdXRob3IgZmxh
ZycsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGZldGNoUHJvbWlzZSA9IFRlc3RH
cm91cC5mZXRjaEZvclRhc2soMTM3Nik7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZl
KHNhbXBsZVRlc3RHcm91cCgpKTsKKyAgICAgICAgICAgIGxldCB0ZXN0R3JvdXBzID0gYXdhaXQg
ZmV0Y2hQcm9taXNlOworICAgICAgICAgICAgYXNzZXJ0KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGxldCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5ub3RpZmllZEF1dGhvcigpLCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIGNvbnN0IHVwZGF0ZVByb21pc2UgPSB0ZXN0R3JvdXAudXBkYXRlTm90aWZpZWRBdXRo
b3JGbGFnKHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnUE9TVCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2Vk
LWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7CisgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNv
bHZlKHsKKyAgICAgICAgICAgICAgICB0b2tlbjogJ2FiYycsCisgICAgICAgICAgICAgICAgZXhw
aXJhdGlvbjogRGF0ZS5ub3coKSArIDYwICogMTAwMCwKKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMl0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsgZ3JvdXA6
ICcyMTI4Jywgbm90aWZpZWRBdXRob3I6IHRydWUsIHRva2VuOiAnYWJjJyB9KTsKKyAgICAgICAg
ICAgIHJlcXVlc3RzWzJdLnJlc29sdmUoKTsKKworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10udXJsLCAnL2Fw
aS90ZXN0LWdyb3Vwcy8yMTI4Jyk7CisgICAgICAgICAgICBjb25zdCB1cGRhdGVkVGVzdEdyb3Vw
ID0gc2FtcGxlVGVzdEdyb3VwKCk7CisgICAgICAgICAgICB1cGRhdGVkVGVzdEdyb3VwLnRlc3RH
cm91cHNbMF0ubm90aWZpZWRBdXRob3IgPSB0cnVlOworICAgICAgICAgICAgcmVxdWVzdHNbM10u
cmVzb2x2ZSh1cGRhdGVkVGVzdEdyb3VwKTsKKworICAgICAgICAgICAgdGVzdEdyb3VwcyA9IGF3
YWl0IHVwZGF0ZVByb21pc2U7CisgICAgICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBd
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5ub3RpZmllZEF1dGhvcigpLCB0
cnVlKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKICAgICBkZXNjcmliZSgnX2NyZWF0ZU1vZGVs
c0Zyb21GZXRjaGVkVGVzdEdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgaXQoJ3Nob3Vs
ZCBjcmVhdGUgdGVzdCBncm91cHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB2YXIgZ3Jv
dXBzID0gVGVzdEdyb3VwLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMoc2FtcGxl
VGVzdEdyb3VwKCkpOwpAQCAtMTQ4LDYgKzE5MCw3IEBAIGRlc2NyaWJlKCdUZXN0R3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgMjEyOCk7
CiAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuY3JlYXRlZEF0KCkgaW5zdGFuY2VvZiBEYXRl
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pc0hpZGRlbigpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubm90aWZpZWRBdXRob3IoKSwgZmFsc2UpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtncm91cC5jcmVhdGVkQXQoKSwgMTQ1ODY4ODUxNDAw
MCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIHNh
bXBsZVRlc3RHcm91cCgpWydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoIC8gMik7CiAgICAgICAgICAg
ICBhc3NlcnQub2soZ3JvdXAuaGFzUGVuZGluZygpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339006</attachid>
            <date>2018-04-27 10:58:41 -0700</date>
            <delta_ts>2018-05-24 23:45:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184340-20180427105840.patch</filename>
            <type>text/plain</type>
            <size>22046</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTAxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBiMzk5YmNiMThjNTJmMWJkMzczMTllYWJjODVlODUzYzIzODA2Yzc4Li43MTliZDY2MmMx
M2Y1Yjk0NGVlMmUyYzRlOWIwNDBlNGYwMjlkYTRiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOC0wNC0yNyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBmaWVsZCB0byBhbmFseXNpc190ZXN0X2dyb3Vw
IHRhYmxlIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGl0cyByZXN1bHRzIGhhcyBiZWVuIHNlbnQg
dG8gYXV0aG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg0MzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgJ3Rlc3Rncm91cF9ub3RpZmllZF9hdXRob3InIGZpbGVkIHRvICdhbmFseXNpc190
ZXN0X2dyb3VwJyB0YWJsZSB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBhdXRob3IgaXMgbm90aWZp
ZWQuCisgICAgICAgIFVwZGF0ZWQgL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNr
LnBocCB0byBhdXRoZW50aWNhdGUgZWl0aGVyIGJ5IHNsYXZlIGFjY291bnQgb3IgQ1NSRiB0b2tl
bi4KKyAgICAgICAgVGhpcyBmaWVsZCBpcyBkZWZhdWx0IHRvIGZhbHNlLCBob3dldmVyLCBmb3Ig
ZXhpc3RpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJhc2UsIHdlIHNob3VsZCBzZXQgaXQgdG8gdHJ1
ZSB0byBhdm9pZCBzcGFtaW5nLgorICAgICAgICBTUUwgcXVlcnkgdG8gdXBkYXRlIGV4aXN0aW5n
IGRhdGFiYXNlIGlzOgorICAgICAgICAgICAgJ0FMVEVSIFRBQkxFIGFuYWx5c2lzX3Rlc3RfZ3Jv
dXBzIEFERCBDT0xVTU4gdGVzdGdyb3VwX25vdGlmaWVkX2F1dGhvciBib29sZWFuIE5PVCBOVUxM
IERFRkFVTFQgRkFMU0U7JworICAgICAgICAgICAgJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3Vw
cyBTRVQgdGVzdGdyb3VwX25vdGlmaWVkX2F1dGhvciA9IFRSVUU7JworCisgICAgICAgICogaW5p
dC1kYXRhYmFzZS5zcWw6IEFkZGVkICd0ZXN0Z3JvdXBfbm90aWZpZWRfYXV0aG9yJyBmaWVsZCB0
byAnYW5hbHlzaXNfdGVzdF9ncm91cCcuCisgICAgICAgICogcHVibGljL2FwaS90ZXN0LWdyb3Vw
cy5waHA6IFVwZGF0ZWQgQVBJIHRvIHJldHVybiAnbm90aWZpZWRBdXRob3InLgorICAgICAgICAq
IHB1YmxpYy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cC5waHA6IFVwZGF0ZWQgQVBJ
IHRvIHN1cHBvcnQgc2V0dGluZyAndGVzdGdyb3VwX25vdGlmaWVkX2F1dGhvcicgZmllbGQKKyAg
ICAgICAgYnkgYXV0aGVudGljYXRpbmcgdGhyb3VnaCBlaXRoZXIgc2xhdmUgYWNjb3VudCBvciBj
c3JmIHRva2VuLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qczoKKyAg
ICAgICAgKFRlc3RHcm91cCk6IFNldHMgJ3RoaXMuX25vdGlmaWVkQXV0aG9yJyBpbiBjb25zdHJ1
Y3Rvci4KKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5cGUudXBkYXRlU2luZ2xldG9uKTogVXBk
YXRlcyAndGhpcy5fbm90aWZpZWRBdXRob3InIGluIHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChU
ZXN0R3JvdXAucHJvdG90eXBlLm5vdGlmaWVkQXV0aG9yKTogUmV0dXJucyB3aGV0ZXIgbm90aWZp
Y2F0aW9uIGhhcyBiZWVuIHNlbnQgdG8gYXV0aG9yIGZvciB0aGlzIHRlc3QgZ3JvdXAuCisgICAg
ICAgIChUZXN0R3JvdXAucHJvdG90eXBlLmFzeW5jLmRpZE5vdGlmeUF1dGhvcik6IFByb3ZpZGUg
YSBBUEkgdG8gc2V0ICd0ZXN0Z3JvdXBfbm90aWZpZWRfYXV0aG9yJyB0byB0cnVlIGluICdhbmFs
eXNpc190ZXN0X2dyb3VwJyB0YWJsZS4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cyB0
byB1c2UgJ2Fzc2VydFRocm93cycgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qczogQWRkZWQgdW5p
dCB0ZXN0IGZvciAndXBkYXRlLXRlc3QtZ3JvdXAnIEFQSS4KKyAgICAgICAgKiBzZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzOiBBZGRlZCBhIGhlbHBlciBmdW5jdGlv
biB0aGF0IGFzc2VydHMgYW4gZXhwZWN0ZWQgZXhjZXB0aW9uIGlzIHJhaXNlZC4KKyAgICAgICAg
KGFzeW5jLmFzc2VydFRocm93cyk6CisgICAgICAgICogdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10
ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0cyByZWdhcmRpbmcgdGhpcyBjaGFuZ2UuCisKIDIwMTgt
MDQtMjYgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgRXh0ZW5k
IGNyZWF0ZS1hbmFseXNpcy10ZXN0IEFQSSB0byBiZSBhYmxlIHRvIGNyZWF0ZSB3aXRoIGNvbmZp
cm1pbmcgdGVzdCBncm91cC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9p
bml0LWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNl
LnNxbAppbmRleCBjNDc0MmU3YjZkYzNlYTgwNWIwMzllMGQxODc3NWM1MmYyZjdkMDY3Li44YmQ0
Nzg2NjVmZDJmYTk0ZGYxODQ1NjlkNTQ0MjFhNWE0ODI5M2ViIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCkBAIC0yNzksNiArMjc5LDcgQEAgQ1JFQVRFIFRB
QkxFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzICgKICAgICB0ZXN0Z3JvdXBfYXV0aG9yIHZhcmNoYXIo
MjU2KSwKICAgICB0ZXN0Z3JvdXBfY3JlYXRlZF9hdCB0aW1lc3RhbXAgTk9UIE5VTEwgREVGQVVM
VCAoQ1VSUkVOVF9USU1FU1RBTVAgQVQgVElNRSBaT05FICdVVEMnKSwKICAgICB0ZXN0Z3JvdXBf
aGlkZGVuIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSwKKyAgICB0ZXN0Z3JvdXBfbm90
aWZpZWRfYXV0aG9yIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSwKICAgICBDT05TVFJB
SU5UIHRlc3Rncm91cF9uYW1lX211c3RfYmVfdW5pcXVlX2Zvcl9lYWNoX3Rhc2sgVU5JUVVFKHRl
c3Rncm91cF90YXNrLCB0ZXN0Z3JvdXBfbmFtZSkpOwogQ1JFQVRFIElOREVYIHRlc3Rncm91cF90
YXNrX2luZGV4IE9OIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzKHRlc3Rncm91cF90YXNrKTsKIApkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdGVzdC1ncm91cHMu
cGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdGVzdC1ncm91cHMucGhw
CmluZGV4IDQyZGRkMzA5MzUwOWRkMmY0YWQ2MzBlODRlNGQzYTA1ZTdiMDk2MWMuLmFlMGJmODRj
NGQxYTg3ZjMyMWFjY2I3MmVlYTE2MjI5NzIzMjQ5MTIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocAorKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS90ZXN0LWdyb3Vwcy5waHAKQEAgLTY1LDYgKzY1LDcg
QEAgZnVuY3Rpb24gZm9ybWF0X3Rlc3RfZ3JvdXAoJGdyb3VwX3JvdykgewogICAgICAgICAnYXV0
aG9yJyA9PiAkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfYXV0aG9yJ10sCiAgICAgICAgICdjcmVhdGVk
QXQnID0+IHN0cnRvdGltZSgkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfY3JlYXRlZF9hdCddKSAqIDEw
MDAsCiAgICAgICAgICdoaWRkZW4nID0+IERhdGFiYXNlOjppc190cnVlKCRncm91cF9yb3dbJ3Rl
c3Rncm91cF9oaWRkZW4nXSksCisgICAgICAgICdub3RpZmllZEF1dGhvcicgPT4gRGF0YWJhc2U6
OmlzX3RydWUoJGdyb3VwX3Jvd1sndGVzdGdyb3VwX25vdGlmaWVkX2F1dGhvciddKSwKICAgICAg
ICAgJ2J1aWxkUmVxdWVzdHMnID0+IGFycmF5KCksCiAgICAgICAgICdjb21taXRTZXRzJyA9PiBh
cnJheSgpLAogICAgICk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocCBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAucGhwCmlu
ZGV4IGRiMWVkMzgzOTJhNTcyMDFjYzA3NjUyOGU0OGE0OTY4ZDIwZTllZTguLjIxMjM3ZmQwN2My
MmM5YjBmOWJmMjQyZDU3N2E2OGQ2ZGVhYjY3MzMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAucGhwCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRl
LXRlc3QtZ3JvdXAucGhwCkBAIC0zLDcgKzMsOCBAQAogcmVxdWlyZV9vbmNlKCcuLi9pbmNsdWRl
L2pzb24taGVhZGVyLnBocCcpOwogCiBmdW5jdGlvbiBtYWluKCkgewotICAgICRkYXRhID0gZW5z
dXJlX3ByaXZpbGVnZWRfYXBpX2RhdGFfYW5kX3Rva2VuKCk7CisgICAgJGRiID0gY29ubmVjdCgp
OworICAgICRkYXRhID0gZW5zdXJlX3ByaXZpbGVnZWRfYXBpX2RhdGFfYW5kX3Rva2VuX29yX3Ns
YXZlKCRkYik7CiAKICAgICAkdGVzdF9ncm91cF9pZCA9IGFycmF5X2dldCgkZGF0YSwgJ2dyb3Vw
Jyk7CiAgICAgaWYgKCEkdGVzdF9ncm91cF9pZCkKQEAgLTE3LDEwICsxOCwxMSBAQCBmdW5jdGlv
biBtYWluKCkgewogICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdoaWRkZW4nLCAkZGF0YSkpCiAg
ICAgICAgICR2YWx1ZXNbJ2hpZGRlbiddID0gRGF0YWJhc2U6OnRvX2RhdGFiYXNlX2Jvb2xlYW4o
JGRhdGFbJ2hpZGRlbiddKTsKIAorICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdub3RpZmllZEF1
dGhvcicsICRkYXRhKSkKKyAgICAgICAgJHZhbHVlc1snbm90aWZpZWRfYXV0aG9yJ10gPSBEYXRh
YmFzZTo6dG9fZGF0YWJhc2VfYm9vbGVhbigkZGF0YVsnbm90aWZpZWRBdXRob3InXSk7CisKICAg
ICBpZiAoISR2YWx1ZXMpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignTm90aGluZ1RvVXBkYXRl
Jyk7Ci0KLSAgICAkZGIgPSBjb25uZWN0KCk7CiAgICAgJGRiLT5iZWdpbl90cmFuc2FjdGlvbigp
OwogCiAgICAgaWYgKCEkZGItPnVwZGF0ZV9yb3coJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywgJ3Rl
c3Rncm91cCcsIGFycmF5KCdpZCcgPT4gJHRlc3RfZ3JvdXBfaWQpLCAkdmFsdWVzKSkgewpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1n
cm91cC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3Qt
Z3JvdXAuanMKaW5kZXggZTA5ZjE0MmZjZGQ1ZDU5MjhkZWJhMjhlMzdiNmM5YzFhMzVmYThjMy4u
YmFhNTZlMmY3Mjk1MWUxZWYxMzg1MGQzNThlNjE2ZjcyNDJhMjhhNiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpz
CkBAIC05LDYgKzksNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsK
ICAgICAgICAgdGhpcy5fYXV0aG9yTmFtZSA9IG9iamVjdC5hdXRob3I7CiAgICAgICAgIHRoaXMu
X2NyZWF0ZWRBdCA9IG5ldyBEYXRlKG9iamVjdC5jcmVhdGVkQXQpOwogICAgICAgICB0aGlzLl9p
c0hpZGRlbiA9IG9iamVjdC5oaWRkZW47CisgICAgICAgIHRoaXMuX25vdGlmaWVkQXV0aG9yID0g
b2JqZWN0Lm5vdGlmaWVkQXV0aG9yOwogICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RzID0gW107
CiAgICAgICAgIHRoaXMuX29yZGVyQnVpbGRSZXF1ZXN0c0xhemlseSA9IG5ldyBMYXppbHlFdmFs
dWF0ZWRGdW5jdGlvbigoLi4uYnVpbGRSZXF1ZXN0cykgPT4gewogICAgICAgICAgICAgcmV0dXJu
IGJ1aWxkUmVxdWVzdHMuc29ydCgoYSwgYikgPT4gYS5vcmRlcigpIC0gYi5vcmRlcigpKTsKQEAg
LTMwLDEyICszMSwxNCBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcGxhdGZvcm0gPT0gb2JqZWN0LnBsYXRmb3Jt
KTsKIAogICAgICAgICB0aGlzLl9pc0hpZGRlbiA9IG9iamVjdC5oaWRkZW47CisgICAgICAgIHRo
aXMuX25vdGlmaWVkQXV0aG9yID0gb2JqZWN0Lm5vdGlmaWVkQXV0aG9yOwogICAgIH0KIAogICAg
IHRhc2soKSB7IHJldHVybiBBbmFseXNpc1Rhc2suZmluZEJ5SWQodGhpcy5fdGFza0lkKTsgfQog
ICAgIGNyZWF0ZWRBdCgpIHsgcmV0dXJuIHRoaXMuX2NyZWF0ZWRBdDsgfQogICAgIGlzSGlkZGVu
KCkgeyByZXR1cm4gdGhpcy5faXNIaWRkZW47IH0KICAgICBidWlsZFJlcXVlc3RzKCkgeyByZXR1
cm4gdGhpcy5fYnVpbGRSZXF1ZXN0czsgfQorICAgIG5vdGlmaWVkQXV0aG9yKCkgeyByZXR1cm4g
dGhpcy5fbm90aWZpZWRBdXRob3I7IH0KICAgICBhZGRCdWlsZFJlcXVlc3QocmVxdWVzdCkKICAg
ICB7CiAgICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdHMucHVzaChyZXF1ZXN0KTsKQEAgLTE4NSw2
ICsxODgsMTcgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAg
ICAgIH0pOwogICAgIH0KIAorICAgIGFzeW5jIGRpZE5vdGlmeUF1dGhvcigpCisgICAgeworICAg
ICAgICBjb25zdCBpZCA9IHRoaXMuaWQoKTsKKyAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7CisgICAgICAgICAgICBncm91cDogaWQs
CisgICAgICAgICAgICBub3RpZmllZEF1dGhvcjogdHJ1ZQorICAgICAgICB9KTsKKyAgICAgICAg
Y29uc3QgZGF0YSA9IGF3YWl0IFRlc3RHcm91cC5jYWNoZWRGZXRjaChgL2FwaS90ZXN0LWdyb3Vw
cy8ke2lkfWAsIHt9LCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5fY3JlYXRlTW9k
ZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzKGRhdGEpOworICAgIH0KKwogICAgIHN0YXRpYyBjcmVh
dGVXaXRoVGFzayh0YXNrTmFtZSwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVwZXRpdGlv
bkNvdW50LCBjb21taXRTZXRzKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29tbWl0
U2V0cy5sZW5ndGggPT0gMik7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1j
cmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwppbmRleCBjN2E2ZDE3NzFmOWI0MmM0YTJmZDA3
ZjY3MmEyM2RhMjRkYzdjZDg5Li42ODUwNWM0MThmZjFjZmE3OGMyMjZhN2Y2MTk5NWQ0NDE1Yzkw
OTU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5
c2lzLXRhc2stdGVzdHMuanMKQEAgLTYsNiArNiw3IEBAIGxldCBNb2NrRGF0YSA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL21vY2stZGF0YS5qcycpOwogbGV0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcu
L3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOwogY29uc3QgYWRkQnVpbGRlckZvclJlcG9ydCA9
IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRkQnVpbGRlckZv
clJlcG9ydDsKIGNvbnN0IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMv
Y29tbW9uLW9wZXJhdGlvbnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKK2NvbnN0IGFzc2VydFRo
cm93cyA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYXNzZXJ0
VGhyb3dzOwogCiBjb25zdCByZXBvcnRXaXRoUmV2aXNpb24gPSBbewogICAgICJidWlsZE51bWJl
ciI6ICIxMjQiLApAQCAtMzUzLDE3ICszNTQsMTAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4K
ICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAn
MTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElk
XToge3JldmlzaW9uOiAnMTkxNjIzJ319OwogCi0gICAgICAgIGxldCByYWlzZUV4Y2VwdGlvbiA9
IGZhbHNlOwotCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJl
cGV0aXRpb25Db3VudDogMSwKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdUcmlnZ2VyYWJs
ZU5vdEZvdW5kRm9yVGFzaycsICgpID0+CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRp
b25Db3VudDogMSwKICAgICAgICAgICAgICAgICByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNl
dCwgYW5vdGhlclJldmlzaW9uU2V0XSwKLSAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1
bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKLSAgICAgICAgfSBjYXRj
aCAoZXJyb3IpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1RyaWdnZXJhYmxl
Tm90Rm91bmRGb3JUYXNrJyk7Ci0gICAgICAgICAgICByYWlzZUV4Y2VwdGlvbiA9IHRydWU7Ci0g
ICAgICAgIH0KLSAgICAgICAgYXNzZXJ0Lm9rKHJhaXNlRXhjZXB0aW9uKTsKKyAgICAgICAgICAg
ICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lk
J119KSk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNr
IHdpdGggbm8gdGVzdCBncm91cCB3aGVuIHJlcGV0aXRpb24gY291bnQgaXMgMCcsIGFzeW5jICgp
ID0+IHsKQEAgLTUxMywxNyArNTA3LDEwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAg
ICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYy
Mid9fTsKICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHty
ZXZpc2lvbjogJzE5MTYyMyd9fTsKIAotICAgICAgICBsZXQgcmFpc2VFeGNlcHRpb24gPSBmYWxz
ZTsKLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0
aW9uQ291bnQ6IDEsCisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnU2xhdmVOb3RGb3VuZCcs
ICgpID0+CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5h
bHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMSwKICAgICAg
ICAgICAgICAgICByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlzaW9u
U2V0XSwKLSAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1
bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKLSAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1NsYXZlTm90Rm91bmQnKTsKLSAgICAgICAgICAg
IHJhaXNlRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBhc3NlcnQub2socmFp
c2VFeGNlcHRpb24pOworICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQn
XSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pKTsKIAogICAgICAgICBjb25zdCBhbGxBbmFs
eXNpc1Rhc2tzID0gYXdhaXQgZGIuc2VsZWN0Um93cygnYW5hbHlzaXNfdGFza3MnKTsKICAgICAg
ICAgYXNzZXJ0Lm9rKCFhbGxBbmFseXNpc1Rhc2tzLmxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10
ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
Y2M0OGQ2OGNlNGM2MWY2M2E1ZDMwMTU3YzFkYjdmYjBkMjY3ODUzCi0tLSAvZGV2L251bGwKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11
cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtMCwwICsxLDE2NSBAQAorJ3VzZSBzdHJpY3Qn
OworCitjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKKworY29uc3QgTW9ja0RhdGEg
PSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKK2NvbnN0IFRlc3RTZXJ2ZXIg
PSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgYWRkU2xhdmVG
b3JSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFk
ZFNsYXZlRm9yUmVwb3J0OworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jl
c291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OworY29uc3Qg
YXNzZXJ0VGhyb3dzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMn
KS5hc3NlcnRUaHJvd3M7CisKK2FzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFzayhuYW1l
LCB3ZWJraXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKK3sKKyAgICBjb25zdCBy
ZXBvcnRXaXRoUmV2aXNpb24gPSBbeworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTI0IiwKKyAg
ICAgICAgImJ1aWxkVGltZSI6ICIyMDE1LTEwLTI3VDE1OjM0OjUxIiwKKyAgICAgICAgInJldmlz
aW9ucyI6IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogd2Via2l0UmV2aXNpb25zWzBdLAorICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAn
MjAxNS0xMC0yN1QxMTozNjo1Ni44Nzg0NzNaJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE1QTI4NCIsCisgICAg
ICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFz
c3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3JtIjogInNvbWUgcGxhdGZv
cm0iLAorICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAic29tZSB0ZXN0IjogeworICAg
ICAgICAgICAgICAgICJtZXRyaWNzIjogeworICAgICAgICAgICAgICAgICAgICAiVGltZSI6IFsi
QXJpdGhtZXRpYyJdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgInRlc3Rz
IjogeworICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTFdIH19LAorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAg
fX1dOworCisgICAgY29uc3QgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbiA9IFt7CisgICAgICAg
ICJidWlsZE51bWJlciI6ICIxMjUiLAorICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTUtMTAtMjdU
MTc6Mjc6NDEiLAorICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAgICAgIldlYktpdCI6
IHsKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiB3ZWJraXRSZXZpc2lvbnNbMV0sCisgICAg
ICAgICAgICAgICAgInRpbWVzdGFtcCI6ICcyMDE1LTEwLTI3VDE2OjM4OjEwLjc2ODk5NVonLAor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJtYWNPUyI6IHsKKyAgICAgICAgICAgICAgICAi
cmV2aXNpb24iOiAiMTVBMjg0IiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAg
ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21l
U2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAg
ICAicGxhdGZvcm0iOiAic29tZSBwbGF0Zm9ybSIsCisgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAg
ICAgICAgICJzb21lIHRlc3QiOiB7CisgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7CisgICAg
ICAgICAgICAgICAgICAgICJUaW1lIjogWyJBcml0aG1ldGljIl0sCisgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0
MSI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3Vy
cmVudCI6IFsxMl0gfX0sCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9LAorICAgICAgICB9fV07CisKKyAgICBjb25zdCBkYiA9IFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKTsKKyAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
OworICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7Cisg
ICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNp
b24pOworICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgYW5vdGhlclJl
cG9ydFdpdGhSZXZpc2lvbik7CisgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAgICBjb25z
dCB0ZXN0ID0gVGVzdC5maW5kQnlQYXRoKFsnc29tZSB0ZXN0JywgJ3Rlc3QxJ10pOworICAgIGNv
bnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScpOworICAg
IGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3Vy
YXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHBsYXRm
b3JtLmlkKCl9KTsKKyAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rl
c3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOworCisgICAgYXNzZXJ0LmVxdWFs
KHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgeworICAgICAgICBuYW1l
OiBuYW1lLAorICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCisgICAgICAgIGVu
ZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sCisgICAgfSk7CisgICAgcmV0dXJuIGNvbnRlbnRbJ3Rh
c2tJZCddOworfQorCithc3luYyBmdW5jdGlvbiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2so
bmFtZSwgd2Via2l0UmV2aXNpb25zKQoreworICAgIGNvbnN0IHJlcG9ydCA9IHsKKyAgICAgICAg
J3NsYXZlTmFtZSc6ICdhbm90aGVyU2xhdmUnLAorICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdh
bm90aGVyUGFzc3dvcmQnLAorICAgICAgICAndHJpZ2dlcmFibGUnOiAnYnVpbGQtd2Via2l0JywK
KyAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWworICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRh
LnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9LAorICAg
ICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRh
Lm90aGVyUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgXSwKKyAgICAgICAgJ3JlcG9zaXRvcnlHcm91
cHMnOiBbCisgICAgICAgICAgICB7bmFtZTogJ29zLW9ubHknLCBhY2NlcHRzUm9vdDogdHJ1ZSwg
cmVwb3NpdG9yaWVzOiBbCisgICAgICAgICAgICAgICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLm1h
Y29zUmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogZmFsc2V9LAorICAgICAgICAgICAgXX0s
CisgICAgICAgICAgICB7bmFtZTogJ3dlYmtpdC1vbmx5JywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJl
cG9zaXRvcmllczogWworICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiB0cnVlfSwKKyAgICAgICAgICAgIF19LAor
ICAgICAgICAgICAge25hbWU6ICdzeXN0ZW0tYW5kLXdlYmtpdCcsIGFjY2VwdHNSb290OiB0cnVl
LCByZXBvc2l0b3JpZXM6IFsKKyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEu
bWFjb3NSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiBmYWxzZX0sCisgICAgICAgICAgICAg
ICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0
Y2g6IHRydWV9CisgICAgICAgICAgICBdfSwKKyAgICAgICAgICAgIHtuYW1lOiAnc3lzdGVtLXdl
YmtpdC1zamMnLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVzOiBbCisgICAgICAgICAg
ICAgICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQ
YXRjaDogZmFsc2V9LAorICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5qc2NS
ZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiBmYWxzZX0sCisgICAgICAgICAgICAgICAge3Jl
cG9zaXRvcnk6IE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6IHRy
dWV9CisgICAgICAgICAgICBdfSwKKyAgICAgICAgXQorICAgIH07CisgICAgYXdhaXQgTW9ja0Rh
dGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKKyAgICBhd2FpdCBhZGRTbGF2
ZUZvclJlcG9ydChyZXBvcnQpOworICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHJlcG9ydCk7CisgICAgYXdhaXQgY3Jl
YXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyk7Cit9CisKK2Rlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpeworICAgIHByZXBh
cmVTZXJ2ZXJUZXN0KHRoaXMsICdub2RlJyk7CisgICAgYmVmb3JlRWFjaCgoKSA9PiB7CisgICAg
ICAgIFByaXZpbGVnZWRBUEkuY29uZmlndXJlKCd0ZXN0JywgJ3Bhc3N3b3JkJyk7CisgICAgfSk7
CisKKyAgICBpdCgnc2hvdWxkIHRocm93ICJTbGF2ZU5vdEZvdW5kIiBpZiBpbnZhbGlkIHNsYXZl
IG5hbWUgYW5kIHBhc3N3b3JkIGNvbWJpbmF0aW9uIGlzIHByb3ZpZGVkJywgYXN5bmMgKCkgPT4g
eworICAgICAgICBhd2FpdCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycp
OworCisgICAgICAgIFByaXZpbGVnZWRBUEkuY29uZmlndXJlKCd0ZXN0JywgJ3dyb25ncGFzc3dv
cmQnKTsKKyAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJl
cG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKKyAgICAgICAg
Y29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjIn
fX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMnfX1dOworCisgICAgICAgIGF3
YWl0IGFzc2VydFRocm93cygnU2xhdmVOb3RGb3VuZCcsICgpID0+CisgICAgICAgICAgICBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06IE1vY2tE
YXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcmV2aXNp
b25TZXRzfSkpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSBu
b3RpZmllZCBhdXRob3IgZmxhZycsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkVHJp
Z2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKTsKKyAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFt
ZSgpID09ICdXZWJLaXQnKVswXTsKKyAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Vi
a2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNp
b246ICcxOTE2MjMnfX1dOworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLAorICAgICAgICAgICAgICAgIHtuYW1l
OiAndGVzdCcsIHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21l
UGxhdGZvcm1JZCgpLCB0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHJldmlzaW9uU2V0c30p
OworICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107
CisgICAgICAgIHJlc3VsdCA9IGF3YWl0IFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hC
eUlkKHJlc3VsdFsndGFza0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFz
a0lkJ10sIHRydWUpXSk7CisKKyAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vw
c10gPSByZXN1bHQ7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCks
ICdvdGhlciB0YXNrJyk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLm5vdGlmaWVkQXV0aG9yKCksIGZhbHNlKTsKKyAgICAgICAgYXdhaXQgZ3JvdXAuZGlkTm90
aWZ5QXV0aG9yKCk7CisgICAgICAgIGNvbnN0IHVwZGF0ZWRHcm91cCA9IFRlc3RHcm91cC5maW5k
QnlJZChncm91cC5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cC5ub3Rp
ZmllZEF1dGhvcigpLCB0cnVlKTsKKyAgICB9KTsKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMKaW5kZXggZTE0NjNj
YWZiZDE4Zjk0ZTg2NmQ0NTljYTA1YjVkNmUzY2Q5ODVhOC4uOTFkMjYyMzhjODM2MzdjYTRmNjgw
NTBhMjU3ODBiYWZkZjI5NWY2ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMKQEAgLTEsNCArMSw1IEBACiAKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcp
OwogY29uc3QgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyk7CiAKIGZ1bmN0aW9uIGFkZEJ1aWxk
ZXJGb3JSZXBvcnQocmVwb3J0KQpAQCAtNDksOSArNTAsMjIgQEAgZnVuY3Rpb24gc3VibWl0UmVw
b3J0KHJlcG9ydCkKICAgICB9KTsKIH0KIAorYXN5bmMgZnVuY3Rpb24gYXNzZXJ0VGhyb3dzKGV4
cGVjdGVkRXJyb3IsIHRlc3RGdW5jdGlvbikKK3sKKyAgICBsZXQgdGhyb3duRXhjZXB0aW9uID0g
ZmFsc2U7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgdGVzdEZ1bmN0aW9uKCkKKyAgICB9IGNh
dGNoKGVycm9yKSB7CisgICAgICAgIHRocm93bkV4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgIGFz
c2VydC5lcXVhbChlcnJvciwgZXhwZWN0ZWRFcnJvcik7CisgICAgfQorICAgIGFzc2VydC5vayh0
aHJvd25FeGNlcHRpb24pOworfQorCiBpZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykg
ewogICAgIG1vZHVsZS5leHBvcnRzLmFkZEJ1aWxkZXJGb3JSZXBvcnQgPSBhZGRCdWlsZGVyRm9y
UmVwb3J0OwogICAgIG1vZHVsZS5leHBvcnRzLmFkZFNsYXZlRm9yUmVwb3J0ID0gYWRkU2xhdmVG
b3JSZXBvcnQ7CiAgICAgbW9kdWxlLmV4cG9ydHMucHJlcGFyZVNlcnZlclRlc3QgPSBwcmVwYXJl
U2VydmVyVGVzdDsKICAgICBtb2R1bGUuZXhwb3J0cy5zdWJtaXRSZXBvcnQgPSBzdWJtaXRSZXBv
cnQ7CisgICAgbW9kdWxlLmV4cG9ydHMuYXNzZXJ0VGhyb3dzID0gYXNzZXJ0VGhyb3dzOwogfQpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91
cHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdy
b3Vwcy10ZXN0cy5qcwppbmRleCBmM2U4MzNjNTQ0MDQ4MGM3NDEyMTk5MDFlMmRjMGE5MGJmNmJm
ZjRjLi5lZDM1M2FjOTgwNDU4NmQwMWIxOTc0ZjU0OWRiMWI4ZjY1OGY4ZDUzIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10
ZXN0cy5qcwpAQCAtMTYsNiArMTYsNyBAQCBmdW5jdGlvbiBzYW1wbGVUZXN0R3JvdXAoKSB7CiAg
ICAgICAgICAgICAiYXV0aG9yIjogInJuaXdhIiwKICAgICAgICAgICAgICJjcmVhdGVkQXQiOiAx
NDU4Njg4NTE0MDAwLAogICAgICAgICAgICAgImhpZGRlbiI6IGZhbHNlLAorICAgICAgICAgICAg
Im5vdGlmaWVkQXV0aG9yIjogZmFsc2UsCiAgICAgICAgICAgICAiYnVpbGRSZXF1ZXN0cyI6IFsi
MTY5ODUiLCAiMTY5ODYiLCAiMTY5ODciLCAiMTY5ODgiLCAiMTY5ODkiLCAiMTY5OTAiLCAiMTY5
OTEiLCAiMTY5OTIiXSwKICAgICAgICAgICAgICJjb21taXRTZXRzIjogWyI0MjU1IiwgIjQyNTYi
XSwKICAgICAgICAgfV0sCkBAIC0xMzgsNiArMTM5LDQxIEBAIGRlc2NyaWJlKCdUZXN0R3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisgICAgZGVzY3JpYmUoJ2Rp
ZE5vdGlmeUF1dGhvcicsICgpID0+IHsKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBNb2NrUmVt
b3RlQVBJLmluamVjdCgnaHR0cHM6Ly9wZXJmLndlYmtpdC5vcmcnLCAnbm9kZScpOworICAgICAg
ICBiZWZvcmVFYWNoKCgpID0+IHsKKyAgICAgICAgICAgIFByaXZpbGVnZWRBUEkuY29uZmlndXJl
KCd0ZXN0JywgJ3Bhc3N3b3JkJyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
dXBkYXRlIG5vdGlmaWVkIGF1dGhvciBmbGFnJywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAg
Y29uc3QgZmV0Y2hQcm9taXNlID0gVGVzdEdyb3VwLmZldGNoRm9yVGFzaygxMzc2KTsKKyAgICAg
ICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlVGVzdEdyb3VwKCkpOworICAgICAgICAg
ICAgbGV0IHRlc3RHcm91cHMgPSBhd2FpdCBmZXRjaFByb21pc2U7CisgICAgICAgICAgICBhc3Nl
cnQodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgbGV0IHRlc3RHcm91cCA9IHRl
c3RHcm91cHNbMF07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5vdGlmaWVk
QXV0aG9yKCksIGZhbHNlKTsKKworICAgICAgICAgICAgY29uc3QgdXBkYXRlUHJvbWlzZSA9IHRl
c3RHcm91cC5kaWROb3RpZnlBdXRob3IoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLm1l
dGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmws
ICcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge2dyb3VwOiAnMjEyOCcsIG5vdGlmaWVkQXV0
aG9yOiB0cnVlLCBzbGF2ZU5hbWU6ICd0ZXN0Jywgc2xhdmVQYXNzd29yZDogJ3Bhc3N3b3JkJ30p
OworICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSgpOworCisgICAgICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sy
XS51cmwsICcvYXBpL3Rlc3QtZ3JvdXBzLzIxMjgnKTsKKyAgICAgICAgICAgIGNvbnN0IHVwZGF0
ZWRUZXN0R3JvdXAgPSBzYW1wbGVUZXN0R3JvdXAoKTsKKyAgICAgICAgICAgIHVwZGF0ZWRUZXN0
R3JvdXAudGVzdEdyb3Vwc1swXS5ub3RpZmllZEF1dGhvciA9IHRydWU7CisgICAgICAgICAgICBy
ZXF1ZXN0c1syXS5yZXNvbHZlKHVwZGF0ZWRUZXN0R3JvdXApOworCisgICAgICAgICAgICB0ZXN0
R3JvdXBzID0gYXdhaXQgdXBkYXRlUHJvbWlzZTsKKyAgICAgICAgICAgIHRlc3RHcm91cCA9IHRl
c3RHcm91cHNbMF07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5vdGlmaWVk
QXV0aG9yKCksIHRydWUpOworICAgICAgICB9KTsKKyAgICB9KTsKKwogICAgIGRlc2NyaWJlKCdf
Y3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICBpdCgnc2hvdWxkIGNyZWF0ZSB0ZXN0IGdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHZhciBncm91cHMgPSBUZXN0R3JvdXAuX2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdy
b3VwcyhzYW1wbGVUZXN0R3JvdXAoKSk7CkBAIC0xNDgsNiArMTg0LDcgQEAgZGVzY3JpYmUoJ1Rl
c3RHcm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5p
ZCgpLCAyMTI4KTsKICAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5jcmVhdGVkQXQoKSBpbnN0
YW5jZW9mIERhdGUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlzSGlkZGVuKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5ub3RpZmllZEF1dGhvcigp
LCBmYWxzZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2dyb3VwLmNyZWF0ZWRBdCgpLCAx
NDU4Njg4NTE0MDAwKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgc2FtcGxlVGVzdEdyb3VwKClbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGggLyAyKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5oYXNQZW5kaW5nKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341254</attachid>
            <date>2018-05-24 23:45:43 -0700</date>
            <delta_ts>2018-05-29 11:56:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184340-20180524234542.patch</filename>
            <type>text/plain</type>
            <size>127908</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMTQ0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBjOTU0M2ZmMDhkY2Y5ZTNjODVhMTcwZjk1ZTJiNGVlM2U4ODYzYzA2Li40MjNhZjJkNDA1
MTYxYWRhMTZiZWU1ZmYwMWUxYzYxYmU4ZGM0Nzc2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMTAgQEAKKzIwMTgtMDUtMjQgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgc2VuZGluZyBub3RpZmljYXRpb24gZmVhdHVy
ZSB3aGVuIHRlc3QgZ3JvdXAgZmluaXNoZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCAndGVzdGdyb3VwX2hhc19wZW5kaW5nX25vdGlmaWNh
dGlvbicgZmlsZWQgdG8gJ2FuYWx5c2lzX3Rlc3RfZ3JvdXAnIHRhYmxlIHRvIGluZGljYXRlIHdo
ZXRoZXIgYSB0ZXN0IGdyb3VwCisgICAgICAgIGhhcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uLlNR
TCBxdWVyeSB0byB1cGRhdGUgZXhpc3RpbmcgZGF0YWJhc2UgaXM6CisgICAgICAgICAgICAnQUxU
RVIgVEFCTEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgQUREIENPTFVNTiB0ZXN0Z3JvdXBfaGFzX3Bl
bmRpbmdfbm90aWZpY2F0aW9uIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRTsnCisgICAg
ICAgIFVwZGF0ZWQgJ3J1bi1hbmFseXNpcycgc2NyaXB0IHRvIGJlIGFibGUgdG8gc2VuZCBub3Rp
ZmljYXRpb24gd2hlbiB0ZXN0IGdyb3VwIGZpbmlzaGVzLgorICAgICAgICBBZGRlZCAnTm90aWZ5
IG9uIGNvbXBsZXRpb24nIGNoZWNrYm94IHdoaWxlIGNyZWF0aW5nL3JldHJ5aW5nL2Jpc2VjdGlu
ZyBhIHRlc3QgZ3JvdXAuCisKKyAgICAgICAgKiBicm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9y
bS10ZXN0cy5qczogVXBkYXRlZCBleGlzdGluZyB0ZXN0cyBhbmQgYWRkZWQgYSBuZXcgdGVzdC4K
KyAgICAgICAgKiBpbml0LWRhdGFiYXNlLnNxbDogQWRkZWQgJ3Rlc3Rncm91cF9oYXNfcGVuZGlu
Z19ub3RpZmljYXRpb24nIGZpbGVkIHRvICdhbmFseXNpc190ZXN0X2dyb3VwJyB0YWJsZS4KKyAg
ICAgICAgKiBwdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocDogQWRkZWQgJ2FsbC13aXRoLXBlbmRp
bmctbm90aWZpY2F0aW9uJyBBUEkgdG8gJ3Rlc3QtZ3JvdXAnIHRvIHNob3cgYWxsCisgICAgICAg
IHRlc3QgZ3JvdXBzIHRoYXQgbmVlZCB0byBzZW5kIG5vdGlmaWNhdGlvbi4gT25seSB0aGUgb25l
cyB3aXRoICdjb21wbGV0ZWQnLCAnZmFpbGVkJyBvciAnY2FuY2VsbGVkJyBzdGF0dXMgYW5kIGl0
cworICAgICAgICAndGVzdGdyb3VwX2hhc19wZW5kaW5nX25vdGlmaWNhdGlvbicgaXMgdHJ1ZSB3
aWxsIGJlIHJldHVybmVkIGJ5IHRoaXMgQVBJLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2J1
aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwOiBBZGRlZCAnZmV0Y2hfcmVxdWVzdHNfZm9yX2dyb3Vw
cycgdG8gcmV0dXJuIHRlc3QgZ3JvdXBzIHdpdGggZ2l2ZW4gaWRzLgorICAgICAgICAqIHB1Ymxp
Yy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwOiBVcGRhdGVkIHRoZSBsb2dpYyB0byBz
dXBwb3J0IHNldHRpbmcgJ3Rlc3Rncm91cF9oYXNfcGVuZGluZ19ub3RpZmljYXRpb24nCisgICAg
ICAgIHdoaWxlIGNyZWF0ZSBhbiBhbmFseXNpc190ZXN0X2dyb3Vwcy4KKyAgICAgICAgKiBwdWJs
aWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwOiBVcGRhdGVkIHRoZSBs
b2dpYyB0byBzdXBwb3J0IHNldHRpbmcgJ3Rlc3Rncm91cF9oYXNfcGVuZGluZ19ub3RpZmljYXRp
b24nLgorICAgICAgICAqIHB1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5w
aHA6IFVwZGF0ZWQgdGhlIGxvZ2ljIHRvIHN1cHBvcnQgc2V0dGluZyAndGVzdGdyb3VwX2hhc19w
ZW5kaW5nX25vdGlmaWNhdGlvbicuCisgICAgICAgICogcHVibGljL3ByaXZpbGVnZWQtYXBpL3Vw
ZGF0ZS10ZXN0LWdyb3VwLnBocDogVXBkYXRlZCB0aGUgbG9naWMgdG8gc3VwcG9ydCB1cGRhdGlu
ZyAndGVzdGdyb3VwX2hhc19wZW5kaW5nX25vdGlmaWNhdGlvbicuCisgICAgICAgIEV4dGVuZGVk
IHRoaXMgQVBJIHRvIGFsbG93IGF1dGhlbnRpY2F0aW9uIGJvdGggZnJvbSBDU1JGIHRva2VuIGFu
ZCBzbGF2ZS4KKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJh
dGlvbi10ZXN0LWdyb3VwLWZvcm0uanM6CisgICAgICAgIChDdXN0b21Db25maWd1cmF0aW9uVGVz
dEdyb3VwRm9ybS5wcm90b3R5cGUuc3RhcnRUZXN0aW5nKTogUGFzcyAnbm90aWZ5T25Db21wbGV0
aW9uJyBpbmZvcm1hdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAgICAgICd0ZXN0Z3JvdXBfaGFz
X3BlbmRpbmdfbm90aWZpY2F0aW9uJyBmcm9tIEFQSSBwZXJzcGVjdGl2ZS4KKyAgICAgICAgKiBw
dWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzOgorICAg
ICAgICAoQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuc3RhcnRUZXN0aW5nKTog
UGFzcyAnbm90aWZ5T25Db21wbGV0aW9uJyBpbmZvcm1hdGlvbiB3aGljaCByZXByZXNlbnRzCisg
ICAgICAgICd0ZXN0Z3JvdXBfaGFzX3BlbmRpbmdfbm90aWZpY2F0aW9uJyBmcm9tIEFQSSBwZXJz
cGVjdGl2ZS4KKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0uY3NzVGVtcGxhdGUp
OiBBZGRlZCBzcGFjZSBiZXR3ZWVuICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hlY2tib3ggYW5k
IHRlc3QgZ3JvdXAgaXRlcmF0aW9uIHNlbGVjdGlvbiBsaXN0LgorICAgICAgICAqIHB1YmxpYy92
My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qczoKKyAgICAgICAgKFRlc3RHcm91cEZvcm0p
OiBBZGRlZCAnX25vdGlmeU9uQ29tcGxldGlvbicgaW5zdGFuY2UgdmFyaWFibGUuCisgICAgICAg
IChUZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKTogQWRkZWQg
J29uY2hhbmdlJyBldmVudCBmb3Igbm90aWZ5IG9uIGNvbXBsZXRpb24gY2hlY2tib3guCisgICAg
ICAgIChUZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5zdGFydFRlc3RpbmcpOiBQYXNzICdub3RpZnlP
bkNvbXBsZXRpb24nIGluZm9ybWF0aW9uIHdoaWNoIHJlcHJlc2VudHMKKyAgICAgICAgJ3Rlc3Rn
cm91cF9oYXNfcGVuZGluZ19ub3RpZmljYXRpb24nIGZyb20gQVBJIHBlcnNwZWN0aXZlLgorICAg
ICAgICAoVGVzdEdyb3VwRm9ybS5jc3NUZW1wbGF0ZSk6IEFkZGVkIHNwYWNlIGJldHdlZW4gJ05v
dGlmeSBvbiBjb21wbGV0aW9uJyBjaGVja2JveCBhbmQgdGVzdCBncm91cCBpdGVyYXRpb24gc2Vs
ZWN0aW9uIGxpc3QuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1bHRz
LmpzOiBFeHBvcnQgJ0FuYWx5c2lzUmVzdWx0cycuCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMu
ZmV0Y2gpOiBVcGRhdGUgQVBJIHBhdGggdG8gdXNlIGFic29sdXRlIHVybC4KKyAgICAgICAgKEFu
YWx5c2lzUmVzdWx0cyk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNr
LmpzOgorICAgICAgICAoQW5hbHlzaXNUYXNrLmFzeW5jLmNyZWF0ZSk6IEV4dGVuZCB0aGlzIGZ1
bmN0aW9uIHRvIHRha2Ugbm90aWZ5T25Db21wbGV0aW9uIGFzIGFyZ3VtZW50IHdoaWNoIHdpbGwg
YmUgdXNlZCBhcworICAgICAgICAnaGFzUGVuZGluZ05vdGlmaWNhdGlvbicgdG8gc2VuZCB0byBz
ZXJ2ZXIuCisgICAgICAgIChBbmFseXNpc1Rhc2spOgorICAgICAgICAqIHB1YmxpYy92My9tb2Rl
bHMvdGVzdC1ncm91cC5qczoKKyAgICAgICAgKFRlc3RHcm91cCk6IEFkZGVkICdfaGFzUGVuZGlu
Z05vdGlmaWNhdGlvbicgZmllbGQuCisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLnVwZGF0
ZVNpbmdsZXRvbik6IEFkZGVkIGxvZ2ljIHRvIHVwZGF0ZSAnX2hhc1BlbmRpbmdOb3RpZmljYXRp
b24nIGZpZWxkLgorICAgICAgICAoVGVzdEdyb3VwLnByb3RvdHlwZS5oYXNQZW5kaW5nTm90aWZp
Y2F0aW9uKTogUmV0dXJucyAnX2hhc1BlbmRpbmdOb3RpZmljYXRpb24nIGZpZWxkLgorICAgICAg
ICAoVGVzdEdyb3VwLnByb3RvdHlwZS5hdXRob3IpOiBSZXR1cm5zIGF1dGhvciBpbmZvcm1hdGlv
bi4KKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5cGUuYXN5bmMuZGlkU2VuZE5vdGlmaWNhdGlv
bik6IEFQSSB0aGF0IHVwZGF0ZXMgJ3Rlc3Rncm91cF9oYXNfcGVuZGluZ19ub3RpZmljYXRpb24n
IHRvIHRydWUuCisgICAgICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2spOiBVcGRhdGVkIHRo
aXMgZnVuY3Rpb24gdG8gYWNjZXB0ICdub3RpZnlPbkNvbXBsZXRpb24nIHdoaWNoIHdpbGwgYmUg
dXNlZCBhcworICAgICAgICAnaGFzUGVuZGluZ05vdGlmaWNhdGlvbicgdG8gc2VuZCB0byBzZXJ2
ZXIuCisgICAgICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24pOiBV
cGRhdGVkIHRoaXMgZnVuY3Rpb24gdG8gYWNjZXB0ICdub3RpZnlPbkNvbXBsZXRpb24nIHdoaWNo
IHdpbGwgYmUgdXNlZCBhcworICAgICAgICAnaGFzUGVuZGluZ05vdGlmaWNhdGlvbicgdG8gc2Vu
ZCB0byBzZXJ2ZXIuCisgICAgICAgIChUZXN0R3JvdXAuY3JlYXRlQW5kUmVmZXRjaFRlc3RHcm91
cHMpOiBVcGRhdGVkIHRoaXMgZnVuY3Rpb24gdG8gYWNjZXB0ICdub3RpZnlPbkNvbXBsZXRpb24n
IHdoaWNoIHdpbGwgYmUgdXNlZCBhcworICAgICAgICAnaGFzUGVuZGluZ05vdGlmaWNhdGlvbicg
dG8gc2VuZCB0byBzZXJ2ZXIuCisgICAgICAgIChUZXN0R3JvdXAuZmV0Y2hBbGxXaXRoUGVuZGlu
Z05vdGlmaWNhdGlvbik6IE5ldyBmdW5jdGlvbiB0aGF0IGludm9rZXMgJy9hcGkvdGVzdC1ncm91
cHMucGhwP2FsbC13aXRoLXBlbmRpbmctbm90aWZpY2F0aW9uJy4KKyAgICAgICAgKiBwdWJsaWMv
djMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzOiBVcGRhdGUgbG9naWMgdG8gJ25vdGlmeU9u
Q29tcGxldGlvbicgYXJvdW5kCisgICAgICAgIChBbmFseXNpc1Rhc2tDaGFydFBhbmUucHJvdG90
eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAoQW5hbHlzaXNUYXNrUmVzdWx0
c1BhbmUucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAoQW5hbHlz
aXNUYXNrVGVzdEdyb3VwUGFuZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6Cisg
ICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVl
KToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9yZXRyeUN1cnJlbnRUZXN0
R3JvdXApOgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuYXN5bmMuX2Jpc2Vj
dEN1cnJlbnRUZXN0R3JvdXApOgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUu
X2NyZWF0ZVRlc3RHcm91cEFmdGVyVmVyaWZ5aW5nQ29tbWl0U2V0TGlzdC5zZXQgY29uc3QpOgor
ICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuX2NyZWF0ZVRlc3RHcm91cEFmdGVy
VmVyaWZ5aW5nQ29tbWl0U2V0TGlzdCk6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3Rv
dHlwZS5fY3JlYXRlQ3VzdG9tVGVzdEdyb3VwKToKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMv
Y2hhcnQtcGFuZS5qczogQWRkZWQgJ05vdGlmeSBvbiBjb21wbGV0aW9uJyBjaGVja2JveC4KKyAg
ICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6CisgICAg
ICAgIChDaGFydFBhbmUucHJvdG90eXBlLmFzeW5jLl9hbmFseXplUmFuZ2UpOgorICAgICAgICAq
IHB1YmxpYy92My9wYWdlcy9jcmVhdGUtYW5hbHlzaXMtdGFzay1wYWdlLmpzOiBBZGFwdGVkIEFQ
SSBjaGFuZ2UuCisgICAgICAgIChDcmVhdGVBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fY3Jl
YXRlQW5hbHlzaXNUYXNrV2l0aEdyb3VwKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXRl
c3QtZ3JvdXBzLmpzOiBBZGRlZCB0ZXN0cyBmb3IgJy9hcGkvdGVzdC1ncm91cHMvYWxsLXdpdGgt
cGVuZGluZy1ub3RpZmljYXRpb24nLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBsb2Fk
LXJvb3QtdGVzdHMuanM6IFVwZGF0ZWQgdGVzdHMgdG8gYWRhcHQgdGhpcyBjaGFuZ2UuCisgICAg
ICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRl
c3RzLmpzOiBVcGRhdGVkIHRlc3RzIHRvIGFkYXB0IHRoaXMgY2hhbmdlLgorICAgICAgICBBZGRl
ZCBuZXcgdGVzdHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0
ZS10ZXN0LWdyb3VwLXRlc3RzLmpzOiBVcGRhdGVkIHRlc3RzIHRvIGFkYXB0IHRoaXMgY2hhbmdl
LgorICAgICAgICBBZGRlZCBuZXcgdGVzdHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzOiBBZGRlZCB1bml0IHRlc3QgZm9y
ICd1cGRhdGUtdGVzdC1ncm91cCcgQVBJLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvbW9jay1kYXRhLmpzOiBhZGRNb2NrRGF0YSBzaG91bGQgc2V0ICd0ZXN0Z3JvdXBfaGFzX3Bl
bmRpbmdfbm90aWZpY2F0aW9uJyB0byBiZSB0cnVlLgorICAgICAgICAqIHNlcnZlci10ZXN0cy90
b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzOiBVcGRhdGVkIHRlc3RzIHRv
IGFkYXB0IHRoaXMgY2hhbmdlLgorICAgICAgICAoYXN5bmMuY3JlYXRlVGVzdEdyb3VwV2loUGF0
Y2gpOgorICAgICAgICAoY3JlYXRlVGVzdEdyb3VwV2loT3duZWRDb21taXQpOgorICAgICAgICAq
IHRvb2xzL2pzL2VtYWlsLW5vdGlmaWVyLmpzOiBBZGRlZCBlbWFpbCBub3RpZmllciB0byBzZW5k
IGVtYWlsIG5vdGlmaWNhdGlvbiBmb3IgY29tcGxldGVkIHRlc3QgZ3JvdXBzLgorICAgICAgICAo
RW1haWxOb3RpZmllcik6CisgICAgICAgIChFbWFpbE5vdGlmaWVyLnByb3RvdHlwZS5hc3luYy5z
ZW5kTm90aWZpY2F0aW9uc0ZvclRlc3RHcm91cHMpOiBCdWlsZHMgZW1haWwgYm9keSwgZGV0ZXJt
aW5lcyByZWNpcGllbnRzIGFuZAorICAgICAgICBzZW5kcyBlbWFpbCBmb3IgZWFjaCB0ZXN0IGdy
b3VwLgorICAgICAgICAoRW1haWxOb3RpZmllci5wcm90b3R5cGUuYXN5bmMuX2RldGVybWluZVJl
Y2lwaWVudHNGb3JUZXN0R3JvdXApOiBCYXNlIG9uIGNvbmZpZ3VyYXRpb24sIHJldHVybnMgYSBs
aXN0IG9mIHJlY2lwaWVudHMuCisgICAgICAgIChFbWFpbE5vdGlmaWVyLl9idWlsZE1hdGNoaW5n
RnVuY3Rpb25CeUVtYWlsR3JvdXApOiBCdWlsZCBlbWFpbCBncm91cCBtYXRjaGluZyBmdW5jdGlv
bnMuCisgICAgICAgIChFbWFpbE5vdGlmaWVyLl9jaGFyYWN0ZXJSZWZlcmVuY2UpOiBVc2UgY2hh
cmFjdGVyIHJlZmVyZW5jZSBmb3IgJzwnLCAnPicgYW5kICciJy4KKyAgICAgICAgKEVtYWlsTm90
aWZpZXIucHJvdG90eXBlLmFzeW5jLl9tZXNzYWdlRm9yVGVzdEdyb3VwKTogQnVpbGQgZW1haWwg
Ym9keSBmb3IgYSB0ZXN0IGdyb3VwLgorICAgICAgICAoRW1haWxOb3RpZmllci5fVVJMRm9yQW5h
bHlzaXNUYXNrKTogUmV0dXJucyBVUkwgZm9yIGFuIGFuYWx5c2lzIHRhc2suCisgICAgICAgIChF
bWFpbE5vdGlmaWVyLnByb3RvdHlwZS5hc3luYy5fc2VuZEVtYWlsKTogSW52b2tlIGVtYWlsIEFQ
SSB0byBzZW5kIG5vdGlmaWNhdGlvbi4KKyAgICAgICAgKEVtYWlsTm90aWZpZXIuX2luc3RhbnRp
YXRlTm90aWZpY2F0aW9uVGVtcGxhdGUpOgorICAgICAgICAqIHRvb2xzL2pzL21lYXN1cmVtZW50
LXNldC1hbmFseXplci5qczogQWRhcHRlZCAnQW5hbHlzaXNUYXNrLmNyZWF0ZScgY2hhbmdlLgor
ICAgICAgICAoTWVhc3VyZW1lbnRTZXRBbmFseXplci5wcm90b3R5cGUuYXN5bmMuX2FuYWx5emVN
ZWFzdXJlbWVudFNldCk6CisgICAgICAgIChNZWFzdXJlbWVudFNldEFuYWx5emVyKToKKyAgICAg
ICAgKiB0b29scy9qcy92My1tb2RlbHMuanM6CisgICAgICAgICogdG9vbHMvcnVuLWFuYWx5c2lz
LmpzOiBBZGRlZCB0aGUgbG9naWMgdGhhdCBzZW5kcyBub3RpZmljYXRpb24gZm9yIGNvbXBsZXRl
ZCB0ZXN0IGdyb3Vwcy4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAoYXN5bmMuYW5hbHlzaXNM
b29wKToKKyAgICAgICAgKiB1bml0LXRlc3RzL2FuYWx5c2lzLXRhc2stdGVzdHMuanM6CisgICAg
ICAgICogdW5pdC10ZXN0cy9lbWFpbC1ub3RpZmllci10ZXN0cy5qczogQWRkZWQgYSB1bml0IHRl
c3QgZm9yICdFbWFpbCBub3RpZmllcicuCisgICAgICAgICogdW5pdC10ZXN0cy9tZWFzdXJlbWVu
dC1zZXQtYW5hbHl6ZXItdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cyBwZXIgdGhpcyBjaGFu
Z2UuCisgICAgICAgICogdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qczogQWRkZWQgdW5p
dCB0ZXN0cyBmb3IgJ1Rlc3RHcm91cC5oYXNQZW5kaW5nTm90aWZpY2F0aW9uJy4KKwogMjAxOC0w
NS0yMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBPU0J1aWxk
RmV0Y2hlciBzaG91bGQgcmVzcGVjdCBtYXhSZXZpc2lvbiB3aGlsZSBmaW5kaW5nIE9TIGJ1aWxk
cyB0byByZXBvcnQuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nl
ci10ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvYnJvd3Nlci10ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMKaW5kZXggMjY1MzU2NzI4
NDlhMTlkZGZkZmY5MmI0NTk4Nzk1M2IwZGU4MGQ3Mi4uMTE2NDA0MDQxYjQ5ZDQxZjVmYTBhMGRh
MTk4ZmU2OWIxNTFmOWUyZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jy
b3dzZXItdGVzdHMvdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwpAQCAtMTgs
NyArMTgsNyBAQCBkZXNjcmliZSgnVGVzdEdyb3VwRm9ybVRlc3RzJywgKCkgPT4gewogICAgICAg
ICAgICAgdGVzdEdyb3VwRm9ybS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKC4uLmFy
Z3MpID0+IGNhbGxzLnB1c2goYXJncykpOwogICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5l
cWwoe30pOwogICAgICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24n
KS5jbGljaygpOwotICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XV0pOworICAg
ICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMjksMTIgKzI5LDMxIEBAIGRlc2NyaWJlKCdUZXN0R3JvdXBGb3JtVGVz
dHMnLCAoKSA9PiB7CiAgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmxpc3RlblRvQWN0aW9uKCdz
dGFydFRlc3RpbmcnLCAoLi4uYXJncykgPT4gY2FsbHMucHVzaChhcmdzKSk7CiAgICAgICAgICAg
ICBleHBlY3QoY2FsbHMpLnRvLmVxbCh7fSk7CiAgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmNv
bnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7Ci0gICAgICAgICAgICBleHBlY3QoY2FsbHMp
LnRvLmVxbChbWzRdXSk7CisgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRy
dWVdXSk7CiAgICAgICAgICAgICBjb25zdCBjb3VudEZvcm0gPSB0ZXN0R3JvdXBGb3JtLmNvbnRl
bnQoJ3JlcGV0aXRpb24tY291bnQnKTsKICAgICAgICAgICAgIGNvdW50Rm9ybS52YWx1ZSA9ICc2
JzsKLSAgICAgICAgICAgIGNvdW50Rm9ybS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdl
JykpOyAKKyAgICAgICAgICAgIGNvdW50Rm9ybS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hh
bmdlJykpOwogICAgICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24n
KS5jbGljaygpOwotICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XSwgWzZdXSk7
CisgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRydWVdLCBbNiwgdHJ1ZV1d
KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgnbXVzdCB1cGRhdGUgIm5vdGlmeSBv
biBjb21wbGV0aW9uIiB3aGVuIGl0IGlzIHVuY2hlY2tlZCcsICgpID0+IHsKKyAgICAgICAgY29u
c3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZVRlc3RHcm91cEZvcm1XaXRoQ29udGV4dChjb250ZXh0KS50aGVuKCh0ZXN0R3JvdXBGb3JtKSA9
PiB7CisgICAgICAgICAgICBjb25zdCBjYWxscyA9IFtdOworICAgICAgICAgICAgdGVzdEdyb3Vw
Rm9ybS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKC4uLmFyZ3MpID0+IGNhbGxzLnB1
c2goYXJncykpOworICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoe30pOworICAgICAg
ICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24nKS5jbGljaygpOworICAg
ICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOworICAgICAgICAgICAg
Y29uc3QgY291bnRGb3JtID0gdGVzdEdyb3VwRm9ybS5jb250ZW50KCdyZXBldGl0aW9uLWNvdW50
Jyk7CisgICAgICAgICAgICBjb3VudEZvcm0udmFsdWUgPSAnNic7CisgICAgICAgICAgICBjb3Vu
dEZvcm0uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKKyAgICAgICAgICAgIGNv
bnN0IG5vdGlmeU9uQ29tcGxldGlvbkNoZWNrYm94ID0gdGVzdEdyb3VwRm9ybS5jb250ZW50KCdu
b3RpZnktb24tY29tcGxldGlvbi1jaGVja2JveCcpOworICAgICAgICAgICAgbm90aWZ5T25Db21w
bGV0aW9uQ2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOworICAgICAgICAgICAgbm90aWZ5T25Db21w
bGV0aW9uQ2hlY2tib3guZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKKyAgICAg
ICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgnc3RhcnQtYnV0dG9uJykuY2xpY2soKTsKKyAg
ICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNCwgdHJ1ZV0sIFs2LCBmYWxzZV1dKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU3LDEwICs3NiwxMCBAQCBkZXNjcmliZSgnVGVz
dEdyb3VwRm9ybVRlc3RzJywgKCkgPT4gewogICAgICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0u
bGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsICguLi5hcmdzKSA9PiBjYWxscy5wdXNoKGFy
Z3MpKTsKICAgICAgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbCh7fSk7CiAgICAgICAg
ICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCkucXVlcnlTZWxlY3RvcignYnV0dG9uJyku
Y2xpY2soKTsKLSAgICAgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzRdXSk7Cisg
ICAgICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOwogICAgICAg
ICAgICAgICAgIHRlc3RHcm91cEZvcm0uc2V0UmVwZXRpdGlvbkNvdW50KDgpOwogICAgICAgICAg
ICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLmNs
aWNrKCk7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XSwgWzhdXSk7
CisgICAgICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXSwgWzgsIHRy
dWVdXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggYzQ3NDJlN2I2ZGMzZWE4MDVi
MDM5ZTBkMTg3NzVjNTJmMmY3ZDA2Ny4uY2U0NDAxNDlkOTQzMzMxZTU4ZDYzYjRlMjliYTMyYWM2
MjZmMjY2MyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJh
c2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApA
QCAtMjc5LDYgKzI3OSw3IEBAIENSRUFURSBUQUJMRSBhbmFseXNpc190ZXN0X2dyb3VwcyAoCiAg
ICAgdGVzdGdyb3VwX2F1dGhvciB2YXJjaGFyKDI1NiksCiAgICAgdGVzdGdyb3VwX2NyZWF0ZWRf
YXQgdGltZXN0YW1wIE5PVCBOVUxMIERFRkFVTFQgKENVUlJFTlRfVElNRVNUQU1QIEFUIFRJTUUg
Wk9ORSAnVVRDJyksCiAgICAgdGVzdGdyb3VwX2hpZGRlbiBib29sZWFuIE5PVCBOVUxMIERFRkFV
TFQgRkFMU0UsCisgICAgdGVzdGdyb3VwX2hhc19wZW5kaW5nX25vdGlmaWNhdGlvbiBib29sZWFu
IE5PVCBOVUxMIERFRkFVTFQgRkFMU0UsCiAgICAgQ09OU1RSQUlOVCB0ZXN0Z3JvdXBfbmFtZV9t
dXN0X2JlX3VuaXF1ZV9mb3JfZWFjaF90YXNrIFVOSVFVRSh0ZXN0Z3JvdXBfdGFzaywgdGVzdGdy
b3VwX25hbWUpKTsKIENSRUFURSBJTkRFWCB0ZXN0Z3JvdXBfdGFza19pbmRleCBPTiBhbmFseXNp
c190ZXN0X2dyb3Vwcyh0ZXN0Z3JvdXBfdGFzayk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocCBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocAppbmRleCA0MmRkZDMwOTM1MDlk
ZDJmNGFkNjMwZTg0ZTRkM2EwNWU3YjA5NjFjLi5hNGZlNDMyZTE2MzRmNTI5YzFkNzIzYzE3ZWJj
ZDUxNmI2YjY4YzllIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2FwaS90ZXN0LWdyb3Vwcy5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9hcGkvdGVzdC1ncm91cHMucGhwCkBAIC0xMyw3ICsxMywyNSBAQCBmdW5jdGlvbiBtYWluKCRw
YXRoKSB7CiAKICAgICAkYnVpbGRfcmVxdWVzdHNfZmV0Y2hlciA9IG5ldyBCdWlsZFJlcXVlc3Rz
RmV0Y2hlcigkZGIpOwogCi0gICAgaWYgKGNvdW50KCRwYXRoKSA+IDAgJiYgJHBhdGhbMF0pIHsK
KyAgICBpZiAoY291bnQoJHBhdGgpID4gMCAmJiAkcGF0aFswXSA9PSAnYWxsLXdpdGgtcGVuZGlu
Zy1ub3RpZmljYXRpb24nKSB7CisgICAgICAgICR0ZXN0X2dyb3VwcyA9ICRkYi0+cXVlcnlfYW5k
X2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBhbmFseXNpc190ZXN0X2dyb3VwcworICAgICAgICAg
IFdIRVJFIEVYSVNUUyhTRUxFQ1QgMSBGUk9NIGJ1aWxkX3JlcXVlc3RzCisgICAgICAgICAgICBX
SEVSRSByZXF1ZXN0X2dyb3VwID0gdGVzdGdyb3VwX2lkCisgICAgICAgICAgICAgIEFORCByZXF1
ZXN0X3N0YXR1cyBJTiAoXCdwZW5kaW5nXCcsIFwnc2NoZWR1bGVkXCcsIFwncnVubmluZ1wnKSkg
SVMgRkFMU0UKKyAgICAgICAgICBBTkQgdGVzdGdyb3VwX2hhc19wZW5kaW5nX25vdGlmaWNhdGlv
biBJUyBUUlVFIGFuZCB0ZXN0Z3JvdXBfaGlkZGVuIElTIEZBTFNFJyk7CisgICAgICAgICR0ZXN0
X2dyb3VwX2lkX2xpc3QgPSBhcnJheSgpOworICAgICAgICBmb3JlYWNoKCR0ZXN0X2dyb3VwcyBh
cyAkZ3JvdXApCisgICAgICAgICAgICBhcnJheV9wdXNoKCR0ZXN0X2dyb3VwX2lkX2xpc3QsICRn
cm91cFsndGVzdGdyb3VwX2lkJ10pOworCisgICAgICAgIGlmICghY291bnQoJHRlc3RfZ3JvdXBf
aWRfbGlzdCkpCisgICAgICAgICAgICBleGl0X3dpdGhfc3VjY2VzcyhhcnJheSgndGVzdEdyb3Vw
cycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0cycgPT4gYXJyYXko
KSwKKyAgICAgICAgICAgICAgICAnY29tbWl0U2V0cycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAg
ICAgICAnY29tbWl0cycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICAgICAndXBsb2FkZWRGaWxl
cycgPT4gYXJyYXkoKSkpOworCisgICAgICAgICRidWlsZF9yZXF1ZXN0c19mZXRjaGVyLT5mZXRj
aF9yZXF1ZXN0c19mb3JfZ3JvdXBzKCR0ZXN0X2dyb3VwX2lkX2xpc3QpOworICAgIH0gZWxzZWlm
IChjb3VudCgkcGF0aCkgPiAwICYmICRwYXRoWzBdKSB7CiAgICAgICAgICRncm91cF9pZCA9IGlu
dHZhbCgkcGF0aFswXSk7CiAgICAgICAgICRncm91cCA9ICRkYi0+c2VsZWN0X2ZpcnN0X3Jvdygn
YW5hbHlzaXNfdGVzdF9ncm91cHMnLCAndGVzdGdyb3VwJywgYXJyYXkoJ2lkJyA9PiAkZ3JvdXBf
aWQpKTsKICAgICAgICAgaWYgKCEkZ3JvdXApCkBAIC02NSw2ICs4Myw3IEBAIGZ1bmN0aW9uIGZv
cm1hdF90ZXN0X2dyb3VwKCRncm91cF9yb3cpIHsKICAgICAgICAgJ2F1dGhvcicgPT4gJGdyb3Vw
X3Jvd1sndGVzdGdyb3VwX2F1dGhvciddLAogICAgICAgICAnY3JlYXRlZEF0JyA9PiBzdHJ0b3Rp
bWUoJGdyb3VwX3Jvd1sndGVzdGdyb3VwX2NyZWF0ZWRfYXQnXSkgKiAxMDAwLAogICAgICAgICAn
aGlkZGVuJyA9PiBEYXRhYmFzZTo6aXNfdHJ1ZSgkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfaGlkZGVu
J10pLAorICAgICAgICAnaGFzUGVuZGluZ05vdGlmaWNhdGlvbicgPT4gRGF0YWJhc2U6OmlzX3Ry
dWUoJGdyb3VwX3Jvd1sndGVzdGdyb3VwX2hhc19wZW5kaW5nX25vdGlmaWNhdGlvbiddKSwKICAg
ICAgICAgJ2J1aWxkUmVxdWVzdHMnID0+IGFycmF5KCksCiAgICAgICAgICdjb21taXRTZXRzJyA9
PiBhcnJheSgpLAogICAgICk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAKaW5k
ZXggMjdmMDI0MDdkYTc0OTE3NThkZWRhZTA4M2Y0YzM0MGMxYjM2ZGEzMS4uODAyZTBhYzMzYWE5
ZGEzNGVhNjE3MWI3NDA2Njk4ZTJjZGE4ZjZmOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1m
ZXRjaGVyLnBocApAQCAtMzAsNiArMzAsMTMgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0c0ZldGNoZXIg
ewogICAgICAgICAgICAgJHJvd1sndGFza19pZCddID0gJHRhc2tfaWQ7CiAgICAgfQogCisgICAg
ZnVuY3Rpb24gZmV0Y2hfcmVxdWVzdHNfZm9yX2dyb3VwcygkdGVzdF9ncm91cF9pZF9saXN0KSB7
CisgICAgICAgICR0aGlzLT5yb3dzID0gJHRoaXMtPmRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdT
RUxFQ1QgKiwgdGVzdGdyb3VwX3Rhc2sgYXMgdGFza19pZAorICAgICAgICAgICAgRlJPTSBidWls
ZF9yZXF1ZXN0cywgYW5hbHlzaXNfdGVzdF9ncm91cHMKKyAgICAgICAgICAgIFdIRVJFIHJlcXVl
c3RfZ3JvdXAgPSB0ZXN0Z3JvdXBfaWQgQU5EIHRlc3Rncm91cF9pZCA9IEFOWSgkMSkKKyAgICAg
ICAgICAgIE9SREVSIEJZIHJlcXVlc3RfZ3JvdXAsIHJlcXVlc3Rfb3JkZXInLCBhcnJheSgneycg
LiBpbXBsb2RlKCcsICcsICR0ZXN0X2dyb3VwX2lkX2xpc3QpIC4gJ30nKSk7CisgICAgfQorCiAg
ICAgZnVuY3Rpb24gZmV0Y2hfaW5jb21wbGV0ZV9yZXF1ZXN0c19mb3JfdHJpZ2dlcmFibGUoJHRy
aWdnZXJhYmxlX2lkKSB7CiAgICAgICAgICR0aGlzLT5yb3dzID0gJHRoaXMtPmRiLT5xdWVyeV9h
bmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiwgdGVzdF9ncm91cHMudGVzdGdyb3VwX3Rhc2sgYXMgdGFz
a19pZCBGUk9NIGJ1aWxkX3JlcXVlc3RzLAogICAgICAgICAgICAgKFNFTEVDVCB0ZXN0Z3JvdXBf
aWQsIHRlc3Rncm91cF90YXNrLCAoY2FzZSB3aGVuIHRlc3Rncm91cF9hdXRob3IgaXMgbm90IG51
bGwgdGhlbiAwIGVsc2UgMSBlbmQpIGFzIGF1dGhvcl9vcmRlciwgdGVzdGdyb3VwX2NyZWF0ZWRf
YXQKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9j
b21taXQtc2V0cy1oZWxwZXJzLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
aW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocAppbmRleCBhN2FkYzRmOGEzMmQ3NmY1YmU0
NTdiYjczN2VkZGYxNGVkZmE4YjIyLi4zMzY5NDIzZWUwNjkxZjkzYWRiNGM5YjFlNmFhNzcwYmM1
YzFmYmE0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwCkBAIC00LDEyICs0LDEyIEBA
IHJlcXVpcmVfb25jZSgncmVwb3NpdG9yeS1ncm91cC1maW5kZXIucGhwJyk7CiByZXF1aXJlX29u
Y2UoJ2NvbW1pdC1sb2ctZmV0Y2hlci5waHAnKTsKIAogIyBGSVhNRTogU2hvdWxkIGNyZWF0ZSBh
IGhlbHBlciBjbGFzcyBmb3IgYmVsb3cgMyBoZWxwZXIgZnVuY3Rpb25zIHRvIGF2b2lkIHBhc3Np
bmcgbG9uZyBhcmd1bWVudCBsaXN0LgotZnVuY3Rpb24gY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1
aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9zZXRzLCAkdGFza19pZCwgJG5hbWUsICRhdXRob3Is
ICR0cmlnZ2VyYWJsZV9pZCwgJHBsYXRmb3JtX2lkLCAkdGVzdF9pZCwgJHJlcGV0aXRpb25fY291
bnQpIHsKK2Z1bmN0aW9uIGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9yZXF1ZXN0cygkZGIs
ICRjb21taXRfc2V0cywgJHRhc2tfaWQsICRuYW1lLCAkYXV0aG9yLCAkdHJpZ2dlcmFibGVfaWQs
ICRwbGF0Zm9ybV9pZCwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50LCAkaGFzX3BlbmRpbmdf
bm90aWZpY2F0aW9uKSB7CiAKICAgICBsaXN0ICgkYnVpbGRfY29uZmlndXJhdGlvbl9saXN0LCAk
dGVzdF9jb25maWd1cmF0aW9uX2xpc3QpID0gaW5zZXJ0X2NvbW1pdF9zZXRzX2FuZF9jb25zdHJ1
Y3RfY29uZmlndXJhdGlvbl9saXN0KCRkYiwgJGNvbW1pdF9zZXRzKTsKIAogICAgICRncm91cF9p
ZCA9ICRkYi0+aW5zZXJ0X3JvdygnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCAndGVzdGdyb3VwJywK
LSAgICAgICAgYXJyYXkoJ3Rhc2snID0+ICR0YXNrX2lkLCAnbmFtZScgPT4gJG5hbWUsICdhdXRo
b3InID0+ICRhdXRob3IpKTsKKyAgICAgICAgYXJyYXkoJ3Rhc2snID0+ICR0YXNrX2lkLCAnbmFt
ZScgPT4gJG5hbWUsICdhdXRob3InID0+ICRhdXRob3IsICdoYXNfcGVuZGluZ19ub3RpZmljYXRp
b24nID0+ICRoYXNfcGVuZGluZ19ub3RpZmljYXRpb24pKTsKIAogICAgICRidWlsZF9jb3VudCA9
IGNvdW50KCRidWlsZF9jb25maWd1cmF0aW9uX2xpc3QpOwogICAgICRvcmRlciA9IC0kYnVpbGRf
Y291bnQ7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwCmluZGV4
IDk0MGY4MGI5N2EwNWNiYWZhMDQ1N2QzOWQxMzczMGQyNjZmOGZjZjkuLjVjOWMwODg3MmNlMmRl
YjE0M2QyY2RkYzhiMzMxM2NiZGQ0NjE1MjUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LWFuYWx5c2lzLXRhc2sucGhwCkBAIC0xMCw2ICsxMCw3IEBAIGZ1bmN0aW9uIG1haW4oKSB7CiAg
ICAgJGF1dGhvciA9IHJlbW90ZV91c2VyX25hbWUoJGRhdGEpOwogICAgICRuYW1lID0gYXJyYXlf
Z2V0KCRkYXRhLCAnbmFtZScpOwogICAgICRyZXBldGl0aW9uX2NvdW50ID0gYXJyYXlfZ2V0KCRk
YXRhLCAncmVwZXRpdGlvbkNvdW50Jyk7CisgICAgJGhhc19wZW5kaW5nX25vdGlmaWNhdGlvbiA9
IGFycmF5X2dldCgkZGF0YSwgJ2hhc1BlbmRpbmdOb3RpZmljYXRpb24nLCBGYWxzZSk7CiAgICAg
JHRlc3RfZ3JvdXBfbmFtZSA9IGFycmF5X2dldCgkZGF0YSwgJ3Rlc3RHcm91cE5hbWUnKTsKICAg
ICAkcmV2aXNpb25fc2V0X2xpc3QgPSBhcnJheV9nZXQoJGRhdGEsICdyZXZpc2lvblNldHMnKTsK
IApAQCAtODQsNyArODUsNyBAQCBmdW5jdGlvbiBtYWluKCkgewogICAgICAgICAkdHJpZ2dlcmFi
bGVfaWQgPSAkdHJpZ2dlcmFibGVbJ2lkJ107CiAgICAgICAgICR0ZXN0X2lkID0gJHRyaWdnZXJh
YmxlWyd0ZXN0J107CiAgICAgICAgICRjb21taXRfc2V0cyA9IGNvbW1pdF9zZXRzX2Zyb21fcmV2
aXNpb25fc2V0cygkZGIsICR0cmlnZ2VyYWJsZV9pZCwgJHJldmlzaW9uX3NldF9saXN0KTsKLSAg
ICAgICAgY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9z
ZXRzLCAkdGFza19pZCwgJHRlc3RfZ3JvdXBfbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lk
LCAkY29uZmlnWydjb25maWdfcGxhdGZvcm0nXSwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50
KTsKKyAgICAgICAgY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNv
bW1pdF9zZXRzLCAkdGFza19pZCwgJHRlc3RfZ3JvdXBfbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJh
YmxlX2lkLCAkY29uZmlnWydjb25maWdfcGxhdGZvcm0nXSwgJHRlc3RfaWQsICRyZXBldGl0aW9u
X2NvdW50LCAkaGFzX3BlbmRpbmdfbm90aWZpY2F0aW9uKTsKICAgICB9CiAKICAgICAkZGItPmNv
bW1pdF90cmFuc2FjdGlvbigpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHAgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBo
cAppbmRleCA1NmI0NzU1OGY4MGQzZmVkOGRhMjljOTMyYWFkODZkNzk2NWQ4OTU4Li4zNWM3YWY3
YzcyZDRlYWNiOGFjNTllM2ZjNzAxNmU0MzUwNDViNzE2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBo
cAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwLnBocApAQCAtMTgsNiArMTgsNyBAQCBmdW5jdGlvbiBtYWluKCkKICAg
ICAkdGFza19pZCA9IGFycmF5X2dldCgkYXJndW1lbnRzLCAndGFzaycpOwogICAgICR0YXNrX25h
bWUgPSBhcnJheV9nZXQoJGRhdGEsICd0YXNrTmFtZScpOwogICAgICRyZXBldGl0aW9uX2NvdW50
ID0gJGFyZ3VtZW50c1sncmVwZXRpdGlvbkNvdW50J107CisgICAgJGhhc19wZW5kaW5nX25vdGlm
aWNhdGlvbiA9IGFycmF5X2dldCgkZGF0YSwgJ2hhc1BlbmRpbmdOb3RpZmljYXRpb24nLCBGYWxz
ZSk7CiAgICAgJHBsYXRmb3JtX2lkID0gYXJyYXlfZ2V0KCRkYXRhLCAncGxhdGZvcm0nKTsKICAg
ICAkdGVzdF9pZCA9IGFycmF5X2dldCgkZGF0YSwgJ3Rlc3QnKTsKICAgICAkcmV2aXNpb25fc2V0
X2xpc3QgPSBhcnJheV9nZXQoJGRhdGEsICdyZXZpc2lvblNldHMnKTsKQEAgLTg1LDcgKzg2LDcg
QEAgZnVuY3Rpb24gbWFpbigpCiAgICAgaWYgKCR0YXNrX25hbWUpCiAgICAgICAgICR0YXNrX2lk
ID0gJGRiLT5pbnNlcnRfcm93KCdhbmFseXNpc190YXNrcycsICd0YXNrJywgYXJyYXkoJ25hbWUn
ID0+ICR0YXNrX25hbWUsICdhdXRob3InID0+ICRhdXRob3IpKTsKIAotICAgICRncm91cF9pZCA9
IGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9yZXF1ZXN0cygkZGIsICRjb21taXRfc2V0cywg
JHRhc2tfaWQsICRuYW1lLCAkYXV0aG9yLCAkdHJpZ2dlcmFibGVfaWQsICRwbGF0Zm9ybV9pZCwg
JHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50KTsKKyAgICAkZ3JvdXBfaWQgPSBjcmVhdGVfdGVz
dF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAk
bmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lkLCAk
cmVwZXRpdGlvbl9jb3VudCwgJGhhc19wZW5kaW5nX25vdGlmaWNhdGlvbik7CiAKICAgICAkZGIt
PmNvbW1pdF90cmFuc2FjdGlvbigpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocCBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3Jv
dXAucGhwCmluZGV4IGRiMWVkMzgzOTJhNTcyMDFjYzA3NjUyOGU0OGE0OTY4ZDIwZTllZTguLmJl
YThjNWE2YWU4ZGIxNTJmNzk4ZWQ1M2E0YmUyNDg5NjljODg5NDUgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3Jv
dXAucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1h
cGkvdXBkYXRlLXRlc3QtZ3JvdXAucGhwCkBAIC0zLDcgKzMsOCBAQAogcmVxdWlyZV9vbmNlKCcu
Li9pbmNsdWRlL2pzb24taGVhZGVyLnBocCcpOwogCiBmdW5jdGlvbiBtYWluKCkgewotICAgICRk
YXRhID0gZW5zdXJlX3ByaXZpbGVnZWRfYXBpX2RhdGFfYW5kX3Rva2VuKCk7CisgICAgJGRiID0g
Y29ubmVjdCgpOworICAgICRkYXRhID0gZW5zdXJlX3ByaXZpbGVnZWRfYXBpX2RhdGFfYW5kX3Rv
a2VuX29yX3NsYXZlKCRkYik7CiAKICAgICAkdGVzdF9ncm91cF9pZCA9IGFycmF5X2dldCgkZGF0
YSwgJ2dyb3VwJyk7CiAgICAgaWYgKCEkdGVzdF9ncm91cF9pZCkKQEAgLTE3LDEwICsxOCwxMSBA
QCBmdW5jdGlvbiBtYWluKCkgewogICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdoaWRkZW4nLCAk
ZGF0YSkpCiAgICAgICAgICR2YWx1ZXNbJ2hpZGRlbiddID0gRGF0YWJhc2U6OnRvX2RhdGFiYXNl
X2Jvb2xlYW4oJGRhdGFbJ2hpZGRlbiddKTsKIAorICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdo
YXNQZW5kaW5nTm90aWZpY2F0aW9uJywgJGRhdGEpKQorICAgICAgICAkdmFsdWVzWydoYXNfcGVu
ZGluZ19ub3RpZmljYXRpb24nXSA9IERhdGFiYXNlOjp0b19kYXRhYmFzZV9ib29sZWFuKCRkYXRh
WydoYXNQZW5kaW5nTm90aWZpY2F0aW9uJ10pOworCiAgICAgaWYgKCEkdmFsdWVzKQogICAgICAg
ICBleGl0X3dpdGhfZXJyb3IoJ05vdGhpbmdUb1VwZGF0ZScpOwotCi0gICAgJGRiID0gY29ubmVj
dCgpOwogICAgICRkYi0+YmVnaW5fdHJhbnNhY3Rpb24oKTsKIAogICAgIGlmICghJGRiLT51cGRh
dGVfcm93KCdhbmFseXNpc190ZXN0X2dyb3VwcycsICd0ZXN0Z3JvdXAnLCBhcnJheSgnaWQnID0+
ICR0ZXN0X2dyb3VwX2lkKSwgJHZhbHVlcykpIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJhdGlvbi10ZXN0
LWdyb3VwLWZvcm0uanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvY3VzdG9tLWNvbmZpZ3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzCmluZGV4IDU4ZWJi
YWFkYzhjZTU2MjdkZjA2MjZkZTgwMzA5OTM5NGUyMzdiODAuLjJhMmI4NjdmNWZiMzYyMjhmNWQ4
YmE2MDUwMTY4ODcwMjg5YjM0ZjYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJhdGlvbi10ZXN0LWdyb3VwLWZv
cm0uanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qcwpAQCAtMzgsNyArMzgsNyBA
QCBjbGFzcyBDdXN0b21Db25maWd1cmF0aW9uVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91
cEZvcm0gewogICAgICAgICBjb25zdCBjb21taXRTZXRzID0gY29uZmlndXJhdG9yLmNvbW1pdFNl
dHMoKTsKICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBjb25maWd1cmF0b3IucGxhdGZvcm0oKTsK
ICAgICAgICAgY29uc3QgdGVzdCA9IGNvbmZpZ3VyYXRvci50ZXN0cygpWzBdOyAvLyBGSVhNRTog
QWRkIHRoZSBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIG11bHRpcGxlIHRlc3RzLgotICAgICAgICB0
aGlzLmRpc3BhdGNoQWN0aW9uKCdzdGFydFRlc3RpbmcnLCB0aGlzLl9yZXBldGl0aW9uQ291bnQs
IHRlc3RHcm91cE5hbWUsIGNvbW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0LCB0YXNrTmFtZSk7Cisg
ICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRp
b25Db3VudCwgdGVzdEdyb3VwTmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRlc3QsIHRhc2tO
YW1lLCB0aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24pOwogICAgIH0KIAogICAgIGRpZENvbnN0cnVj
dFNoYWRvd1RyZWUoKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3Qt
Z3JvdXAtZm9ybS5qcwppbmRleCA1M2VmN2Y3ZjU3NzM4M2FkY2IyZTZjMjNhYzgwNjE1YzdmODRj
YjFkLi4yMDQ0MWMxMThiM2Q5ZWQxNTlhYTlkN2Q3Y2RmZDk3OWQ1MjE1OTUxIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXph
YmxlLXRlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcwpAQCAtMjUs
NyArMjUsNyBAQCBjbGFzcyBDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdy
b3VwRm9ybSB7CiAKICAgICBzdGFydFRlc3RpbmcoKQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNw
YXRjaEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCB0aGlzLl9u
YW1lLCB0aGlzLl9jb21wdXRlQ29tbWl0U2V0TWFwKCkpOworICAgICAgICB0aGlzLmRpc3BhdGNo
QWN0aW9uKCdzdGFydFRlc3RpbmcnLCB0aGlzLl9yZXBldGl0aW9uQ291bnQsIHRoaXMuX25hbWUs
IHRoaXMuX2NvbXB1dGVDb21taXRTZXRNYXAoKSwgdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uKTsK
ICAgICB9CiAKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKQEAgLTI4Niw2ICsyODYsMTAg
QEAgY2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91cEZvcm0g
ewogICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgICAgICAgfQogCisgICAgICAg
ICAgICAjY3VzdG9taXplLWxpbmstY29udGFpbmVyIHsKKyAgICAgICAgICAgICAgICBtYXJnaW4t
bGVmdDogMC40cmVtOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAjY3VzdG9tLXRhYmxl
Om5vdCg6ZW1wdHkpIHsKICAgICAgICAgICAgICAgICBtYXJnaW46IDFyZW0gMDsKICAgICAgICAg
ICAgIH0KQEAgLTMyMCw2ICszMjQsMTAgQEAgY2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9y
bSBleHRlbmRzIFRlc3RHcm91cEZvcm0gewogICAgICAgICAgICAgI2N1c3RvbS10YWJsZSB0aCB7
CiAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAjbm90aWZ5LW9uLWNvbXBsZXRpb24tY2hlY2tib3ggeworICAgICAgICAgICAg
ICAgIG1hcmdpbi1sZWZ0OiAwLjRyZW07CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBgOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggYzQ0YjY2ZmEwNWQw
YTYyNDIyN2Y2YmFjNTM5MDFlYzc0ODQwYjRkNS4uYTQzZWRmMzUwOGJjZjA3NDYyNWRiOTk2NGY2
MDRkZTE4MDgyOTY0ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzCkBAIC01LDYg
KzUsNyBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAg
ewogICAgICAgICBzdXBlcihuYW1lIHx8ICd0ZXN0LWdyb3VwLWZvcm0nKTsKICAgICAgICAgdGhp
cy5fcmVwZXRpdGlvbkNvdW50ID0gNDsKKyAgICAgICAgdGhpcy5fbm90aWZ5T25Db21wbGV0aW9u
ID0gdHJ1ZTsKICAgICB9CiAKICAgICBzZXRSZXBldGl0aW9uQ291bnQoY291bnQpCkBAIC0xOCwx
MyArMTksMTUgQEAgY2xhc3MgVGVzdEdyb3VwRm9ybSBleHRlbmRzIENvbXBvbmVudEJhc2Ugewog
ICAgICAgICBjb25zdCByZXBldGl0aW9uQ291bnRTZWxlY3QgPSB0aGlzLmNvbnRlbnQoJ3JlcGV0
aXRpb24tY291bnQnKTsKICAgICAgICAgcmVwZXRpdGlvbkNvdW50U2VsZWN0Lm9uY2hhbmdlID0g
KCkgPT4gewogICAgICAgICAgICAgdGhpcy5fcmVwZXRpdGlvbkNvdW50ID0gcmVwZXRpdGlvbkNv
dW50U2VsZWN0LnZhbHVlOwotICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGNvbnN0IG5v
dGlmeU9uQ29tcGxldGlvbkNoZWNrQm94ID0gdGhpcy5jb250ZW50KCdub3RpZnktb24tY29tcGxl
dGlvbi1jaGVja2JveCcpOworICAgICAgICBub3RpZnlPbkNvbXBsZXRpb25DaGVja0JveC5vbmNo
YW5nZSA9ICgpID0+IHRoaXMuX25vdGlmeU9uQ29tcGxldGlvbiA9IG5vdGlmeU9uQ29tcGxldGlv
bkNoZWNrQm94LmNoZWNrZWQ7CiAgICAgICAgIHRoaXMuY29udGVudCgnZm9ybScpLm9uc3VibWl0
ID0gdGhpcy5jcmVhdGVFdmVudEhhbmRsZXIoKCkgPT4gdGhpcy5zdGFydFRlc3RpbmcoKSk7CiAg
ICAgfQogCiAgICAgc3RhcnRUZXN0aW5nKCkKICAgICB7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hB
Y3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRpb25Db3VudCk7CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRpb25Db3VudCwg
dGhpcy5fbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICB9CiAKICAgICBzdGF0aWMgaHRtbFRlbXBs
YXRlKCkKQEAgLTM4LDYgKzQxLDExIEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0ZW5kcyBDb21w
b25lbnRCYXNlIHsKICAgICAgICAgICAgIDpob3N0IHsKICAgICAgICAgICAgICAgICBkaXNwbGF5
OiBibG9jazsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgI25vdGlmeS1vbi1jb21wbGV0
aW9uLWNoZWNrYm94IHsKKyAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOworICAg
ICAgICAgICAgICAgIHdpZHRoOiAxcmVtOworICAgICAgICAgICAgfQogICAgICAgICBgOwogICAg
IH0KIApAQCAtNTgsNiArNjYsNyBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9u
ZW50QmFzZSB7CiAgICAgICAgICAgICAgICAgPG9wdGlvbj4xMDwvb3B0aW9uPgogICAgICAgICAg
ICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICBpdGVyYXRpb25zIHBlciBzZXQKKyAgICAgICAgICAg
IDxpbnB1dCBpZD0ibm90aWZ5LW9uLWNvbXBsZXRpb24tY2hlY2tib3giIHR5cGU9ImNoZWNrYm94
IiBjaGVja2VkLz5Ob3RpZnkgb24gY29tcGxldGlvbgogICAgICAgICBgOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlz
aXMtcmVzdWx0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxz
L2FuYWx5c2lzLXJlc3VsdHMuanMKaW5kZXggZDA0OGJlZWQ2ZDJhMGNmZmQ5MTE2ZjkyZGE5MjJk
NmEwYWY4YTk1Mi4uMjU5NTUzY2NiYjQxZTFlMWQ1ZTg4ZjNmNWFlMDBhM2IwZWE5NGFiYSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlz
aXMtcmVzdWx0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy9hbmFseXNpcy1yZXN1bHRzLmpzCkBAIC04NCw3ICs4NCw3IEBAIGNsYXNzIEFuYWx5c2lz
UmVzdWx0cyB7CiAgICAgc3RhdGljIGZldGNoKHRhc2tJZCkKICAgICB7CiAgICAgICAgIHRhc2tJ
ZCA9IHBhcnNlSW50KHRhc2tJZCk7Ci0gICAgICAgIHJldHVybiBSZW1vdGVBUEkuZ2V0SlNPTldp
dGhTdGF0dXMoYC4uL2FwaS9tZWFzdXJlbWVudC1zZXQ/YW5hbHlzaXNUYXNrPSR7dGFza0lkfWAp
LnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBSZW1vdGVBUEkuZ2V0
SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0P2FuYWx5c2lzVGFzaz0ke3Rhc2tJ
ZH1gKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogCiAgICAgICAgICAgICBJbnN0cnVtZW50
YXRpb24uc3RhcnRNZWFzdXJpbmdUaW1lKCdBbmFseXNpc1Jlc3VsdHMnLCAnZmV0Y2gnKTsKIApA
QCAtMTE2LDMgKzExNiw4IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0c1ZpZXcgewogICAgICAgICBy
ZXR1cm4gdGhpcy5fcmVzdWx0cy5maW5kUmVzdWx0KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIHRo
aXMuX21ldHJpYy5pZCgpKTsKICAgICB9CiB9CisKKworaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1
bmRlZmluZWQnKSB7CisgICAgbW9kdWxlLmV4cG9ydHMuQW5hbHlzaXNSZXN1bHRzID0gQW5hbHlz
aXNSZXN1bHRzOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNr
LmpzCmluZGV4IDVkYjQ1MjQyODk1ZTJjNGExZTE0NGI5ZmIzNDE1M2I0YTgzMzE5ZTkuLmY1MDVj
ODVhZGVkYjI4NDAyNTc0YmJjNDU1YjZjNjNhN2ExN2JiZGYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5q
cwpAQCAtMzAzLDcgKzMwMyw3IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRP
YmplY3QgewogICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICB9CiAKLSAgICBzdGF0aWMgYXN5
bmMgY3JlYXRlKG5hbWUsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCB0ZXN0R3JvdXBOYW1lPW51bGws
IHJlcGV0aXRpb25Db3VudD0wKQorICAgIHN0YXRpYyBhc3luYyBjcmVhdGUobmFtZSwgc3RhcnRQ
b2ludCwgZW5kUG9pbnQsIHRlc3RHcm91cE5hbWU9bnVsbCwgcmVwZXRpdGlvbkNvdW50PTAsIG5v
dGlmeU9uQ29tcGxldGlvbj1mYWxzZSkKICAgICB7CiAgICAgICAgIGNvbnN0IHBhcmFtZXRlcnMg
PSB7bmFtZSwgc3RhcnRSdW46IHN0YXJ0UG9pbnQuaWQsIGVuZFJ1bjogZW5kUG9pbnQuaWR9Owog
ICAgICAgICBpZiAodGVzdEdyb3VwTmFtZSkgewpAQCAtMzExLDYgKzMxMSw3IEBAIGNsYXNzIEFu
YWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICAgICAgcGFyYW1ldGVy
c1sncmV2aXNpb25TZXRzJ10gPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMo
W3N0YXJ0UG9pbnQuY29tbWl0U2V0KCksIGVuZFBvaW50LmNvbW1pdFNldCgpXSk7CiAgICAgICAg
ICAgICBwYXJhbWV0ZXJzWydyZXBldGl0aW9uQ291bnQnXSA9IHJlcGV0aXRpb25Db3VudDsKICAg
ICAgICAgICAgIHBhcmFtZXRlcnNbJ3Rlc3RHcm91cE5hbWUnXSA9IHRlc3RHcm91cE5hbWU7Cisg
ICAgICAgICAgICBwYXJhbWV0ZXJzWydoYXNQZW5kaW5nTm90aWZpY2F0aW9uJ10gPSBub3RpZnlP
bkNvbXBsZXRpb247CiAgICAgICAgIH0KICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHBhcmFtZXRl
cnMpOwogICAgICAgICByZXR1cm4gQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXNwb25zZS50YXNr
SWQsIHRydWUpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvdGVzdC1ncm91cC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKaW5kZXggMDMxN2UwNWE5NzllYTcyY2VjMDZhMGQ4MjBm
ZDdlODFhYjQyMjZjNC4uM2M3NzlhMGJiYzMwNWIxYzA1YmE1MjZmYWQyOTVjYjYzZTU3ZmZhNCAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVz
dC1ncm91cC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy90ZXN0LWdyb3VwLmpzCkBAIC05LDYgKzksNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBM
YWJlbGVkT2JqZWN0IHsKICAgICAgICAgdGhpcy5fYXV0aG9yTmFtZSA9IG9iamVjdC5hdXRob3I7
CiAgICAgICAgIHRoaXMuX2NyZWF0ZWRBdCA9IG5ldyBEYXRlKG9iamVjdC5jcmVhdGVkQXQpOwog
ICAgICAgICB0aGlzLl9pc0hpZGRlbiA9IG9iamVjdC5oaWRkZW47CisgICAgICAgIHRoaXMuX2hh
c1BlbmRpbmdOb3RpZmljYXRpb24gPSBvYmplY3QuaGFzUGVuZGluZ05vdGlmaWNhdGlvbjsKICAg
ICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0cyA9IFtdOwogICAgICAgICB0aGlzLl9vcmRlckJ1aWxk
UmVxdWVzdHNMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24oKC4uLmJ1aWxkUmVx
dWVzdHMpID0+IHsKICAgICAgICAgICAgIHJldHVybiBidWlsZFJlcXVlc3RzLnNvcnQoKGEsIGIp
ID0+IGEub3JkZXIoKSAtIGIub3JkZXIoKSk7CkBAIC0zMCwxMiArMzEsMTUgQEAgY2xhc3MgVGVz
dEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRo
aXMuX3BsYXRmb3JtID09IG9iamVjdC5wbGF0Zm9ybSk7CiAKICAgICAgICAgdGhpcy5faXNIaWRk
ZW4gPSBvYmplY3QuaGlkZGVuOworICAgICAgICB0aGlzLl9oYXNQZW5kaW5nTm90aWZpY2F0aW9u
ID0gb2JqZWN0Lmhhc1BlbmRpbmdOb3RpZmljYXRpb247CiAgICAgfQogCiAgICAgdGFzaygpIHsg
cmV0dXJuIEFuYWx5c2lzVGFzay5maW5kQnlJZCh0aGlzLl90YXNrSWQpOyB9CiAgICAgY3JlYXRl
ZEF0KCkgeyByZXR1cm4gdGhpcy5fY3JlYXRlZEF0OyB9CiAgICAgaXNIaWRkZW4oKSB7IHJldHVy
biB0aGlzLl9pc0hpZGRlbjsgfQogICAgIGJ1aWxkUmVxdWVzdHMoKSB7IHJldHVybiB0aGlzLl9i
dWlsZFJlcXVlc3RzOyB9CisgICAgaGFzUGVuZGluZ05vdGlmaWNhdGlvbigpIHsgcmV0dXJuIHRo
aXMuX2hhc1BlbmRpbmdOb3RpZmljYXRpb247IH0KKyAgICBhdXRob3IoKSB7IHJldHVybiB0aGlz
Ll9hdXRob3JOYW1lOyB9CiAgICAgYWRkQnVpbGRSZXF1ZXN0KHJlcXVlc3QpCiAgICAgewogICAg
ICAgICB0aGlzLl9idWlsZFJlcXVlc3RzLnB1c2gocmVxdWVzdCk7CkBAIC0xODUsMTEgKzE4OSwy
MiBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgfSk7
CiAgICAgfQogCi0gICAgc3RhdGljIGNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9ybSwg
dGVzdCwgZ3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMpCisgICAgYXN5bmMg
ZGlkU2VuZE5vdGlmaWNhdGlvbigpCisgICAgeworICAgICAgICBjb25zdCBpZCA9IHRoaXMuaWQo
KTsKKyAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3Qt
Z3JvdXAnLCB7CisgICAgICAgICAgICBncm91cDogaWQsCisgICAgICAgICAgICBoYXNQZW5kaW5n
Tm90aWZpY2F0aW9uOiBmYWxzZQorICAgICAgICB9KTsKKyAgICAgICAgY29uc3QgZGF0YSA9IGF3
YWl0IFRlc3RHcm91cC5jYWNoZWRGZXRjaChgL2FwaS90ZXN0LWdyb3Vwcy8ke2lkfWAsIHt9LCB0
cnVlKTsKKyAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5fY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRU
ZXN0R3JvdXBzKGRhdGEpOworICAgIH0KKworICAgIHN0YXRpYyBjcmVhdGVXaXRoVGFzayh0YXNr
TmFtZSwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRT
ZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChj
b21taXRTZXRzLmxlbmd0aCA9PSAyKTsKICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gQ29t
bWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKGNvbW1pdFNldHMpOwotICAgICAgICBj
b25zdCBwYXJhbXMgPSB7dGFza05hbWUsIG5hbWU6IGdyb3VwTmFtZSwgcGxhdGZvcm06IHBsYXRm
b3JtLmlkKCksIHRlc3Q6IHRlc3QuaWQoKSwgcmVwZXRpdGlvbkNvdW50LCByZXZpc2lvblNldHN9
OworICAgICAgICBjb25zdCBwYXJhbXMgPSB7dGFza05hbWUsIG5hbWU6IGdyb3VwTmFtZSwgcGxh
dGZvcm06IHBsYXRmb3JtLmlkKCksIHRlc3Q6IHRlc3QuaWQoKSwgcmVwZXRpdGlvbkNvdW50LCBy
ZXZpc2lvblNldHMsIGhhc1BlbmRpbmdOb3RpZmljYXRpb246ICEhbm90aWZ5T25Db21wbGV0aW9u
fTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywgcGFyYW1zKS50aGVuKChkYXRhKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQW5h
bHlzaXNUYXNrLmZldGNoQnlJZChkYXRhWyd0YXNrSWQnXSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRhc2spID0+IHsKQEAgLTE5NywxNyArMjEyLDE3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRl
bmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY3Jl
YXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24odGFzaywgcGxhdGZvcm0sIHRlc3QsIGdyb3VwTmFt
ZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzKQorICAgIHN0YXRpYyBjcmVhdGVXaXRoQ3Vz
dG9tQ29uZmlndXJhdGlvbih0YXNrLCBwbGF0Zm9ybSwgdGVzdCwgZ3JvdXBOYW1lLCByZXBldGl0
aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAgICBjb25zdCBy
ZXZpc2lvblNldHMgPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0
U2V0cyk7Ci0gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrOiB0YXNrLmlkKCksIG5hbWU6IGdy
b3VwTmFtZSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCksIHRlc3Q6IHRlc3QuaWQoKSwgcmVwZXRp
dGlvbkNvdW50LCByZXZpc2lvblNldHN9OworICAgICAgICBjb25zdCBwYXJhbXMgPSB7dGFzazog
dGFzay5pZCgpLCBuYW1lOiBncm91cE5hbWUsIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0
OiB0ZXN0LmlkKCksIHJlcGV0aXRpb25Db3VudCwgcmV2aXNpb25TZXRzLCBoYXNQZW5kaW5nTm90
aWZpY2F0aW9uOiAhIW5vdGlmeU9uQ29tcGxldGlvbn07CiAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBhcmFtcykudGhlbigoZGF0
YSkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hGb3JUYXNrKGRhdGFbJ3Rhc2tJ
ZCddLCB0cnVlKTsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNyZWF0ZUFuZFJl
ZmV0Y2hUZXN0R3JvdXBzKHRhc2ssIG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cykK
KyAgICBzdGF0aWMgY3JlYXRlQW5kUmVmZXRjaFRlc3RHcm91cHModGFzaywgbmFtZSwgcmVwZXRp
dGlvbkNvdW50LCBjb21taXRTZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewogICAgICAg
ICBjb25zb2xlLmFzc2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKICAgICAgICAgY29uc3Qg
cmV2aXNpb25TZXRzID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKGNvbW1p
dFNldHMpOwpAQCAtMjE2LDYgKzIzMSw3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVs
ZWRPYmplY3QgewogICAgICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAgIHJlcGV0aXRp
b25Db3VudDogcmVwZXRpdGlvbkNvdW50LAogICAgICAgICAgICAgcmV2aXNpb25TZXRzOiByZXZp
c2lvblNldHMsCisgICAgICAgICAgICBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiAhIW5vdGlmeU9u
Q29tcGxldGlvbiwKICAgICAgICAgfSkudGhlbigoZGF0YSkgPT4gdGhpcy5mZXRjaEZvclRhc2so
ZGF0YVsndGFza0lkJ10sIHRydWUpKTsKICAgICB9CiAKQEAgLTIyOSw2ICsyNDUsMTEgQEAgY2xh
c3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHJldHVybiB0aGlz
LmNhY2hlZEZldGNoKCcvYXBpL3Rlc3QtZ3JvdXBzJywge3Rhc2s6IHRhc2tJZH0sIGlnbm9yZUNh
Y2hlKS50aGVuKHRoaXMuX2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3Vwcy5iaW5kKHRo
aXMpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgZmV0Y2hBbGxXaXRoUGVuZGluZ05vdGlmaWNhdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5jYWNoZWRGZXRjaCgnL2FwaS90ZXN0LWdy
b3Vwcy9hbGwtd2l0aC1wZW5kaW5nLW5vdGlmaWNhdGlvbicsIG51bGwsIHRydWUpLnRoZW4odGhp
cy5fY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzLmJpbmQodGhpcykpOworICAgIH0K
KwogICAgIHN0YXRpYyBfY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzKGRhdGEpCiAg
ICAgewogICAgICAgICB2YXIgdGVzdEdyb3VwcyA9IGRhdGFbJ3Rlc3RHcm91cHMnXS5tYXAoZnVu
Y3Rpb24gKHJvdykgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcwppbmRleCA1YWFmMDY4ZjU0
YjUyZGEzOWViZTBhMzI3M2NkOTIxMjEzZDZjNjlkLi4xNGUzYTcyOWFjMDFhZWY0ZjA4OThiNjI5
ZTU4ODZmZjUzYjdhMzE4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcwpAQCAtMjQsOCAr
MjQsOCBAQCBjbGFzcyBBbmFseXNpc1Rhc2tDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNl
IHsKIAogICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQogICAgIHsKLSAgICAgICAgdGhpcy5w
YXJ0KCdmb3JtJykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9uQ291
bnQsIG5hbWUsIGNvbW1pdFNldE1hcCkgPT4gewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEFj
dGlvbignbmV3VGVzdEdyb3VwJywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRNYXAp
OworICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5n
JywgKHJlcGV0aXRpb25Db3VudCwgbmFtZSwgY29tbWl0U2V0TWFwLCBub3RpZnlPbkNvbXBsZXRp
b24pID0+IHsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ25ld1Rlc3RHcm91cCcs
IG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFwLCBub3RpZnlPbkNvbXBsZXRpb24p
OwogICAgICAgICB9KTsKICAgICB9CiAKQEAgLTEwNiw4ICsxMDYsOCBAQCBjbGFzcyBBbmFseXNp
c1Rhc2tSZXN1bHRzUGFuZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICByZXBvc2l0
b3J5UGlja2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHRoaXMuZW5xdWV1ZVRv
UmVuZGVyKCkpOwogICAgICAgICB0aGlzLnBhcnQoJ2NvbW1pdC12aWV3ZXInKS5zZXRTaG93UmVw
b3NpdG9yeU5hbWUoZmFsc2UpOwogCi0gICAgICAgIHRoaXMucGFydCgnZm9ybScpLmxpc3RlblRv
QWN0aW9uKCdzdGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50LCBuYW1lLCBjb21taXRTZXRN
YXApID0+IHsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ25ld1Rlc3RHcm91cCcs
IG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFwKTsKKyAgICAgICAgdGhpcy5wYXJ0
KCdmb3JtJykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9uQ291bnQs
IG5hbWUsIGNvbW1pdFNldE1hcCwgbm90aWZ5T25Db21wbGV0aW9uKSA9PiB7CisgICAgICAgICAg
ICB0aGlzLmRpc3BhdGNoQWN0aW9uKCduZXdUZXN0R3JvdXAnLCBuYW1lLCByZXBldGl0aW9uQ291
bnQsIGNvbW1pdFNldE1hcCwgbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICAgICAgfSk7CiAgICAg
fQogCkBAIC0yNjcsMTQgKzI2NywxNCBAQCBjbGFzcyBBbmFseXNpc1Rhc2tUZXN0R3JvdXBQYW5l
IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpCiAg
ICAgewogICAgICAgICB0aGlzLmNvbnRlbnQoJ2hpZGUtYnV0dG9uJykub25jbGljayA9ICgpID0+
IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3RvZ2dsZVRlc3RHcm91cFZpc2liaWxpdHknLCB0aGlzLl9j
dXJyZW50VGVzdEdyb3VwKTsKLSAgICAgICAgdGhpcy5wYXJ0KCdyZXRyeS1mb3JtJykubGlzdGVu
VG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9uQ291bnQpID0+IHsKLSAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3JldHJ5VGVzdEdyb3VwJywgdGhpcy5fY3VycmVudFRl
c3RHcm91cCwgcmVwZXRpdGlvbkNvdW50KTsKKyAgICAgICAgdGhpcy5wYXJ0KCdyZXRyeS1mb3Jt
JykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9uQ291bnQsIG5vdGlm
eU9uQ29tcGxldGlvbikgPT4geworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmV0
cnlUZXN0R3JvdXAnLCB0aGlzLl9jdXJyZW50VGVzdEdyb3VwLCByZXBldGl0aW9uQ291bnQsIG5v
dGlmeU9uQ29tcGxldGlvbik7CiAgICAgICAgIH0pOwotICAgICAgICB0aGlzLnBhcnQoJ2Jpc2Vj
dC1mb3JtJykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9uQ291bnQp
ID0+IHsKKyAgICAgICAgdGhpcy5wYXJ0KCdiaXNlY3QtZm9ybScpLmxpc3RlblRvQWN0aW9uKCdz
dGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRpb24pID0+IHsK
ICAgICAgICAgICAgIGNvbnN0IGJpc2VjdGluZ0NvbW1pdFNldCA9IHRoaXMuX2Jpc2VjdGluZ0Nv
bW1pdFNldEJ5VGVzdEdyb3VwLmdldCh0aGlzLl9jdXJyZW50VGVzdEdyb3VwKTsKICAgICAgICAg
ICAgIGNvbnN0IFtvbmVDb21taXRTZXQsIGFub3RoZXJDb21taXRTZXRdID0gdGhpcy5fY3VycmVu
dFRlc3RHcm91cC5yZXF1ZXN0ZWRDb21taXRTZXRzKCk7CiAgICAgICAgICAgICBjb25zdCBjb21t
aXRTZXRzID0gW29uZUNvbW1pdFNldCwgYmlzZWN0aW5nQ29tbWl0U2V0LCBhbm90aGVyQ29tbWl0
U2V0XTsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Jpc2VjdFRlc3RHcm91cCcs
IHRoaXMuX2N1cnJlbnRUZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25Db3VudCk7Cisg
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdiaXNlY3RUZXN0R3JvdXAnLCB0aGlzLl9j
dXJyZW50VGVzdEdyb3VwLCBjb21taXRTZXRzLCByZXBldGl0aW9uQ291bnQsIG5vdGlmeU9uQ29t
cGxldGlvbik7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtNTQzLDggKzU0Myw4IEBAIGNsYXNz
IEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICBncm91
cFBhbmUubGlzdGVuVG9BY3Rpb24oJ3Nob3dIaWRkZW5UZXN0R3JvdXBzJywgKCkgPT4gdGhpcy5f
c2hvd0FsbFRlc3RHcm91cHMoKSk7CiAgICAgICAgIGdyb3VwUGFuZS5saXN0ZW5Ub0FjdGlvbign
cmVuYW1lVGVzdEdyb3VwJywgKHRlc3RHcm91cCwgbmV3TmFtZSkgPT4gdGhpcy5fdXBkYXRlVGVz
dEdyb3VwTmFtZSh0ZXN0R3JvdXAsIG5ld05hbWUpKTsKICAgICAgICAgZ3JvdXBQYW5lLmxpc3Rl
blRvQWN0aW9uKCd0b2dnbGVUZXN0R3JvdXBWaXNpYmlsaXR5JywgKHRlc3RHcm91cCkgPT4gdGhp
cy5faGlkZUN1cnJlbnRUZXN0R3JvdXAodGVzdEdyb3VwKSk7Ci0gICAgICAgIGdyb3VwUGFuZS5s
aXN0ZW5Ub0FjdGlvbigncmV0cnlUZXN0R3JvdXAnLCAodGVzdEdyb3VwLCByZXBldGl0aW9uQ291
bnQpID0+IHRoaXMuX3JldHJ5Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIHJlcGV0aXRpb25D
b3VudCkpOwotICAgICAgICBncm91cFBhbmUubGlzdGVuVG9BY3Rpb24oJ2Jpc2VjdFRlc3RHcm91
cCcsICh0ZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25Db3VudCkgPT4gdGhpcy5fYmlz
ZWN0Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25Db3Vu
dCkpOworICAgICAgICBncm91cFBhbmUubGlzdGVuVG9BY3Rpb24oJ3JldHJ5VGVzdEdyb3VwJywg
KHRlc3RHcm91cCwgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRpb24pID0+IHRoaXMu
X3JldHJ5Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5
T25Db21wbGV0aW9uKSk7CisgICAgICAgIGdyb3VwUGFuZS5saXN0ZW5Ub0FjdGlvbignYmlzZWN0
VGVzdEdyb3VwJywgKHRlc3RHcm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50LCBub3Rp
ZnlPbkNvbXBsZXRpb24pID0+IHRoaXMuX2Jpc2VjdEN1cnJlbnRUZXN0R3JvdXAodGVzdEdyb3Vw
LCBjb21taXRTZXRzLCByZXBldGl0aW9uQ291bnQsIG5vdGlmeU9uQ29tcGxldGlvbikpOwogCiAg
ICAgICAgIHRoaXMucGFydCgnY2F1c2UtbGlzdCcpLmxpc3RlblRvQWN0aW9uKCdhZGRJdGVtJywg
KHJlcG9zaXRvcnksIHJldmlzaW9uKSA9PiB7CiAgICAgICAgICAgICB0aGlzLl9hc3NvY2lhdGVD
b21taXQoJ2NhdXNlJywgcmVwb3NpdG9yeSwgcmV2aXNpb24pOwpAQCAtODE5LDE5ICs4MTksMTkg
QEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIF9yZXRyeUN1cnJlbnRUZXN0R3JvdXAodGVzdEdyb3VwLCBy
ZXBldGl0aW9uQ291bnQpCisgICAgX3JldHJ5Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIHJl
cGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKICAgICAgICAgY29uc3Qg
ZXhpc3RpbmdOYW1lcyA9ICh0aGlzLl90ZXN0R3JvdXBzIHx8IFtdKS5tYXAoKGdyb3VwKSA9PiBn
cm91cC5uYW1lKCkpOwogICAgICAgICBjb25zdCBuZXdOYW1lID0gQ29tbWl0U2V0LmNyZWF0ZU5h
bWVXaXRob3V0Q29sbGlzaW9uKHRlc3RHcm91cC5uYW1lKCksIG5ldyBTZXQoZXhpc3RpbmdOYW1l
cykpOwogICAgICAgICBjb25zdCBjb21taXRTZXRMaXN0ID0gdGVzdEdyb3VwLnJlcXVlc3RlZENv
bW1pdFNldHMoKTsKICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSB0aGlzLl90YXNrLnBsYXRmb3Jt
KCkgfHwgdGVzdEdyb3VwLnBsYXRmb3JtKCk7Ci0gICAgICAgIHJldHVybiBUZXN0R3JvdXAuY3Jl
YXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24odGhpcy5fdGFzaywgcGxhdGZvcm0sIHRlc3RHcm91
cC50ZXN0KCksIG5ld05hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TGlzdCkKKyAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlvbih0aGlzLl90
YXNrLCBwbGF0Zm9ybSwgdGVzdEdyb3VwLnRlc3QoKSwgbmV3TmFtZSwgcmVwZXRpdGlvbkNvdW50
LCBjb21taXRTZXRMaXN0LCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgICAgICAgICAudGhlbih0
aGlzLl9kaWRGZXRjaFRlc3RHcm91cHMuYmluZCh0aGlzKSwgZnVuY3Rpb24gKGVycm9yKSB7CiAg
ICAgICAgICAgICBhbGVydCgnRmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyB0ZXN0IGdyb3VwOiAnICsg
ZXJyb3IpOwogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBhc3luYyBfYmlzZWN0Q3VycmVudFRl
c3RHcm91cCh0ZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25Db3VudCkKKyAgICBhc3lu
YyBfYmlzZWN0Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRp
b25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3Nl
cnQodGVzdEdyb3VwLnRhc2soKSk7CiAgICAgICAgIGNvbnN0IGV4aXN0aW5nVGVzdEdyb3VwTmFt
ZXMgPSBuZXcgU2V0KCh0aGlzLl90ZXN0R3JvdXBzIHx8IFtdKS5tYXAoKHRlc3RHcm91cCkgPT4g
dGVzdEdyb3VwLm5hbWUoKSkpOwpAQCAtODQxLDcgKzg0MSw3IEBAIGNsYXNzIEFuYWx5c2lzVGFz
a1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICAgICAgY29uc3QgY3VycmVu
dENvbW1pdFNldCA9IGNvbW1pdFNldHNbaV07CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXBO
YW1lID0gQ29tbWl0U2V0LmNyZWF0ZU5hbWVXaXRob3V0Q29sbGlzaW9uKENvbW1pdFNldC5kaWZm
KHByZXZpb3VzQ29tbWl0U2V0LCBjdXJyZW50Q29tbWl0U2V0KSwgZXhpc3RpbmdUZXN0R3JvdXBO
YW1lcyk7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91
cHMgPSBhd2FpdCBUZXN0R3JvdXAuY3JlYXRlQW5kUmVmZXRjaFRlc3RHcm91cHModGVzdEdyb3Vw
LnRhc2soKSwgdGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBbcHJldmlvdXNDb21taXRT
ZXQsIGN1cnJlbnRDb21taXRTZXRdKTsKKyAgICAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXBz
ID0gYXdhaXQgVGVzdEdyb3VwLmNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRlc3RHcm91cC50
YXNrKCksIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgW3ByZXZpb3VzQ29tbWl0U2V0
LCBjdXJyZW50Q29tbWl0U2V0XSwgbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICAgICAgICAgICAg
ICBhd2FpdCB0aGlzLl9kaWRGZXRjaFRlc3RHcm91cHModGVzdEdyb3Vwcyk7CiAgICAgICAgICAg
ICB9IGNhdGNoKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgYWxlcnQoJ0ZhaWxlZCB0byBjcmVh
dGUgYSBuZXcgdGVzdCBncm91cDogJyArIGVycm9yKTsKQEAgLTg1MCw3ICs4NTAsNyBAQCBjbGFz
cyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgfQog
ICAgIH0KIAotICAgIF9jcmVhdGVUZXN0R3JvdXBBZnRlclZlcmlmeWluZ0NvbW1pdFNldExpc3Qo
dGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRNYXApCisgICAgX2NyZWF0
ZVRlc3RHcm91cEFmdGVyVmVyaWZ5aW5nQ29tbWl0U2V0TGlzdCh0ZXN0R3JvdXBOYW1lLCByZXBl
dGl0aW9uQ291bnQsIGNvbW1pdFNldE1hcCwgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKICAg
ICAgICAgaWYgKHRoaXMuX2hhc0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUodGVzdEdyb3VwTmFtZSkp
IHsKICAgICAgICAgICAgIGFsZXJ0KGBUaGVyZSBpcyBhbHJlYWR5IGEgdGVzdCBncm91cCBuYW1l
ZCAiJHt0ZXN0R3JvdXBOYW1lfSJgKTsKQEAgLTg3NiwxMyArODc2LDEzIEBAIGNsYXNzIEFuYWx5
c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICBmb3IgKGxldCBs
YWJlbCBpbiBjb21taXRTZXRNYXApCiAgICAgICAgICAgICBjb21taXRTZXRzLnB1c2goY29tbWl0
U2V0TWFwW2xhYmVsXSk7CiAKLSAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVBbmRSZWZl
dGNoVGVzdEdyb3Vwcyh0aGlzLl90YXNrLCB0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQs
IGNvbW1pdFNldHMpCisgICAgICAgIHJldHVybiBUZXN0R3JvdXAuY3JlYXRlQW5kUmVmZXRjaFRl
c3RHcm91cHModGhpcy5fdGFzaywgdGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21t
aXRTZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgICAgICAgICAudGhlbih0aGlzLl9kaWRG
ZXRjaFRlc3RHcm91cHMuYmluZCh0aGlzKSwgZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICAg
ICBhbGVydCgnRmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyB0ZXN0IGdyb3VwOiAnICsgZXJyb3IpOwog
ICAgICAgICB9KTsKICAgICB9CiAKLSAgICBfY3JlYXRlQ3VzdG9tVGVzdEdyb3VwKHJlcGV0aXRp
b25Db3VudCwgdGVzdEdyb3VwTmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRlc3QpCisgICAg
X2NyZWF0ZUN1c3RvbVRlc3RHcm91cChyZXBldGl0aW9uQ291bnQsIHRlc3RHcm91cE5hbWUsIGNv
bW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0LCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewogICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl90YXNrLmlzQ3VzdG9tKCkpOwogICAgICAgICBpZiAo
dGhpcy5faGFzRHVwbGljYXRlVGVzdEdyb3VwTmFtZSh0ZXN0R3JvdXBOYW1lKSkgewpAQCAtODkw
LDcgKzg5MCw3IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRp
bmcgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgVGVzdEdyb3Vw
LmNyZWF0ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKHRoaXMuX3Rhc2ssIHBsYXRmb3JtLCB0ZXN0
LCB0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMpCisgICAgICAgIFRl
c3RHcm91cC5jcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlvbih0aGlzLl90YXNrLCBwbGF0Zm9y
bSwgdGVzdCwgdGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzLCBub3Rp
ZnlPbkNvbXBsZXRpb24pCiAgICAgICAgICAgICAudGhlbih0aGlzLl9kaWRGZXRjaFRlc3RHcm91
cHMuYmluZCh0aGlzKSwgZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICAgICBhbGVydCgnRmFp
bGVkIHRvIGNyZWF0ZSBhIG5ldyB0ZXN0IGdyb3VwOiAnICsgZXJyb3IpOwogICAgICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hh
cnQtcGFuZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hh
cnQtcGFuZS5qcwppbmRleCA4Y2Q3YWEwMDQ3ZjdhZGZjY2Q2YmZmNDA0Zjg3NGNlMTM3ZmUzMDcw
Li5jZDc0OGRlYjQ5Y2VlMDk4YjNmNDk2Y2FjODhkMzUyM2Y3M2ZlZjMwIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLmpz
CkBAIC0xMTksNyArMTE5LDggQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFz
ZSB7CiAgICAgICAgIH0pOwogICAgICAgICBjb25zdCBjcmVhdGVXaXRoVGVzdEdyb3VwQ2hlY2ti
b3ggPSB0aGlzLmNvbnRlbnQoJ2NyZWF0ZS13aXRoLXRlc3QtZ3JvdXAnKTsKICAgICAgICAgY29u
c3QgcmVwZXRpdGlvbkNvdW50ID0gdGhpcy5jb250ZW50KCdjb25maXJtLXJlcGV0aXRpb24nKTsK
LSAgICAgICAgY3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94Lm9uY2hhbmdlID0gKCkgPT4gcmVw
ZXRpdGlvbkNvdW50LmRpc2FibGVkID0gIWNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2JveC5jaGVj
a2VkOworICAgICAgICBjb25zdCBub3RpZnlPbkNvbXBsZXRpb24gPSB0aGlzLmNvbnRlbnQoJ25v
dGlmeS1vbi1jb21wbGV0aW9uJyk7CisgICAgICAgIGNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2Jv
eC5vbmNoYW5nZSA9ICgpID0+IHJlcGV0aXRpb25Db3VudC5kaXNhYmxlZCA9IG5vdGlmeU9uQ29t
cGxldGlvbi5kaXNhYmxlZCA9ICFjcmVhdGVXaXRoVGVzdEdyb3VwQ2hlY2tib3guY2hlY2tlZDsK
ICAgICB9CiAKICAgICBzZXJpYWxpemVTdGF0ZSgpCkBAIC0yMzcsMTAgKzIzOCwxMSBAQCBjbGFz
cyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgY29uc3QgbmFtZSA9
IHRoaXMuY29udGVudCgndGFzay1uYW1lJykudmFsdWU7CiAgICAgICAgIGNvbnN0IGNyZWF0ZVdp
dGhUZXN0R3JvdXAgPSB0aGlzLmNvbnRlbnQoJ2NyZWF0ZS13aXRoLXRlc3QtZ3JvdXAnKS5jaGVj
a2VkOwogICAgICAgICBjb25zdCByZXBldGl0aW9uQ291bnQgPSB0aGlzLmNvbnRlbnQoJ2NvbmZp
cm0tcmVwZXRpdGlvbicpLnZhbHVlOworICAgICAgICBjb25zdCBub3RpZnlPbkNvbXBsZXRpb24g
PSB0aGlzLmNvbnRlbnQoJ25vdGlmeS1vbi1jb21wbGV0aW9uJykuY2hlY2tlZDsKIAogICAgICAg
ICB0cnkgewogICAgICAgICAgICAgY29uc3QgYW5hbHlzaXNUYXNrID0gYXdhaXQgKGNyZWF0ZVdp
dGhUZXN0R3JvdXAgPwotICAgICAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUobmFtZSwg
c3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywgcmVwZXRpdGlvbkNvdW50KSA6IEFuYWx5
c2lzVGFzay5jcmVhdGUobmFtZSwgc3RhcnRQb2ludCwgZW5kUG9pbnQpKTsKKyAgICAgICAgICAg
ICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKG5hbWUsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29u
ZmlybScsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKSA6IEFuYWx5c2lzVGFz
ay5jcmVhdGUobmFtZSwgc3RhcnRQb2ludCwgZW5kUG9pbnQpKTsKICAgICAgICAgICAgIG5ld1dp
bmRvdy5sb2NhdGlvbi5ocmVmID0gcm91dGVyLnVybCgnYW5hbHlzaXMvdGFzay8nICsgYW5hbHlz
aXNUYXNrLmlkKCkpOwogICAgICAgICAgICAgdGhpcy5mZXRjaEFuYWx5c2lzVGFza3ModHJ1ZSk7
CiAgICAgICAgIH0gY2F0Y2goZXJyb3IpIHsKQEAgLTU4Myw2ICs1ODUsNyBAQCBjbGFzcyBDaGFy
dFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxvcHRpb24+MTA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPml0ZXJh
dGlvbnM8L2xhYmVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD48aW5wdXQg
dHlwZT0iY2hlY2tib3giIGlkPSJub3RpZnktb24tY29tcGxldGlvbiIgY2hlY2tlZD4gTm90aWZ5
IG9uIGNvbXBsZXRpb248L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAg
ICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9
ImNoYXJ0LXBhbmUtZmlsdGVyaW5nLW9wdGlvbnMgcG9wb3ZlciIgc3R5bGU9ImRpc3BsYXk6bm9u
ZSI+CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2Vz
L2NyZWF0ZS1hbmFseXNpcy10YXNrLXBhZ2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL3BhZ2VzL2NyZWF0ZS1hbmFseXNpcy10YXNrLXBhZ2UuanMKaW5kZXggYTlmMDg5
MGMxOWJlZmI2MzBiZjA3ZGJiYjVlNWNlM2VlMmIzNjVhYy4uMzAxZmQyYTI5MDY1MWQ1MTI4YzM1
MjNhZjQ5ODIwZjIwM2JjNjZhMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9wYWdlcy9jcmVhdGUtYW5hbHlzaXMtdGFzay1wYWdlLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2st
cGFnZS5qcwpAQCAtMjIsOSArMjIsOSBAQCBjbGFzcyBDcmVhdGVBbmFseXNpc1Rhc2tQYWdlIGV4
dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgdGhpcy5wYXJ0KCdmb3JtJykubGlzdGVu
VG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX2NyZWF0ZUFuYWx5c2lzVGFza1dpdGhHcm91
cC5iaW5kKHRoaXMpKTsKICAgICB9CiAKLSAgICBfY3JlYXRlQW5hbHlzaXNUYXNrV2l0aEdyb3Vw
KHJlcGV0aXRpb25Db3VudCwgdGVzdEdyb3VwTmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRl
c3QsIHRhc2tOYW1lKQorICAgIF9jcmVhdGVBbmFseXNpc1Rhc2tXaXRoR3JvdXAocmVwZXRpdGlv
bkNvdW50LCB0ZXN0R3JvdXBOYW1lLCBjb21taXRTZXRzLCBwbGF0Zm9ybSwgdGVzdCwgdGFza05h
bWUsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7Ci0gICAgICAgIFRlc3RHcm91cC5jcmVhdGVX
aXRoVGFzayh0YXNrTmFtZSwgcGxhdGZvcm0sIHRlc3QsIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRp
b25Db3VudCwgY29tbWl0U2V0cykudGhlbigodGFzaykgPT4geworICAgICAgICBUZXN0R3JvdXAu
Y3JlYXRlV2l0aFRhc2sodGFza05hbWUsIHBsYXRmb3JtLCB0ZXN0LCB0ZXN0R3JvdXBOYW1lLCBy
ZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikudGhlbigodGFz
aykgPT4gewogICAgICAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIoKS51cmwoYGFuYWx5
c2lzL3Rhc2svJHt0YXNrLmlkKCl9YCk7CiAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gdGhp
cy5yb3V0ZXIoKS51cmwoYGFuYWx5c2lzL3Rhc2svJHt0YXNrLmlkKCl9YCk7CiAgICAgICAgIH0s
IChlcnJvcikgPT4gewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWJlMTI3YzBiMmY0MjY3
MjIwYjNiZTgyZGMzZmMzNWEzODUyY2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanMKQEAgLTAsMCArMSw3
NiBAQAorJ3VzZSBzdHJpY3QnOworCitjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsK
K2NvbnN0IE1vY2tEYXRhID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1kYXRhLmpzJyk7Citj
b25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsK
K2NvbnN0IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9w
ZXJhdGlvbnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKKworZGVzY3JpYmUoJy9hcGkvdGVzdC1n
cm91cHMnLCBmdW5jdGlvbiAoKSB7CisgICAgcHJlcGFyZVNlcnZlclRlc3QodGhpcyk7CisKKyAg
ICBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcy9hbGwtd2l0aC1wZW5kaW5nLW5vdGlmaWNhdGlv
bicsICgpID0+IHsKKyAgICAgICAgaXQoJ3Nob3VsZCBnaXZlIGFuIGVtcHR5IGxpc3QgaWYgdGhl
cmUgaXMgbm90IGV4aXN0aW5nIHRlc3QgZ3JvdXAgYXQgYWxsJywgYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9hbGwtd2l0aC1wZW5kaW5nLW5vdGlmaWNhdGlvbicpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICB9KTsKKwor
ICAgICAgICBpdCgnc2hvdWxkIGxpc3QgYWxsIHRlc3QgZ3JvdXBzIHdpdGggcGVuZGluZyBub3Rp
ZmljYXRpb24nLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRN
b2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcs
ICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOworICAgICAgICAgICAgY29uc3QgY29udGVudCA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9h
bGwtd2l0aC1wZW5kaW5nLW5vdGlmaWNhdGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnQudGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3QgdGVzdEdy
b3VwID0gY29udGVudC50ZXN0R3JvdXBzWzBdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5pZCwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAudGFz
aywgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUg
dGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5hdXRob3Is
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5oaWRkZW4sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaGFzUGVuZGluZ05vdGlmaWNh
dGlvbiwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnBsYXRmb3Jt
LCA2NSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzLCBbJzcwMCcsJzcwMScsICc3MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0ZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDIn
XSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgaGlkZGVuIHRl
c3QgZ3JvdXAnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYXRhYmFzZSA9IFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tE
YXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2Nv
bXBsZXRlZCddKTsKKyAgICAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5h
bHlzaXNfdGVzdF9ncm91cHMgU0VUIHRlc3Rncm91cF9oaWRkZW4gPSBUUlVFIFdIRVJFIHRlc3Rn
cm91cF9pZCA9IDYwMCcpOworICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9hbGwtd2l0aC1wZW5k
aW5nLW5vdGlmaWNhdGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3Rh
dHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3Jv
dXBzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1
ZXN0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNl
dHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywg
W10pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IHRlc3QgZ3Jv
dXBzIHRoYXQgaGF2ZSBhdXRob3Igbm90aWZpZWQgYmVmb3JlJywgYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFzZSwgWydjb21wbGV0ZWQnLCAn
Y29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnXSk7CisgICAgICAgICAgICBhd2Fp
dCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIFNFVCB0ZXN0Z3Jv
dXBfaGFzX3BlbmRpbmdfbm90aWZpY2F0aW9uID0gRkFMU0UgV0hFUkUgdGVzdGdyb3VwX2lkID0g
NjAwJyk7CisgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL2FsbC13aXRoLXBlbmRpbmctbm90aWZp
Y2F0aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgYSB0ZXN0IGdyb3VwIHRoYXQg
aGFzIHNvbWUgaW5jb21wbGV0ZWQgYnVpbGQgcmVxdWVzdHMnLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICBjb25zdCBkYXRhYmFzZSA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAg
ICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRlZCcsICdj
b21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ3J1bm5pbmcnXSk7CisgICAgICAgICAgICBjb25zdCBj
b250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3Qt
Z3JvdXBzL2FsbC13aXRoLXBlbmRpbmctbm90aWZpY2F0aW9uJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwppbmRleCBh
YjgzNDBlYmNjMWE5ZWYzZGMxNDZmZWU1MjIyNzEyZDZhMGRlODZhLi42ZjY4YjBmOTE2YzJjZTQ2
MzRlYzc1YWM2YzMzYmQ0OTkwM2JjM2UwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwpA
QCAtNjUsNyArNjUsNyBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpCiAgICAg
ICAgIGNvbnN0IHNldDIgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwogICAgICAgICBzZXQyLnNldFJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQsICcxOTE2MjInKTsKICAgICAgICAgc2V0Mi5zZXRS
ZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkLCAnODAyMjknKTsKLSAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5jcmVhdGVXaXRoVGFzaygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3Nl
dDEsIHNldDJdKTsKKyAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygnY3Vz
dG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSwg
c29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdLCB0cnVlKTsKICAgICB9KS50
aGVuKCh0YXNrKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmluZEFsbEJ5VGFzayh0
YXNrLmlkKCkpWzBdOwogICAgIH0pLnRoZW4oKGdyb3VwKSA9PiB7CkBAIC0xMDcsNyArMTA3LDcg
QEAgZnVuY3Rpb24gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoQW5kT3duZWRDb21taXRzKCkKICAg
ICAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0LCAnMTkyNzM2Jyk7CiAg
ICAgICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkU0pDLCAnb3duZWQtanNj
LTkxOTEnLCBudWxsLCAnMTkyNzM2Jyk7CiAKLSAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVh
dGVXaXRoVGFzaygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21l
UGxhdGZvcm1JZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdKTsK
KyAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygnY3VzdG9tIHRhc2snLCBQ
bGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSwgc29tZVRlc3QsICdz
b21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdLCB0cnVlKTsKICAgICB9KS50aGVuKCh0YXNrKSA9
PiB7CiAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmluZEFsbEJ5VGFzayh0YXNrLmlkKCkpWzBd
OwogICAgIH0pLnRoZW4oKGdyb3VwKSA9PiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNr
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxl
Z2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwppbmRleCBjN2E2ZDE3NzFmOWI0
MmM0YTJmZDA3ZjY3MmEyM2RhMjRkYzdjZDg5Li41NjMwZjc5NGFjNDMzMDEzOTNlMjAwNTc5MDAw
NjgxNzhlMzVjMzljIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3Jl
YXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKQEAgLTYsNiArNiw3IEBAIGxldCBNb2NrRGF0YSA9
IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stZGF0YS5qcycpOwogbGV0IFRlc3RTZXJ2ZXIgPSBy
ZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOwogY29uc3QgYWRkQnVpbGRlckZv
clJlcG9ydCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRk
QnVpbGRlckZvclJlcG9ydDsKIGNvbnN0IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgnLi9y
ZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKK2NvbnN0
IGFzc2VydFRocm93cyA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpz
JykuYXNzZXJ0VGhyb3dzOwogCiBjb25zdCByZXBvcnRXaXRoUmV2aXNpb24gPSBbewogICAgICJi
dWlsZE51bWJlciI6ICIxMjQiLApAQCAtMzUzLDE3ICszNTQsMTAgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBh
cGknLCBmdW4KICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3Jl
dmlzaW9uOiAnMTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7
W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OwogCi0gICAgICAgIGxldCByYWlzZUV4
Y2VwdGlvbiA9IGZhbHNlOwotCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBhd2FpdCBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29u
ZmlybScsIHJlcGV0aXRpb25Db3VudDogMSwKLSAgICAgICAgICAgICAgICByZXZpc2lvblNldHM6
IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlzaW9uU2V0XSwKLSAgICAgICAgICAgICAgICBz
dGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsK
LSAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJyk7Ci0gICAgICAgICAgICByYWlzZUV4Y2Vw
dGlvbiA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgYXNzZXJ0Lm9rKHJhaXNlRXhjZXB0aW9u
KTsKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFz
aycsICgpID0+CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
YW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMSwKKyAg
ICAgICAgICAgICAgICByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlz
aW9uU2V0XSwgaGFzUGVuZGluZ05vdGlmaWNhdGlvbjogdHJ1ZSwKKyAgICAgICAgICAgICAgICBz
dGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ119KSk7
CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGgg
bm8gdGVzdCBncm91cCB3aGVuIHJlcGV0aXRpb24gY291bnQgaXMgMCcsIGFzeW5jICgpID0+IHsK
QEAgLTQzOSw3ICs0MzMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFs
eXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogCiAgICAgICAgIGNv
bnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5h
bHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMSwKICAgICAg
ICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgcmV2aXNpb25TZXRzOiBbb25lUmV2aXNp
b25TZXQsIGFub3RoZXJSZXZpc2lvblNldF0sCi0gICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1
bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKKyAgICAgICAgICAgIHN0
YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXSwgaGFz
UGVuZGluZ05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0IHRhc2sgPSBhd2Fp
dCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwpAQCAtNDU2LDYgKzQ1MCw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2Vy
IHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmhhc1BlbmRpbmdOb3RpZmljYXRpb24oKSwgdHJ1ZSk7CiAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwog
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwogCkBAIC01MTMs
MTcgKzUwOCwxMCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10
YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBvbmVS
ZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAg
IGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2
MjMnfX07CiAKLSAgICAgICAgbGV0IHJhaXNlRXhjZXB0aW9uID0gZmFsc2U7Ci0KLSAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAor
ICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ1NsYXZlTm90Rm91bmQnLCAoKSA9PgorICAgICAg
ICAgICAgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7
bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDEsCiAgICAgICAgICAgICAgICAgcmV2
aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJSZXZpc2lvblNldF0sCi0gICAgICAg
ICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFd
WydpZCddfSk7Ci0gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdTbGF2ZU5vdEZvdW5kJyk7Ci0gICAgICAgICAgICByYWlzZUV4Y2VwdGlv
biA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgYXNzZXJ0Lm9rKHJhaXNlRXhjZXB0aW9uKTsK
KyAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVz
dFJ1bnNbMV1bJ2lkJ119KSk7CiAKICAgICAgICAgY29uc3QgYWxsQW5hbHlzaXNUYXNrcyA9IGF3
YWl0IGRiLnNlbGVjdFJvd3MoJ2FuYWx5c2lzX3Rhc2tzJyk7CiAgICAgICAgIGFzc2VydC5vaygh
YWxsQW5hbHlzaXNUYXNrcy5sZW5ndGgpOwpAQCAtNTY3LDcgKzU1NSw4NyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2Vk
IGFwaScsIGZ1bmN0aQogCiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScs
IHJlcGV0aXRpb25Db3VudDogMSwKICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJt
JywgcmV2aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJSZXZpc2lvblNldF0sCi0g
ICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNb
MV1bJ2lkJ119KTsKKyAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5k
UnVuOiB0ZXN0UnVuc1sxXVsnaWQnXSwgaGFzUGVuZGluZ05vdGlmaWNhdGlvbjogdHJ1ZX0pOwor
CisgICAgICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRl
bnRbJ3Rhc2tJZCddKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmly
bScpOworICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKKyAgICAgICAgYXNzZXJ0
KHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRh
c2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwg
W10pOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAgICAg
ICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
ZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAg
IGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKwor
ICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5oYXNQZW5kaW5nTm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKKworICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCks
IHRyaWdnZXJhYmxlSWQpOworCisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBd
LnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkp
OworCisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lk
KCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmFu
YWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOworCisgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1
ZXN0c1swXS5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0u
aXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNUZXN0KCkp
OworICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5pc1Rlc3QoKSk7CisKKyAgICAg
ICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwor
ICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNl
dCgpOworICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZCh3ZWJraXRJZCk7CisgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRG
b3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdl
YmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKKyAgICB9KTsKKworICAgIGl0
KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIGFuZCByZXNw
ZWN0IHRoZSAiaGFzUGVuZGluZ05vdGlmaWNhdGlvbiIgZmxhZyBpbiB0aGUgaHR0cCByZXF1ZXN0
JywgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCB3ZWJraXRJZCA9IDE7CisgICAgICAgIGNv
bnN0IHBsYXRmb3JtSWQgPSAxOworICAgICAgICBjb25zdCB0ZXN0MUlkID0gMjsKKyAgICAgICAg
Y29uc3QgdHJpZ2dlcmFibGVJZCA9IDEyMzQ7CisKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndGVzdHMnLCB7aWQ6IDEs
IG5hbWU6ICdTdWl0ZSd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0ZXN0cycsIHtpZDog
dGVzdDFJZCwgbmFtZTogJ3Rlc3QxJywgcGFyZW50OiAxfSk7CisgICAgICAgIGF3YWl0IGRiLmlu
c2VydCgncmVwb3NpdG9yaWVzJywge2lkOiB3ZWJraXRJZCwgbmFtZTogJ1dlYktpdCd9KTsKKyAg
ICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdwbGF0Zm9ybXMnLCB7aWQ6IHBsYXRmb3JtSWQsIG5hbWU6
ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdn
ZXJhYmxlcycsIHtpZDogMTIzNCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CisgICAgICAg
IGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIz
NDUsIG5hbWU6ICd3ZWJraXQtb25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7Cisg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9z
aXRvcnk6IHdlYmtpdElkLCBncm91cDogMjM0NX0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQo
J3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3Rlc3Q6IHRlc3QxSWQsIHBsYXRmb3JtOiBw
bGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBh
ZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7CisKKyAgICAgICAgYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0
V2l0aFJldmlzaW9uKTsKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAg
IGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisKKyAgICAgICAgbGV0IHRlc3QxID0gVGVzdC5maW5k
QnlJZCh0ZXN0MUlkKTsKKyAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRC
eUlkKHBsYXRmb3JtSWQpOworICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxl
Y3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3Mo
KVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKKyAgICAgICAgY29uc3Qg
dGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25m
aWdSb3dbJ2lkJ119KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7
CisKKyAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9u
OiAnMTkxNjIyJ319OworICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtp
dElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OworCisgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBh
d2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtu
YW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMSwKKyAgICAgICAgICAgIHRlc3RHcm91
cE5hbWU6ICdDb25maXJtJywgcmV2aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJS
ZXZpc2lvblNldF0sCisgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVu
ZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sIGhhc1BlbmRpbmdOb3RpZmljYXRpb246IGZhbHNlfSk7
CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29u
dGVudFsndGFza0lkJ10pOwogICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25m
aXJtJyk7CkBAIC01ODQsNiArNjUyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgdGVz
dEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5u
YW1lKCksICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaGFzUGVu
ZGluZ05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwogICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0cy5sZW5ndGgsIDIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1j
cmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCAyZjNiMjk3NjhhNjI2ZDRlMTZhZmU5MzNl
ZDgyMTk1ZmZjYzc4MDlhLi4zMDkzNjc0MjFmN2JlNTI2OTZkYzc2ZmQ3NGZjYjJiMDIxYmFiMjY2
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAt
dGVzdHMuanMKQEAgLTMzOSw5ICszMzksOSBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgIGl0KCdzaG91bGQgcmV0dXJuICJE
dXBsaWNhdGVUZXN0R3JvdXBOYW1lIiB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSB0ZXN0IGdyb3Vw
IG9mIHRoZSBzYW1lIG5hbWUnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJs
ZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJZCkgPT4gewogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0cyA9IHsnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ119Owot
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzfSkudGhlbigo
Y29udGVudCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21t
aXRTZXRzLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0cnVlfSkudGhlbigoY29udGVudCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydChjb250ZW50Wyd0ZXN0R3JvdXBJZCddKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHN9KTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHMsIGhhc1BlbmRp
bmdOb3RpZmljYXRpb246IHRydWV9KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKQEAgLTM5MSw3ICszOTEsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9y
eSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ0phdmFTY3JpcHRDb3JlJyAmJiByZXBvc2l0b3J5
Lm93bmVySWQoKSlbMF07CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJr
aXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjog
JzE1QTI4NCd9LCBbb3duZWRKU0MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywg
b3duZXJSZXZpc2lvbjogJzE5MTYyMid9fSwKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0
J30sIFtvd25lZEpTQy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJl
dmlzaW9uOiAnMTkyNzM2J319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJ
ZCwgcmVwZXRpdGlvbkNvdW50OiAxLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAxLCBoYXNQZW5kaW5nTm90aWZp
Y2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwpAQCAtNDAxLDYg
KzQwMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAg
YXNzZXJ0Lm9rKGdyb3VwLmhhc1BlbmRpbmdOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3Rz
WzBdLmlzQnVpbGQoKSk7CkBAIC00MzcsNyArNDM4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0
IGpzYyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5
Lm5hbWUoKSA9PSAnSmF2YVNjcmlwdENvcmUnICYmIHJlcG9zaXRvcnkub3duZXJJZCgpKVswXTsK
ICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3Jldmlz
aW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtqc2Mu
aWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgb3duZXJSZXZpc2lvbjogJzE5MTYy
Mid9fSwKICAgICAgICAgICAgICAgICB7W21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQn
fSwgW2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlzaW9u
OiAnMTkyNzM2J319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVw
ZXRpdGlvbkNvdW50OiAxLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAxLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9u
OiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwpAQCAtNDQ3LDYgKzQ0OCw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0
Lm9rKGdyb3VwLmhhc1BlbmRpbmdOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3RzWzBdLmlz
QnVpbGQoKSk7CkBAIC00NzYsNyArNDc4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBh
IHRlc3QgZ3JvdXAgZnJvbSBjb21taXRTZXRzIHdpdGggdGhlIHJlcGV0aXRpb24gY291bnQgb2Yg
b25lIHdoZW4gcmVwZXRpdGlvbkNvdW50IGlzIG9taXR0ZWQnLCAoKSA9PiB7CiAgICAgICAgIHJl
dHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJ
ZCkgPT4gewogICAgICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsKLSAgICAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1l
OiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydtYWNPUyc6IFsnMTVBMjg0Jywg
JzE1QTI4NCddLCAnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ119fSkudGhlbigoY29udGVu
dCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBoYXNQZW5kaW5n
Tm90aWZpY2F0aW9uOiB0cnVlLCBjb21taXRTZXRzOiB7J21hY09TJzogWycxNUEyODQnLCAnMTVB
Mjg0J10sICdXZWJLaXQnOiBbJzE5MTYyMicsICcxOTE2MjMnXX19KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3Vw
SWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewpAQCAtNDg0
LDYgKzQ4Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBz
WzBdOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdy
b3VwSWQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLmhhc1BlbmRpbmdOb3Rp
ZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMik7CiAKQEAgLTUxMiw3ICs1MTUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkVHJpZ2dl
cmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0
UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Vi
a2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNp
b246ICcxOTE2MjMnfX1dOwotICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge25hbWU6ICd0ZXN0
JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9OworICAgICAgICAgICAgY29uc3QgcGFyYW1z
ID0ge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0
cnVlLCByZXZpc2lvblNldHN9OwogICAgICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsKICAg
ICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1n
cm91cCcsIHBhcmFtcykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGluc2Vy
dGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CkBAIC01MjIsNiArNTI1LDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuaGFzUGVuZGluZ05vdGlmaWNhdGlvbigpKTsK
ICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIApAQCAt
NTQ1LDcgKzU0OSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0
ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJZCkgPT4gewogICAgICAgICAgICAgbGV0IGlu
c2VydGVkR3JvdXBJZDsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVw
ZXRpdGlvbkNvdW50OiAyLAotICAgICAgICAgICAgICAgIGNvbW1pdFNldHM6IHsnV2ViS2l0Jzog
WycxOTE2MjInLCAnMTkxNjIzJ10sICdtYWNPUyc6IFsnMTVBMjg0JywgJzE1QTI4NCddfX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBjb21taXRTZXRzOiB7J1dlYktpdCc6
IFsnMTkxNjIyJywgJzE5MTYyMyddLCAnbWFjT1MnOiBbJzE1QTI4NCcsICcxNUEyODQnXX0sIGhh
c1BlbmRpbmdOb3RpZmljYXRpb246IHRydWV9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwog
ICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewpAQCAtNTUzLDYgKzU1Nyw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLmhhc1BlbmRpbmdOb3RpZmljYXRpb24oKSk7
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAg
ICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9z
aXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKQEAgLTU4OSw3ICs1
OTQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLm1hY29zUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRz
ID0gW3tbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbd2Via2l0LmlkKCldOiB7
cmV2aXNpb246ICcyY2VkYSd9fSwKICAgICAgICAgICAgICAgICB7W21hY29zLmlkKCldOiB7cmV2
aXNpb246ICcxNUEyODQnfSwgW3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnNTQ3MWEnfX1dOwot
ICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBy
ZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0c307CisgICAgICAgICAgICBjb25zdCBwYXJh
bXMgPSB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgaGFz
UGVuZGluZ05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRzfTsKICAgICAgICAgICAgIGxl
dCBpbnNlcnRlZEdyb3VwSWQ7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCBwYXJhbXMpLnRoZW4oKGNvbnRlbnQpID0+IHsK
ICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCdd
OwpAQCAtNTk5LDYgKzYwNCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBp
bnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLmhhc1Bl
bmRpbmdOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBn
cm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNCk7CiAKQEAgLTYzMCw3ICs2MzYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbWFj
b3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCkpOwog
ICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbbWFjb3MuaWQoKV06IHtyZXZpc2lv
bjogJzE1QTI4NCd9LCBbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sCiAgICAg
ICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07Ci0gICAg
ICAgICAgICBjb25zdCBwYXJhbXMgPSB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0
aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfTsKKyAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9
IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBoYXNQZW5k
aW5nTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9OwogICAgICAgICAgICAgbGV0IGlu
c2VydGVkR3JvdXBJZDsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBhcmFtcykudGhlbigoY29udGVudCkgPT4gewogICAg
ICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CkBA
IC02NDAsNiArNjQ2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuaGFzUGVuZGlu
Z05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA0KTsKIApAQCAtNjc5LDcgKzY4Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgdXBs
b2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgICAgIGNv
bnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30s
IFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J319LAogICAgICAgICAgICAgICAgICAg
ICB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3Jl
dmlzaW9uOiAnMTVBMjg0J30sICdjdXN0b21Sb290cyc6IFt1cGxvYWRlZEZpbGVbJ2lkJ11dfV07
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291
bnQ6IDIsIHJldmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgaGFzUGVuZGlu
Z05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJ
ZCddOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgICAgIH0pOwpAQCAtNjg4LDYgKzY5NSw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLmhhc1BlbmRpbmdOb3RpZmljYXRpb24oKSk7CiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKQEAgLTcy
Nyw3ICs3MzUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gVXBsb2FkZWRGaWxl
LmVuc3VyZVNpbmdsZXRvbihyYXdGaWxlLmlkLCByYXdGaWxlKTsKICAgICAgICAgICAgIGNvbnN0
IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJywgcGF0
Y2g6IHVwbG9hZGVkRmlsZS5pZCgpfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQn
fX0sCiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9
LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9fV07Ci0gICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTog
J3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfSk7
CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDog
MiwgaGFzUGVuZGluZ05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNv
bnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtNzM2LDYgKzc0NCw3IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAu
aGFzUGVuZGluZ05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9j
a0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBn
cm91cC5idWlsZFJlcXVlc3RzKCk7CkBAIC03OTEsNyArODAwLDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGpzYyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5
Lm5hbWUoKSA9PSAnSmF2YVNjcmlwdENvcmUnKVswXTsKICAgICAgICAgICAgIGNvbnN0IHJldmlz
aW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5p
ZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J319LAogICAgICAgICAgICAgICAgIHtbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxOTI3MzYnfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEy
ODQnfSwgW2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlz
aW9uOiAnMTkyNzM2J319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwg
cmVwZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVz
dCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBoYXNQZW5kaW5nTm90aWZpY2F0
aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4g
ewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7
CkBAIC04MDAsNiArODA5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdy
b3VwSWQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5oYXNQZW5kaW5nTm90aWZpY2F0aW9u
KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgp
KSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsK
QEAgLTg2NSw3ICs4NzUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAganNjID0gUmVwb3NpdG9yeS5hbGwo
KS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdKYXZhU2NyaXB0
Q29yZScpWzBdOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEy
ODQnfSwgW2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTYxNjEnLCBvd25lclJldmlz
aW9uOiAnMTkxNjIyJ319LAogICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNp
b246ICcxOTI3MzYnfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW2pzYy5p
ZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlzaW9uOiAnMTkyNzM2
J319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNv
dW50OiAyLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRh
c2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0cnVlLCBy
ZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC04NzQsNiAr
ODg0LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5vayhncm91cC5oYXNQZW5kaW5nTm90aWZpY2F0aW9uKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5z
b21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgp
LCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKQEAgLTk0Nyw3ICs5
NTgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gVXBsb2FkZWRGaWxlLmVuc3Vy
ZVNpbmdsZXRvbihyYXdGaWxlLmlkLCByYXdGaWxlKTsKICAgICAgICAgICAgIGNvbnN0IHJldmlz
aW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5p
ZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVk
LWpzYy02MTYxJywgb3duZXJSZXZpc2lvbjogJzE5MTYyMid9fSwKICAgICAgICAgICAgICAgICB7
W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkyNzM2JywgcGF0Y2g6IHVwbG9hZGVkRmlsZS5p
ZCgpfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW2pzYy5pZCgpXToge3Jl
dmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlzaW9uOiAnMTkyNzM2J319XTsKLSAg
ICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1n
cm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBy
ZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVw
ZXRpdGlvbkNvdW50OiAyLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNl
dHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgaW5zZXJ0
ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC05NTYsNiArOTY3LDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5vayhncm91cC5oYXNQZW5kaW5nTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElk
KCkpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9y
bS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKQEAgLTEwNDAsNyArMTA1Miw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xl
dG9uKHJhd0ZpbGUuaWQsIHJhd0ZpbGUpOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRz
ID0gW3tbanNjLmlkKCldOiB7cmV2aXNpb246ICdqc2MtNjE2MSd9LCBbd2Via2l0LmlkKCldOiB7
cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwg
W293bmVkSlNDLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtNjE2MScsIG93bmVyUmV2aXNp
b246ICcxOTE2MjInfX0sCiAgICAgICAgICAgICAgICAge1tqc2MuaWQoKV06IHtyZXZpc2lvbjog
J2pzYy05MTkxJ30sIFt3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MjczNicsIHBhdGNoOiB1
cGxvYWRlZEZpbGUuaWQoKX0sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtv
d25lZEpTQy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlzaW9u
OiAnMTkyNzM2J319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVw
ZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9u
OiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBA
IC0xMDUwLDYgKzEwNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3Qo
KSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFz
c2VydC5vayhncm91cC5oYXNQZW5kaW5nTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVp
bGRSZXF1ZXN0cygpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nik7CkBAIC0xMTM2LDcgKzExNDksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0g
VXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbihyYXdGaWxlLmlkLCByYXdGaWxlKTsKICAgICAg
ICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W21hY29zLmlkKCldOiB7cmV2aXNpb246ICcx
NUEyODQnfX0sCiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5
MTYyMicsIHBhdGNoOiB1cGxvYWRlZEZpbGUuaWQoKX0sIFttYWNvcy5pZCgpXToge3JldmlzaW9u
OiAnMTVBMjg0J319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVw
ZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9u
OiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBA
IC0xMTQ1LDYgKzExNTgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDIpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLmhhc1BlbmRpbmdOb3RpZmljYXRpb24o
KSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlk
KE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkp
KTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwpA
QCAtMTE5OSw3ICsxMjEzLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IFVwbG9h
ZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24ocmF3RmlsZS5pZCwgcmF3RmlsZSk7CiAgICAgICAgICAg
ICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYy
Mid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCcsIHBhdGNoOiB1cGxvYWRlZEZp
bGUuaWQoKX19LAogICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcx
OTI3MzYnfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX1dOwotICAgICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywg
e25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9u
U2V0c30pOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9u
Q291bnQ6IDIsIGhhc1BlbmRpbmdOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c30pOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewpAQCAtMTIxNCw3
ICsxMjI4LDQyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZp
bHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwog
ICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNp
b246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMnfX1dOwog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywKLSAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVy
IHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9ja0Rh
dGEuc29tZVRlc3RJZCgpLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgICAgICB7bmFtZTog
J3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBs
YXRmb3JtSWQoKSwgdGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBoYXNQZW5kaW5nTm90aWZp
Y2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7CisgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107
CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQo
cmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQn
XSwgdHJ1ZSldKTsKKyAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgICAgICBj
b25zdCBbYW5hbHlzaXNUYXNrLCB0ZXN0R3JvdXBzXSA9IHJlc3VsdDsKKworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBj
b25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuaGFz
UGVuZGluZ05vdGlmaWNhdGlvbigpKTsKKyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3Jv
dXAuYnVpbGRSZXF1ZXN0cygpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMik7CisKKyAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRT
ZXQoKTsKKyAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICB9KTsKKyAgICB9
KTsKKworICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYSB0ZXN0IGdyb3VwIHdpdGgg
bm8gcGVuZGluZyBub3RpZmljYXRpb24nLCAoKSA9PiB7CisgICAgICAgIGxldCBpbnNlcnRlZEdy
b3VwSWQ7CisgICAgICAgIGxldCB3ZWJraXQ7CisgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJs
ZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnku
bmFtZSgpID09ICdXZWJLaXQnKVswXTsKKyAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9
IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXTog
e3JldmlzaW9uOiAnMTkxNjIzJ319XTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCisgICAgICAgICAgICAgICAge25hbWU6
ICd0ZXN0JywgdGFza05hbWU6ICdvdGhlciB0YXNrJywgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQ
bGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgaGFzUGVuZGluZ05vdGlm
aWNhdGlvbjogZmFsc2UsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQp
ID0+IHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQn
XTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJ
ZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJ
ZCddLCB0cnVlKV0pOwpAQCAtMTIyNyw2ICsxMjc2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAuaGFzUGVu
ZGluZ05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAu
YnVpbGRSZXF1ZXN0cygpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMik7CiAKQEAgLTEyNTAsMTIgKzEzMDAsMTIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHdlYmtpdCA9
IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUo
KSA9PSAnV2ViS2l0JylbMF07CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3
ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZp
c2lvbjogJzE5MTYyMyd9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLAotICAgICAgICAgICAgICAgIHtuYW1lOiAndGVz
dDEnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSwgdGVzdCwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgICAgICAgICAge25hbWU6ICd0
ZXN0MScsIHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0cnVlLCB0ZXN0LCByZXZpc2lvblNl
dHN9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBmaXJzdFJl
c3VsdCA9IHJlc3VsdDsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtp
dC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9u
OiAnMTkyNzM2J319XTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCi0gICAgICAgICAgICAgICAge25hbWU6ICd0ZXN0Mics
IHRhc2s6IHJlc3VsdFsndGFza0lkJ10sIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3Jt
SWQoKSwgdGVzdCwgcmV2aXNpb25TZXRzLCByZXBldGl0aW9uQ291bnQ6IDJ9KTsKKyAgICAgICAg
ICAgICAgICB7bmFtZTogJ3Rlc3QyJywgdGFzazogcmVzdWx0Wyd0YXNrSWQnXSwgcGxhdGZvcm06
IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0cnVl
LCB0ZXN0LCByZXZpc2lvblNldHMsIHJlcGV0aXRpb25Db3VudDogMn0pOwogICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHNlY29uZFJlc3VsdCA9IHJlc3VsdDsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFJlc3VsdFsndGFza0lkJ10sIHNlY29uZFJlc3Vs
dFsndGFza0lkJ10pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRl
c3QtZ3JvdXAtdGVzdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThkOWUxN2FhODM2MDI2NGEyZWQzMTc5ZDMx
MzVhMDc4YzMwZjJlNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMK
QEAgLTAsMCArMSwxNjYgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNzZXJ0ID0gcmVxdWly
ZSgnYXNzZXJ0Jyk7CisKK2NvbnN0IE1vY2tEYXRhID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9j
ay1kYXRhLmpzJyk7Citjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuanMnKTsKK2NvbnN0IGFkZFNsYXZlRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNv
dXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRTbGF2ZUZvclJlcG9ydDsKK2NvbnN0IHBy
ZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMu
anMnKS5wcmVwYXJlU2VydmVyVGVzdDsKK2NvbnN0IGFzc2VydFRocm93cyA9IHJlcXVpcmUoJy4v
cmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYXNzZXJ0VGhyb3dzOworCithc3luYyBm
dW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2aXNpb25zID0gWyIxOTE2
MjIiLCAiMTkxNjIzIl0pCit7CisgICAgY29uc3QgcmVwb3J0V2l0aFJldmlzaW9uID0gW3sKKyAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNCIsCisgICAgICAgICJidWlsZFRpbWUiOiAiMjAxNS0x
MC0yN1QxNTozNDo1MSIsCisgICAgICAgICJyZXZpc2lvbnMiOiB7CisgICAgICAgICAgICAiV2Vi
S2l0IjogeworICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6IHdlYmtpdFJldmlzaW9uc1swXSwK
KyAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogJzIwMTUtMTAtMjdUMTE6MzY6NTYuODc4NDcz
WicsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm1hY09TIjogeworICAgICAgICAgICAg
ICAgICJyZXZpc2lvbiI6ICIxNUEyODQiLAorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAg
ICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAic2xhdmVOYW1lIjog
InNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisg
ICAgICAgICJwbGF0Zm9ybSI6ICJzb21lIHBsYXRmb3JtIiwKKyAgICAgICAgInRlc3RzIjogewor
ICAgICAgICAgICAgInNvbWUgdGVzdCI6IHsKKyAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsK
KyAgICAgICAgICAgICAgICAgICAgIlRpbWUiOiBbIkFyaXRobWV0aWMiXSwKKyAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAg
InRlc3QxIjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7
ICJjdXJyZW50IjogWzExXSB9fSwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH19XTsKKworICAgIGNvbnN0IGFub3RoZXJS
ZXBvcnRXaXRoUmV2aXNpb24gPSBbeworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTI1IiwKKyAg
ICAgICAgImJ1aWxkVGltZSI6ICIyMDE1LTEwLTI3VDE3OjI3OjQxIiwKKyAgICAgICAgInJldmlz
aW9ucyI6IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogd2Via2l0UmV2aXNpb25zWzFdLAorICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAn
MjAxNS0xMC0yN1QxNjozODoxMC43Njg5OTVaJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE1QTI4NCIsCisgICAg
ICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFz
c3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3JtIjogInNvbWUgcGxhdGZv
cm0iLAorICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAic29tZSB0ZXN0IjogeworICAg
ICAgICAgICAgICAgICJtZXRyaWNzIjogeworICAgICAgICAgICAgICAgICAgICAiVGltZSI6IFsi
QXJpdGhtZXRpYyJdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgInRlc3Rz
IjogeworICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTJdIH19LAorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAg
fX1dOworCisgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgY29uc3Qg
cmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICBhd2FpdCBhZGRTbGF2ZUZvclJl
cG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOworICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICBhd2FpdCByZW1vdGUucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24pOworICAgIGF3
YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5UGF0aChb
J3NvbWUgdGVzdCcsICd0ZXN0MSddKTsKKyAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZp
bmRCeU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBk
Yi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QubWV0
cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CisgICAgY29uc3QgdGVz
dFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdS
b3dbJ2lkJ119KTsKKworICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAg
IGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
YW5hbHlzaXMtdGFzaycsIHsKKyAgICAgICAgbmFtZTogbmFtZSwKKyAgICAgICAgc3RhcnRSdW46
IHRlc3RSdW5zWzBdWydpZCddLAorICAgICAgICBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddLAor
ICAgICAgICBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0cnVlLAorICAgIH0pOworICAgIHJldHVy
biBjb250ZW50Wyd0YXNrSWQnXTsKK30KKworYXN5bmMgZnVuY3Rpb24gYWRkVHJpZ2dlcmFibGVB
bmRDcmVhdGVUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucykKK3sKKyAgICBjb25zdCByZXBvcnQg
PSB7CisgICAgICAgICdzbGF2ZU5hbWUnOiAnYW5vdGhlclNsYXZlJywKKyAgICAgICAgJ3NsYXZl
UGFzc3dvcmQnOiAnYW5vdGhlclBhc3N3b3JkJywKKyAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1
aWxkLXdlYmtpdCcsCisgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKKyAgICAgICAgICAgIHt0
ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRm
b3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKX0sCisgICAgICAgIF0sCisgICAgICAgICdy
ZXBvc2l0b3J5R3JvdXBzJzogWworICAgICAgICAgICAge25hbWU6ICdvcy1vbmx5JywgYWNjZXB0
c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWworICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5
OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6IGZhbHNlfSwKKyAg
ICAgICAgICAgIF19LAorICAgICAgICAgICAge25hbWU6ICd3ZWJraXQtb25seScsIGFjY2VwdHNS
b290OiB0cnVlLCByZXBvc2l0b3JpZXM6IFsKKyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTog
TW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogdHJ1ZX0sCisgICAg
ICAgICAgICBdfSwKKyAgICAgICAgICAgIHtuYW1lOiAnc3lzdGVtLWFuZC13ZWJraXQnLCBhY2Nl
cHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVzOiBbCisgICAgICAgICAgICAgICAge3JlcG9zaXRv
cnk6IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogZmFsc2V9LAor
ICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSwgYWNjZXB0c1BhdGNoOiB0cnVlfQorICAgICAgICAgICAgXX0sCisgICAgICAgICAgICB7bmFt
ZTogJ3N5c3RlbS13ZWJraXQtc2pjJywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczog
WworICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJ
ZCgpLCBhY2NlcHRzUGF0Y2g6IGZhbHNlfSwKKyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTog
TW9ja0RhdGEuanNjUmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogZmFsc2V9LAorICAgICAg
ICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSwgYWNj
ZXB0c1BhdGNoOiB0cnVlfQorICAgICAgICAgICAgXX0sCisgICAgICAgIF0KKyAgICB9OworICAg
IGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CisgICAg
YXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQocmVwb3J0KTsKKyAgICBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCByZXBvcnQpOwor
ICAgIGF3YWl0IGNyZWF0ZUFuYWx5c2lzVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMpOworfQor
CitkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24o
KXsKKyAgICBwcmVwYXJlU2VydmVyVGVzdCh0aGlzLCAnbm9kZScpOworICAgIGJlZm9yZUVhY2go
KCkgPT4geworICAgICAgICBQcml2aWxlZ2VkQVBJLmNvbmZpZ3VyZSgndGVzdCcsICdwYXNzd29y
ZCcpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCB0aHJvdyAiU2xhdmVOb3RGb3VuZCIgaWYg
aW52YWxpZCBzbGF2ZSBuYW1lIGFuZCBwYXNzd29yZCBjb21iaW5hdGlvbiBpcyBwcm92aWRlZCcs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNr
KCdzb21lIHRhc2snKTsKKworICAgICAgICBQcml2aWxlZ2VkQVBJLmNvbmZpZ3VyZSgndGVzdCcs
ICd3cm9uZ3Bhc3N3b3JkJyk7CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxs
KCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0Jylb
MF07CisgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3Jldmlz
aW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsK
KworICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ1NsYXZlTm90Rm91bmQnLCAoKSA9PgorICAg
ICAgICAgICAgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLAorICAgICAgICAgICAgICAgIHBs
YXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCB0ZXN0OiBNb2NrRGF0YS5zb21lVGVz
dElkKCksIHJldmlzaW9uU2V0c30pKTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgYmUgYWJs
ZSB0byB1cGRhdGUgaGFzIHBlbmRpbmcgbm90aWZpY2F0aW9uIGZsYWcnLCBhc3luYyAoKSA9PiB7
CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJyk7
CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0
b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07CisgICAgICAgIGNvbnN0
IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7
W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywK
KyAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBw
bGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9ja0RhdGEuc29tZVRl
c3RJZCgpLCBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKKyAg
ICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOworICAg
ICAgICByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChy
ZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCdd
LCB0cnVlKV0pOworCisgICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0g
cmVzdWx0OworCisgICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3Ro
ZXIgdGFzaycpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5o
YXNQZW5kaW5nTm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAgICBhd2FpdCBncm91cC5kaWRT
ZW5kTm90aWZpY2F0aW9uKCk7CisgICAgICAgIGNvbnN0IHVwZGF0ZWRHcm91cCA9IFRlc3RHcm91
cC5maW5kQnlJZChncm91cC5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91
cC5oYXNQZW5kaW5nTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKKyAgICB9KTsKK30pOwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwppbmRleCA5NGEzOTNm
MWU5Njk1NmU1OWQ4NTIwZGI5MDQ3YjYxZTgzNGJjN2E1Li4wM2M0NjI4YTBhMTFlZTI2NjliZmU1
MTk3Yjg3MzgxZDU0MzkyNjE1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCkBAIC03OSw3ICs3
OSw3IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190YXNr
cycsIHtpZDogNTAwLCBwbGF0Zm9ybTogNjUsIG1ldHJpYzogMzAwLCBuYW1lOiAnc29tZSB0YXNr
JywKICAgICAgICAgICAgICAgICBzdGFydF9ydW46IDgwMSwgc3RhcnRfcnVuX3RpbWU6ICcyMDE1
LTEwLTI3VDEyOjA1OjI3LjFaJywKICAgICAgICAgICAgICAgICBlbmRfcnVuOiA4MDEsIGVuZF9y
dW5fdGltZTogJzIwMTUtMTAtMjdUMTI6MDU6MjcuMVonfSksCi0gICAgICAgICAgICBkYi5pbnNl
cnQoJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lkOiA2MDAsIHRhc2s6IDUwMCwgbmFtZTogJ3Nv
bWUgdGVzdCBncm91cCd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGVzdF9n
cm91cHMnLCB7aWQ6IDYwMCwgdGFzazogNTAwLCBuYW1lOiAnc29tZSB0ZXN0IGdyb3VwJywgaGFz
X3BlbmRpbmdfbm90aWZpY2F0aW9uOiB0cnVlfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1
aWxkX3JlcXVlc3RzJywge2lkOiA3MDAsIHN0YXR1czogc3RhdHVzTGlzdFswXSwgdHJpZ2dlcmFi
bGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAw
LCBncm91cDogNjAwLCBvcmRlcjogMCwgY29tbWl0X3NldDogNDAxfSksCiAgICAgICAgICAgICBk
Yi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDEsIHN0YXR1czogc3RhdHVzTGlzdFsx
XSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2
NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMSwgY29tbWl0X3NldDogNDAyfSksCiAg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDIsIHN0YXR1czog
c3RhdHVzTGlzdFsyXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEs
IHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMiwgY29tbWl0X3Nl
dDogNDAxfSksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRp
b24tdGVzdHMuanMKaW5kZXggZTYxMjU4MjY2Y2Q4ZTBjNTRkNGMwMzZlNTRkOWI3ZDEwZjg2ZTE1
ZS4uN2UwNGU1ZWU1NWU3NzkzNGMyMmZkNDMzZWEzYzkxODA3MzE3ZDU4ZCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90
LWludGVncmF0aW9uLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTcz
LDcgKzE3Myw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cCh0YXNrX25hbWU9J2N1c3RvbSB0
YXNrJykgewogICAgIHNldDEuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MTYy
MicpOwogICAgIGNvbnN0IHNldDIgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwogICAgIHNldDIuc2V0
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MjczNicpOwotICAgIHJldHVybiBUZXN0
R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5SWQoTW9j
a0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIsIFtzZXQx
LCBzZXQyXSkudGhlbigodGFzaykgPT4geworICAgIHJldHVybiBUZXN0R3JvdXAuY3JlYXRlV2l0
aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIsIFtzZXQxLCBzZXQyXSwgdHJ1ZSku
dGhlbigodGFzaykgPT4gewogICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZpbmRBbGxCeVRhc2so
dGFzay5pZCgpKVswXTsKICAgICB9KTsKIH0KQEAgLTE5Myw3ICsxOTMsNyBAQCBhc3luYyBmdW5j
dGlvbiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpCiAgICAgc2V0MS5zZXRSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0LCAnMTkxNjIyJywgdXBsb2FkZWRQYXRjaEZpbGUpOwogICAgIGNvbnN0
IHNldDIgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwogICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCwgJzE5MTYyMicpOwotICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBUZXN0R3Jv
dXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0Rh
dGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIsIFtzZXQxLCBz
ZXQyXSk7CisgICAgY29uc3QgdGFzayA9IGF3YWl0IFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygn
Y3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgp
KSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdLCB0cnVlKTsKIAogICAg
IHJldHVybiBUZXN0R3JvdXAuZmluZEFsbEJ5VGFzayh0YXNrLmlkKCkpWzBdOwogfQpAQCAtMjA5
LDcgKzIwOSw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cFdpaE93bmVkQ29tbWl0KCkKICAg
ICBjb25zdCBzZXQyID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKICAgICBzZXQyLnNldFJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQsICcxOTI3MzYnKTsKICAgICBzZXQyLnNldFJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZFNKQywgJ293bmVkLWpzYy05MTkxJywgbnVsbCwgJzE5MjczNicpOwot
ICAgIHJldHVybiBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZv
cm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBn
cm91cCcsIDIsIFtzZXQxLCBzZXQyXSkudGhlbigodGFzaykgPT4geworICAgIHJldHVybiBUZXN0
R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5SWQoTW9j
a0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIsIFtzZXQx
LCBzZXQyXSwgdHJ1ZSkudGhlbigodGFzaykgPT4gewogICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZpbmRBbGxCeVRhc2sodGFzay5pZCgpKVswXTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9lbWFpbC1ub3RpZmllci5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9lbWFpbC1ub3RpZmllci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZDg3NWU0ODZkZjE3ZGUxNzgzYmI4ZDY1YzcyNmUxZmNmMWFlMTExCi0tLSAvZGV2L251bGwK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2VtYWlsLW5vdGlmaWVyLmpz
CkBAIC0wLDAgKzEsMTg4IEBACitjb25zdCBSZW1vdGVBUEkgPSByZXF1aXJlKCcuL3JlbW90ZS5q
cycpLlJlbW90ZUFQSTsKK2NvbnN0IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uID0gcmVxdWlyZSgn
Li4vLi4vcHVibGljL3YzL2xhemlseS1ldmFsdWF0ZWQtZnVuY3Rpb24nKS5MYXppbHlFdmFsdWF0
ZWRGdW5jdGlvbjsKKworY2xhc3MgRW1haWxOb3RpZmllciB7CisgICAgY29uc3RydWN0b3IoZmlu
ZEVtYWlsQ29tbWFuZCwgZW1haWxHcm91cENvbmZpZ3VyYXRpb24sIGVtYWlsU2VydmVyQ29uZmln
LCBlbWFpbFRlbXBsYXRlLCBTdWJwcm9jZXNzKQorICAgIHsKKyAgICAgICAgdGhpcy5fZmluZEVt
YWlsQ29tbWFuZCA9IGZpbmRFbWFpbENvbW1hbmQ7CisgICAgICAgIHRoaXMuX2VtYWlsU2VydmVy
UmVtb3RlQVBJID0gbmV3IFJlbW90ZUFQSShlbWFpbFNlcnZlckNvbmZpZyk7CisgICAgICAgIHRo
aXMuX2VtYWlsU2VydmljZVBhdGggPSBlbWFpbFNlcnZlckNvbmZpZy5wYXRoOworICAgICAgICB0
aGlzLl9lbWFpbFRlbXBsYXRlID0gZW1haWxUZW1wbGF0ZTsKKyAgICAgICAgdGhpcy5fc3VicHJv
Y2VzcyA9IFN1YnByb2Nlc3M7CisgICAgICAgIHRoaXMuX21hdGNoaW5nRnVuY3Rpb25CeUVtYWls
R3JvdXAgPSBFbWFpbE5vdGlmaWVyLl9idWlsZE1hdGNoaW5nRnVuY3Rpb25CeUVtYWlsR3JvdXAo
ZW1haWxHcm91cENvbmZpZ3VyYXRpb24pOworICAgIH0KKworICAgIGFzeW5jIHNlbmROb3RpZmlj
YXRpb25zRm9yVGVzdEdyb3Vwcyh0ZXN0R3JvdXBzKQorICAgIHsKKyAgICAgICAgZm9yIChjb25z
dCB0ZXN0R3JvdXAgb2YgdGVzdEdyb3VwcykgeworICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9
IGF3YWl0IHRoaXMuX21lc3NhZ2VGb3JUZXN0R3JvdXAodGVzdEdyb3VwKTsKKyAgICAgICAgICAg
IGNvbnN0IHRpdGxlID0gYFRlc3QgZ3JvdXA6ICIke3Rlc3RHcm91cC5uYW1lKCl9IiBmcm9tIEFu
YWx5c2lzIHRhc2sgIiR7dGVzdEdyb3VwLnRhc2soKS5uYW1lKCl9IiBoYXMgZmluaXNoZWQgYWxs
IGJ1aWxkIHJlcXVlc3RzYDsKKyAgICAgICAgICAgIGNvbnN0IHJlY2lwaWVudHMgPSBhd2FpdCB0
aGlzLl9kZXRlcm1pbmVSZWNpcGllbnRzRm9yVGVzdEdyb3VwKHRlc3RHcm91cCk7CisgICAgICAg
ICAgICBjb25zb2xlLmxvZyh0aXRsZSwgcmVjaXBpZW50cyk7CisgICAgICAgICAgICBjb25zdCBj
b250ZW50ID0gRW1haWxOb3RpZmllci5faW5zdGFudGlhdGVOb3RpZmljYXRpb25UZW1wbGF0ZSh0
aGlzLl9lbWFpbFRlbXBsYXRlLCB0aXRsZSwgcmVjaXBpZW50cy5qb2luKCcsICcpLCBtZXNzYWdl
KTsKKyAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NlbmRFbWFpbChjb250ZW50KTsKKyAgICAgICAg
ICAgIGF3YWl0IHRlc3RHcm91cC5kaWRTZW5kTm90aWZpY2F0aW9uKCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBhc3luYyBfZGV0ZXJtaW5lUmVjaXBpZW50c0ZvclRlc3RHcm91cCh0ZXN0R3Jv
dXApCisgICAgeworICAgICAgICBjb25zdCBhdXRob3IgPSB0ZXN0R3JvdXAuYXV0aG9yKCk7Cisg
ICAgICAgIGNvbnN0IHJlY2lwaWVudHMgPSBuZXcgU2V0OworICAgICAgICBpZiAoYXV0aG9yICYm
IGF1dGhvci5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29u
c3QgYXV0aG9yRW1haWwgPSAoYXdhaXQgdGhpcy5fc3VicHJvY2Vzcy5leGVjdXRlKFsuLi50aGlz
Ll9maW5kRW1haWxDb21tYW5kLCBhdXRob3JdKSkudHJpbSgpOworICAgICAgICAgICAgICAgIGlm
IChhdXRob3JFbWFpbCkKKyAgICAgICAgICAgICAgICAgICAgcmVjaXBpZW50cy5hZGQoYXV0aG9y
RW1haWwpOworICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBj
b25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmluZCBlbWFpbCBhZGRyZXNzIGZvciAke2F1dGhvcn0g
ZHVlIHRvICR7ZXJyb3J9YCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBj
b25zdCBwbGF0Zm9ybU5hbWUgPSB0ZXN0R3JvdXAucGxhdGZvcm0oKS5uYW1lKCk7CisgICAgICAg
IGNvbnN0IHRvcExldmVsVGVzdE5hbWUgPSB0ZXN0R3JvdXAudGVzdCgpLnBhdGgoKVswXS5uYW1l
KCk7CisgICAgICAgIGZvciAoY29uc3QgW2VtYWlsR3JvdXAsIG1hdGNoaW5nRnVuY3Rpb25dIG9m
IHRoaXMuX21hdGNoaW5nRnVuY3Rpb25CeUVtYWlsR3JvdXApIHsKKyAgICAgICAgICAgIGlmICht
YXRjaGluZ0Z1bmN0aW9uKHBsYXRmb3JtTmFtZSwgdG9wTGV2ZWxUZXN0TmFtZSkpCisgICAgICAg
ICAgICAgICAgcmVjaXBpZW50cy5hZGQoZW1haWxHcm91cCk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIEFycmF5LmZyb20ocmVjaXBpZW50cyk7CisgICAgfQorCisgICAgc3RhdGljIF9idWls
ZE1hdGNoaW5nRnVuY3Rpb25CeUVtYWlsR3JvdXAoZW1haWxHcm91cENvbmZpZ3VyYXRpb24pCisg
ICAgeworICAgICAgICBjb25zdCBtYXRjaGluZ0Z1bmN0aW9uQnlFbWFpbEdyb3VwID0gbmV3IE1h
cDsKKyAgICAgICAgZm9yIChjb25zdCBbZW1haWxHcm91cCwgbWF0Y2hpbmdDcml0ZXJpYV0gb2Yg
T2JqZWN0LmVudHJpZXMoZW1haWxHcm91cENvbmZpZ3VyYXRpb24pKSB7CisgICAgICAgICAgICBj
b25zdCBtYXRjaEZ1bmN0aW9uID0gKHBsYXRmb3JtLCB0ZXN0KSA9PiB7CisgICAgICAgICAgICAg
ICAgbGV0IGhhc01hdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoaW5nQ3Jp
dGVyaWEudGVzdHMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaGluZ0NyaXRlcmlh
LnRlc3RzLmluY2x1ZGVzKHRlc3QpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgICAgICAgICBoYXNNYXRjaCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmIChtYXRjaGluZ0NyaXRlcmlhLnBsYXRmb3Jtcykgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIW1hdGNoaW5nQ3JpdGVyaWEucGxhdGZvcm1zLmluY2x1
ZGVzKHBsYXRmb3JtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgICAgICAgICAgaGFzTWF0Y2ggPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICByZXR1cm4gaGFzTWF0Y2g7CisgICAgICAgICAgICB9OworICAgICAgICAg
ICAgbWF0Y2hpbmdGdW5jdGlvbkJ5RW1haWxHcm91cC5zZXQoZW1haWxHcm91cCwgbWF0Y2hGdW5j
dGlvbik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1hdGNoaW5nRnVuY3Rpb25CeUVtYWls
R3JvdXA7CisgICAgfQorCisgICAgc3RhdGljIF9jaGFyYWN0ZXJSZWZlcmVuY2UoaW5wdXQpCisg
ICAgeworICAgICAgICBpZiAoIWlucHV0KQorICAgICAgICAgICAgcmV0dXJuIGlucHV0OworICAg
ICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgnPCcsICcmbHQ7JykucmVwbGFjZSgnPicsICcmZ3Q7
JykucmVwbGFjZSgnIicsICcmcXVvdDsnKTsKKyAgICB9CisKKyAgICBhc3luYyBfbWVzc2FnZUZv
clRlc3RHcm91cCh0ZXN0R3JvdXApCisgICAgeworICAgICAgICBjb25zdCBhbmFseXNpc1Rhc2sg
PSB0ZXN0R3JvdXAudGFzaygpIHx8IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQodGVzdEdy
b3VwLl90YXNrSWQpOworICAgICAgICBjb25zdCBhbmFseXNpc1Jlc3VsdHMgPSBhd2FpdCBBbmFs
eXNpc1Jlc3VsdHMuZmV0Y2goYW5hbHlzaXNUYXNrLmlkKCkpOworICAgICAgICBjb25zdCByZXF1
ZXN0ZWRDb21taXRTZXRzID0gdGVzdEdyb3VwLnJlcXVlc3RlZENvbW1pdFNldHMoKTsKKyAgICAg
ICAgY29uc3QgYW5hbHlzaXNUYXNrVVJMID0gRW1haWxOb3RpZmllci5fVVJMRm9yQW5hbHlzaXNU
YXNrKGFuYWx5c2lzVGFzayk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcXVlc3RlZENvbW1p
dFNldHMubGVuZ3RoLCAyKTsKKyAgICAgICAgY29uc3QgY29tcGxldGVkQ291bnQgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmZpbHRlcigoYnVpbGRSZXF1ZXN0KSA9PiBidWlsZFJlcXVlc3Qu
aGFzQ29tcGxldGVkKCkpLmxlbmd0aDsKKyAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0c0ZvclN0
YXJ0Q29tbWl0U2V0ID0gdGVzdEdyb3VwLnJlcXVlc3RzRm9yQ29tbWl0U2V0KHJlcXVlc3RlZENv
bW1pdFNldHNbMF0pOworICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzRm9yRW5kQ29tbWl0U2V0
ID0gdGVzdEdyb3VwLnJlcXVlc3RzRm9yQ29tbWl0U2V0KHJlcXVlc3RlZENvbW1pdFNldHNbMV0p
OworICAgICAgICBjb25zdCB0b3RhbFJvd3MgPSBidWlsZFJlcXVlc3RzRm9yU3RhcnRDb21taXRT
ZXQubGVuZ3RoICsgYnVpbGRSZXF1ZXN0c0ZvckVuZENvbW1pdFNldC5sZW5ndGg7CisKKyAgICAg
ICAgbGV0IG1lc3NhZ2UgPSBgPGI+IiR7RW1haWxOb3RpZmllci5fY2hhcmFjdGVyUmVmZXJlbmNl
KHRlc3RHcm91cC5uYW1lKCkpfSI8L2I+IGZyb20gPGEgaHJlZj0iJHthbmFseXNpc1Rhc2tVUkx9
Ij48Yj4ke0VtYWlsTm90aWZpZXIuX2NoYXJhY3RlclJlZmVyZW5jZShhbmFseXNpc1Rhc2submFt
ZSgpKX08L2I+PC9hPiBoYXMgZmluaXNoZWQuIFN1Y2Nlc3MgcmF0ZTogJHtjb21wbGV0ZWRDb3Vu
dH0gLyAke3RvdGFsUm93c30uPGJyPmA7CisgICAgICAgIGxldCB0YWJsZSA9IGA8dGFibGUgYm9y
ZGVyPSIxIj48dGhlYWQ+PHRyPjx0aD5UZXN0PC90aD48dGg+TGFiZWw8L3RoPjx0aD5SZXN1bHQ8
L3RoPjx0aD5BdmVyYWdlPC90aD48dGg+Q29tcGFyaXNvbjwvdGg+PC90cj48L3RoZWFkPjx0Ym9k
eT5gOworCisgICAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UpOworICAgICAgICBjb25zdCB0ZXN0
ID0gdGVzdEdyb3VwLnRlc3QoKTsKKyAgICAgICAgY29uc3QgbWV0cmljcyA9IGFuYWx5c2lzVGFz
ay5tZXRyaWMoKSA/IFthbmFseXNpc1Rhc2subWV0cmljKCldIDogdGVzdC5tZXRyaWNzKCk7Cisg
ICAgICAgIGZvciAoY29uc3QgbWV0cmljIG9mIG1ldHJpY3MpIHsKKyAgICAgICAgICAgIGNvbnN0
IGZvcm1hdHRlciA9IG1ldHJpYy5tYWtlRm9ybWF0dGVyKDQpOworICAgICAgICAgICAgY29uc3Qg
ZGVsdGFGb3JtYXR0ZXIgPSBtZXRyaWMubWFrZUZvcm1hdHRlcigyLCBmYWxzZSk7CisgICAgICAg
ICAgICBjb25zdCBmb3JtYXRWYWx1ZSA9ICh2YWx1ZSwgaW50ZXJ2YWwpID0+IHsKKyAgICAgICAg
ICAgICAgICBjb25zdCBkZWx0YSA9IGludGVydmFsID8gKGludGVydmFsWzFdIC0gaW50ZXJ2YWxb
MF0pIC8gMiA6IG51bGw7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHZhbHVlID09IG51
bGwgfHwgaXNOYU4odmFsdWUpID8gJy0nIDogZm9ybWF0dGVyKHZhbHVlKTsKKyAgICAgICAgICAg
ICAgICBpZiAoZGVsdGEgIT0gbnVsbCAmJiAhaXNOYU4oZGVsdGEpKQorICAgICAgICAgICAgICAg
ICAgICByZXN1bHQgKz0gYCBcdTAwYjEgJHtkZWx0YUZvcm1hdHRlcihkZWx0YSl9YDsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAg
Y29uc3QgYW5hbHlzaXNSZXN1bHRzVmlldyA9IGFuYWx5c2lzUmVzdWx0cy52aWV3Rm9yTWV0cmlj
KG1ldHJpYyk7CisgICAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudHNGb3JCdWlsZFJlcXVlc3Rz
ID0gKHJlcXVlc3RzKSA9PiByZXF1ZXN0cy5tYXAoKHJlcXVlc3QpID0+IGFuYWx5c2lzUmVzdWx0
c1ZpZXcucmVzdWx0Rm9yUmVxdWVzdChyZXF1ZXN0KSk7CisgICAgICAgICAgICBjb25zdCBzdGFy
dFZhbHVlcyA9IG1lYXN1cmVtZW50c0ZvckJ1aWxkUmVxdWVzdHMoYnVpbGRSZXF1ZXN0c0ZvclN0
YXJ0Q29tbWl0U2V0KS5maWx0ZXIoKHJlc3VsdCkgPT4gISFyZXN1bHQpLm1hcCgocmVzdWx0KSA9
PiByZXN1bHQudmFsdWUpOworICAgICAgICAgICAgY29uc3QgZW5kVmFsdWVzID0gbWVhc3VyZW1l
bnRzRm9yQnVpbGRSZXF1ZXN0cyhidWlsZFJlcXVlc3RzRm9yRW5kQ29tbWl0U2V0KS5maWx0ZXIo
KHJlc3VsdCkgPT4gISFyZXN1bHQpLm1hcCgocmVzdWx0KSA9PiByZXN1bHQudmFsdWUpOworICAg
ICAgICAgICAgY29uc3QgY29tcGFyaXNvbiA9IHRlc3RHcm91cC5jb21wYXJlVGVzdFJlc3VsdHMo
YW5hbHlzaXNUYXNrLm1ldHJpYygpLCBzdGFydFZhbHVlcywgZW5kVmFsdWVzKTsKKworICAgICAg
ICAgICAgaWYgKGNvbXBhcmlzb24uc3RhdHVzICE9PSAnZmFpbGVkJykgeworICAgICAgICAgICAg
ICAgIC8vIGNvbnNvbGUubG9nKG1ldHJpYyk7CisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSBg
JHtFbWFpbE5vdGlmaWVyLl9jaGFyYWN0ZXJSZWZlcmVuY2UodGVzdEdyb3VwLnRlc3QoKS5uYW1l
KCkpfSAtICR7RW1haWxOb3RpZmllci5fY2hhcmFjdGVyUmVmZXJlbmNlKG1ldHJpYy5hZ2dyZWdh
dG9yTGFiZWwoKSl9OiAke0VtYWlsTm90aWZpZXIuX2NoYXJhY3RlclJlZmVyZW5jZShjb21wYXJp
c29uLmZ1bGxMYWJlbCl9PGJyPmA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCBm
aXJzdFJvdyA9IHRydWU7CisgICAgICAgICAgICBmb3IoY29uc3QgbWVhc3VyZW1lbnQgb2YgbWVh
c3VyZW1lbnRzRm9yQnVpbGRSZXF1ZXN0cyhidWlsZFJlcXVlc3RzRm9yU3RhcnRDb21taXRTZXQp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0Um93KSB7CisgICAgICAgICAgICAgICAgICAg
IGZpcnN0Um93ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHRhYmxlICs9IGA8dHI+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8dGggcm93c3Bhbj0ke3RvdGFsUm93c30+JHtFbWFpbE5v
dGlmaWVyLl9jaGFyYWN0ZXJSZWZlcmVuY2UodGVzdEdyb3VwLnBsYXRmb3JtKCkubmFtZSgpKX0g
OiAke0VtYWlsTm90aWZpZXIuX2NoYXJhY3RlclJlZmVyZW5jZSh0ZXN0R3JvdXAudGVzdCgpLm5h
bWUoKSl9IDogJHtFbWFpbE5vdGlmaWVyLl9jaGFyYWN0ZXJSZWZlcmVuY2UobWV0cmljLmFnZ3Jl
Z2F0b3JMYWJlbCgpKX08L3RoPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHJvd3NwYW49
JHtidWlsZFJlcXVlc3RzRm9yU3RhcnRDb21taXRTZXQubGVuZ3RofT4ke3Rlc3RHcm91cC5sYWJl
bEZvckNvbW1pdFNldChyZXF1ZXN0ZWRDb21taXRTZXRzWzBdKX08L3RoPgorICAgICAgICAgICAg
ICAgICAgICAgICAgPHRkPiR7bWVhc3VyZW1lbnQgPyBmb3JtYXRWYWx1ZShtZWFzdXJlbWVudC52
YWx1ZSwgbWVhc3VyZW1lbnQuaW50ZXJ2YWwpIDogJ0ZhaWxlZCd9PC90ZD4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSR7YnVpbGRSZXF1ZXN0c0ZvclN0YXJ0Q29tbWl0U2V0
Lmxlbmd0aH0+JHtmb3JtYXRWYWx1ZShTdGF0aXN0aWNzLm1lYW4oc3RhcnRWYWx1ZXMpLCBTdGF0
aXN0aWNzLmNvbmZpZGVuY2VJbnRlcnZhbChzdGFydFZhbHVlcykpfTwvdGQ+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8dGQgcm93c3Bhbj0ke3RvdGFsUm93c30+JHtFbWFpbE5vdGlmaWVyLl9j
aGFyYWN0ZXJSZWZlcmVuY2UoY29tcGFyaXNvbi5mdWxsTGFiZWwpfTwvdGQ+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8L3RyPmA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGFibGUgKz0gYDx0cj4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDx0ZD4ke21lYXN1cmVtZW50ID8gZm9ybWF0VmFsdWUobWVhc3VyZW1lbnQudmFs
dWUsIG1lYXN1cmVtZW50LmludGVydmFsKSA6ICdGYWlsZWQnfTwvdGQ+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8L3RyPmA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpcnN0Um93
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvcihjb25zdCBtZWFzdXJlbWVudCBvZiBtZWFzdXJlbWVu
dHNGb3JCdWlsZFJlcXVlc3RzKGJ1aWxkUmVxdWVzdHNGb3JFbmRDb21taXRTZXQpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGZpcnN0Um93KSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0Um93
ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHRhYmxlICs9IGA8dHI+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8dGggcm93c3Bhbj0ke2J1aWxkUmVxdWVzdHNGb3JFbmRDb21taXRTZXQu
bGVuZ3RofT4ke3Rlc3RHcm91cC5sYWJlbEZvckNvbW1pdFNldChyZXF1ZXN0ZWRDb21taXRTZXRz
WzFdKX08L3RoPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR7bWVhc3VyZW1lbnQgPyBm
b3JtYXRWYWx1ZShtZWFzdXJlbWVudC52YWx1ZSwgbWVhc3VyZW1lbnQuaW50ZXJ2YWwpIDogJ0Zh
aWxlZCd9PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSR7YnVpbGRS
ZXF1ZXN0c0ZvckVuZENvbW1pdFNldC5sZW5ndGh9PiR7Zm9ybWF0VmFsdWUoU3RhdGlzdGljcy5t
ZWFuKGVuZFZhbHVlcyksIFN0YXRpc3RpY3MuY29uZmlkZW5jZUludGVydmFsKGVuZFZhbHVlcykp
fTwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPmA7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGFibGUgKz0gYDx0
cj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4ke21lYXN1cmVtZW50ID8gZm9ybWF0VmFs
dWUobWVhc3VyZW1lbnQudmFsdWUsIG1lYXN1cmVtZW50LmludGVydmFsKSA6ICdGYWlsZWQnfTwv
dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPmA7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgdGFibGUgKz0gJzwvdGJvZHk+PC90YWJsZT4nOworCisgICAgICAgIHJl
dHVybiBtZXNzYWdlICsgdGFibGU7CisgICAgfQorCisgICAgc3RhdGljIF9VUkxGb3JBbmFseXNp
c1Rhc2soYW5hbHlzaXNUYXNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdsb2JhbC5SZW1vdGVB
UEkudXJsKGAvdjMvIy9hbmFseXNpcy90YXNrLyR7YW5hbHlzaXNUYXNrLmlkKCl9YCk7CisgICAg
fQorCisgICAgYXN5bmMgX3NlbmRFbWFpbChjb250ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5f
ZW1haWxTZXJ2ZXJSZW1vdGVBUEkucG9zdEpTT04odGhpcy5fZW1haWxTZXJ2aWNlUGF0aCwgY29u
dGVudCk7CisgICAgfQorCisgICAgc3RhdGljIF9pbnN0YW50aWF0ZU5vdGlmaWNhdGlvblRlbXBs
YXRlKHRlbXBsYXRlLCB0aXRsZSwgcmVjaXBpZW50cywgbWVzc2FnZSkKKyAgICB7CisgICAgICAg
IGNvbnN0IGluc3RhbmNlID0ge307CisgICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiB0ZW1wbGF0
ZSkgeworICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0ZW1wbGF0ZVtuYW1lXTsKKyAgICAgICAg
ICAgIGlmICh0eXBlb2YodmFsdWUpID09PSAnc3RyaW5nJykKKyAgICAgICAgICAgICAgICBpbnN0
YW5jZVtuYW1lXSA9IHZhbHVlLnJlcGxhY2UoL1wkdGl0bGUvZywgdGl0bGUpLnJlcGxhY2UoL1wk
bWVzc2FnZS9nLCBtZXNzYWdlKS5yZXBsYWNlKC9cJHJlY2lwaWVudHMvZywgcmVjaXBpZW50cyk7
CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YodGVtcGxhdGVbbmFtZV0pID09PSAnb2JqZWN0
JykKKyAgICAgICAgICAgICAgICBpbnN0YW5jZVtuYW1lXSA9IHRoaXMuX2luc3RhbnRpYXRlTm90
aWZpY2F0aW9uVGVtcGxhdGUodmFsdWUsIHRpdGxlLCByZWNpcGllbnRzLCBtZXNzYWdlKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpbnN0YW5jZVtuYW1lXSA9IHZhbHVlOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICB9Cit9CisKKworaWYgKHR5
cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKQorICAgIG1vZHVsZS5leHBvcnRzLkVtYWlsTm90
aWZpZXIgPSBFbWFpbE5vdGlmaWVyOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tZWFzdXJlbWVudC1zZXQt
YW5hbHl6ZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvbWVhc3VyZW1l
bnQtc2V0LWFuYWx5emVyLmpzCmluZGV4IDJkYjA0N2E0YmQxNDhhMTM4ODRkZDRkZmZhNmE0ZDc4
MDc0ZGU0NjkuLmM5M2I5MGJlY2Y4YjlkNjcwZjQ1M2Y5YmMzZTQ3MzlmZjljY2M4NTYgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tZWFzdXJlbWVudC1zZXQt
YW5hbHl6ZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21lYXN1
cmVtZW50LXNldC1hbmFseXplci5qcwpAQCAtMTA0LDcgKzEwNCw3IEBAIGNsYXNzIE1lYXN1cmVt
ZW50U2V0QW5hbHl6ZXIgewogCiAgICAgICAgIC8vIEZJWE1FOiBUaGUgaXRlcmF0aW9uIGNvdW50
IHNob3VsZCBiZSBzbWFydGVyIHRoYW4gaGFyZC1jb2RpbmcuCiAgICAgICAgIGNvbnN0IGFuYWx5
c2lzVGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5jcmVhdGUoc3VtbWFyeSwgcmFuZ2VXaXRoTW9z
dFNpZ25pZmljYW50Q2hhbmdlLnN0YXJ0UG9pbnQsCi0gICAgICAgICAgICByYW5nZVdpdGhNb3N0
U2lnbmlmaWNhbnRDaGFuZ2UuZW5kUG9pbnQsICdDb25maXJtJywgNCk7CisgICAgICAgICAgICBy
YW5nZVdpdGhNb3N0U2lnbmlmaWNhbnRDaGFuZ2UuZW5kUG9pbnQsICdDb25maXJtJywgNCwgdHJ1
ZSk7CiAKICAgICAgICAgdGhpcy5fbG9nZ2VyLmluZm8oYENyZWF0ZWQgYW5hbHlzaXMgdGFzayB3
aXRoIGlkICIke2FuYWx5c2lzVGFzay5pZCgpfSIgdG8gY29uZmlybTogIiR7c3VtbWFyeX0iLmAp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92
My1tb2RlbHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxz
LmpzCmluZGV4IGUxYjI0OWM0ZjE3NDU0OWFkMDY4OWJlNjBlOWY3OWI3OWY3ZWJlODQuLmYyMDhl
ODQ4ZjA1NjMzNTBjM2FjYjU1MWZmODk4MmEzYzhmZjQyODAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwpAQCAtMTEsNiArMTEsNyBAQCBpbXBv
cnRGcm9tVjMoJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ0RhdGFNb2RlbE9iamVjdCcpOwogaW1w
b3J0RnJvbVYzKCdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdMYWJlbGVkT2JqZWN0Jyk7CiAKIGlt
cG9ydEZyb21WMygnbW9kZWxzL2FuYWx5c2lzLXRhc2suanMnLCAnQW5hbHlzaXNUYXNrJyk7Citp
bXBvcnRGcm9tVjMoJ21vZGVscy9hbmFseXNpcy1yZXN1bHRzLmpzJywgJ0FuYWx5c2lzUmVzdWx0
cycpOwogaW1wb3J0RnJvbVYzKCdtb2RlbHMvYnVnLmpzJywgJ0J1ZycpOwogaW1wb3J0RnJvbVYz
KCdtb2RlbHMvYnVnLXRyYWNrZXIuanMnLCAnQnVnVHJhY2tlcicpOwogaW1wb3J0RnJvbVYzKCdt
b2RlbHMvYnVpbGQtcmVxdWVzdC5qcycsICdCdWlsZFJlcXVlc3QnKTsKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9ydW4tYW5hbHlzaXMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvcnVuLWFuYWx5c2lzLmpzCmluZGV4IDA4MWEwZDEwNGNiZDQy
MTUwMTJiOGI2YTNkZWRiYTg5OWI4OTNkOWUuLjc1YmVkZTU1MmZkMjg1N2QwZjcxOTRiYTM3ZDEw
ZTFkMjA5NGVlZmQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9y
dW4tYW5hbHlzaXMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3J1bi1h
bmFseXNpcy5qcwpAQCAtMyw3ICszLDkgQEAKIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTsKIGNv
bnN0IHBhcnNlQXJndW1lbnRzID0gcmVxdWlyZSgnLi9qcy9wYXJzZS1hcmd1bWVudHMuanMnKS5w
YXJzZUFyZ3VtZW50czsKIGNvbnN0IFJlbW90ZUFQSSA9IHJlcXVpcmUoJy4vanMvcmVtb3RlLmpz
JykuUmVtb3RlQVBJOwotY29uc3QgTWVhc3VyZW1lbnRTZXRBbmFseXplciA9IHJlcXVpcmUoJy4v
anMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyJykuTWVhc3VyZW1lbnRTZXRBbmFseXplcjsKK2Nv
bnN0IE1lYXN1cmVtZW50U2V0QW5hbHl6ZXIgPSByZXF1aXJlKCcuL2pzL21lYXN1cmVtZW50LXNl
dC1hbmFseXplci5qcycpLk1lYXN1cmVtZW50U2V0QW5hbHl6ZXI7Citjb25zdCBFbWFpbE5vdGlm
aWVyID0gcmVxdWlyZSgnLi9qcy9lbWFpbC1ub3RpZmllci5qcycpLkVtYWlsTm90aWZpZXI7Citj
b25zdCBTdWJwcm9jZXNzID0gcmVxdWlyZSgnLi9qcy9zdWJwcm9jZXNzLmpzJykuU3VicHJvY2Vz
czsKIHJlcXVpcmUoJy4vanMvdjMtbW9kZWxzLmpzJyk7CiBnbG9iYWwuUHJpdmlsZWdlZEFQSSA9
IHJlcXVpcmUoJy4vanMvcHJpdmlsZWdlZC1hcGkuanMnKS5Qcml2aWxlZ2VkQVBJOwogCkBAIC0x
MSw2ICsxMyw3IEBAIGZ1bmN0aW9uIG1haW4oYXJndikKIHsKICAgICBjb25zdCBvcHRpb25zID0g
cGFyc2VBcmd1bWVudHMoYXJndiwgWwogICAgICAgICB7bmFtZTogJy0tc2VydmVyLWNvbmZpZy1q
c29uJywgcmVxdWlyZWQ6IHRydWV9LAorICAgICAgICB7bmFtZTogJy0tbm90aWZpY2F0aW9uLWNv
bmZpZy1qc29uJywgcmVxdWlyZWQ6IHRydWV9LAogICAgICAgICB7bmFtZTogJy0tYW5hbHlzaXMt
cmFuZ2UtaW4tZGF5cycsIHR5cGU6IHBhcnNlRmxvYXQsIGRlZmF1bHQ6IDEwfSwKICAgICAgICAg
e25hbWU6ICctLXNlY29uZHMtdG8tc2xlZXAnLCB0eXBlOiBwYXJzZUZsb2F0LCBkZWZhdWx0OiAx
MjAwfSwKICAgICBdKTsKQEAgLTI2LDYgKzI5LDcgQEAgYXN5bmMgZnVuY3Rpb24gYW5hbHlzaXNM
b29wKG9wdGlvbnMpCiAgICAgbGV0IHNlY29uZHNUb1NsZWVwOwogICAgIHRyeSB7CiAgICAgICAg
IGNvbnN0IHNlcnZlckNvbmZpZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKG9wdGlvbnNb
Jy0tc2VydmVyLWNvbmZpZy1qc29uJ10sICd1dGYtOCcpKTsKKyAgICAgICAgY29uc3Qgbm90aWZp
Y2F0aW9uQ29uZmlnID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMob3B0aW9uc1snLS1ub3Rp
ZmljYXRpb24tY29uZmlnLWpzb24nXSwgJ3V0Zi04JykpOwogICAgICAgICBjb25zdCBhbmFseXNp
c1JhbmdlSW5EYXlzID0gb3B0aW9uc1snLS1hbmFseXNpcy1yYW5nZS1pbi1kYXlzJ107CiAgICAg
ICAgIHNlY29uZHNUb1NsZWVwID0gb3B0aW9uc1snLS1zZWNvbmRzLXRvLXNsZWVwJ107CiAgICAg
ICAgIGdsb2JhbC5SZW1vdGVBUEkgPSBuZXcgUmVtb3RlQVBJKHNlcnZlckNvbmZpZy5zZXJ2ZXIp
OwpAQCAtNDAsNiArNDQsMTIgQEAgYXN5bmMgZnVuY3Rpb24gYW5hbHlzaXNMb29wKG9wdGlvbnMp
CiAKICAgICAgICAgY29uc29sZS5sb2coYFN0YXJ0IGFuYWx5emluZyBsYXN0ICR7YW5hbHlzaXNS
YW5nZUluRGF5c30gZGF5cyBtZWFzdXJlbWVudCBzZXRzLmApOwogICAgICAgICBhd2FpdCBhbmFs
eXplci5hbmFseXplT25jZSgpOworCisgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBU
ZXN0R3JvdXAuZmV0Y2hBbGxXaXRoUGVuZGluZ05vdGlmaWNhdGlvbigpOworCisgICAgICAgIGNv
bnN0IG5vdGlmaWVyID0gbmV3IEVtYWlsTm90aWZpZXIobm90aWZpY2F0aW9uQ29uZmlnLmZpbmRF
bWFpbENvbW1hbmQsIG5vdGlmaWNhdGlvbkNvbmZpZy5lbWFpbEdyb3VwQ29uZmlndXJhdGlvbiwK
KyAgICAgICAgICAgIG5vdGlmaWNhdGlvbkNvbmZpZy5lbWFpbFNlcnZlckNvbmZpZywgbm90aWZp
Y2F0aW9uQ29uZmlnLmVtYWlsVGVtcGxhdGUsIG5ldyBTdWJwcm9jZXNzKTsKKyAgICAgICAgYXdh
aXQgbm90aWZpZXIuc2VuZE5vdGlmaWNhdGlvbnNGb3JUZXN0R3JvdXBzKHRlc3RHcm91cHMpOwog
ICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIGFuYWx5
emUgbWVhc3VyZW1lbnQgc2V0cyBkdWUgdG8gJHtlcnJvcn1gKTsKICAgICB9CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy10YXNrLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtdGFzay10
ZXN0cy5qcwppbmRleCAwMDhkZjNmOGE1YjA2NzZkYjBkMTkyNGEzYTU1YjQ1M2UwOTM0Nzg4Li42
MGE3Y2FjYTY3MjYyYmRhN2QyN2FhNzUyNjU1NzJkOTc5NTE3YzI0IDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy10YXNrLXRlc3RzLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXRhc2stdGVz
dHMuanMKQEAgLTMwNCw3ICszMDQsNyBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4g
ewogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuYWx5c2lzIHRhc2sgd2l0aCBjb25maXJt
aW5nIHJlcGV0aXRpb24gY291bnQgc3BlY2lmaWVkJywgYXN5bmMgKCkgPT4gewogICAgICAgICAg
ICAgY29uc3QgW3N0YXJ0UG9pbnQsIGVuZFBvaW50XSA9IG1vY2tTdGFydEFuZEVuZFBvaW50cygp
OwotICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZSgnY29uZmlybScsIHN0YXJ0UG9pbnQs
IGVuZFBvaW50LCAnQ29uZmlybScsIDQpOworICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0
ZSgnY29uZmlybScsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29uZmlybScsIDQsIHRydWUpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRl
LWNzcmYtdG9rZW4nKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoewpAQCAtMzE1
LDcgKzMxNSwyOSBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4gewogICAgICAgICAg
ICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlz
aXMtdGFzaycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFdLmRhdGEsIHtuYW1lOiAn
Y29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiA0
LCBoYXNQZW5kaW5nTm90aWZpY2F0aW9uOiB0cnVlLAorICAgICAgICAgICAgICAgIHN0YXJ0UnVu
OiAxLCBlbmRSdW46IDIsIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgdG9rZW46ICdhYmMnLCBy
ZXZpc2lvblNldHM6IFsKKyAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dl
YmtpdC1yZXZpc2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgJzIyJzoge3JldmlzaW9uOiAnaW9zLXJldmlzaW9uLTEnLCBv
d25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19LAorICAgICAgICAgICAgICAgICAgICB7
JzExJzoge3JldmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTInLCBvd25lclJldmlzaW9uOiBudWxs
LCBwYXRjaDogbnVsbH0sCisgICAgICAgICAgICAgICAgICAgICAgICAnMjInOiB7IHJldmlzaW9u
OiAnaW9zLXJldmlzaW9uLTInLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19XX0K
KyAgICAgICAgICAgICk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgY3JlYXRl
IGFuYWx5c2lzIHRhc2sgYW5kIHRlc3QgZ3JvdXBzIHdpdGggImhhc1BlbmRpbmdOb3RpZmljYXRp
b24iIHNldCB0byBmYWxzZSBpZiBzcGVjaWZpZWQgaW4gY3JlYXRpb24nLCBhc3luYyAoKSA9PiB7
CisgICAgICAgICAgICBjb25zdCBbc3RhcnRQb2ludCwgZW5kUG9pbnRdID0gbW9ja1N0YXJ0QW5k
RW5kUG9pbnRzKCk7CisgICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywg
c3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywgNCwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYtdG9rZW4n
KTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoeworICAgICAgICAgICAgICAgIHRv
a2VuOiAnYWJjJywKKyAgICAgICAgICAgICAgICBleHBpcmF0aW9uOiBEYXRlLm5vdygpICsgMzYw
MCAqIDEwMDAsCisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzFdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzaycpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFdLmRhdGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRp
b25Db3VudDogNCwgaGFzUGVuZGluZ05vdGlmaWNhdGlvbjogZmFsc2UsCiAgICAgICAgICAgICAg
ICAgc3RhcnRSdW46IDEsIGVuZFJ1bjogMiwgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLCB0b2tl
bjogJ2FiYycsIHJldmlzaW9uU2V0czogWwogICAgICAgICAgICAgICAgICAgICB7JzExJzoge3Jl
dmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTEnLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDog
bnVsbH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAnMjInOiB7cmV2aXNpb246ICdpb3MtcmV2
aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX0sCkBAIC0zMjYsNyAr
MzQ4LDcgQEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFzaycsICgpID0+IHsKIAogICAgICAgICBpdCgn
c2hvdWxkIHN5bmMgdGhlIG5ldyBhbmFseXNpcyB0YXNrIHN0YXR1cyBvbmNlIGl0IGlzIGNyZWF0
ZWQnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbc3RhcnRQb2ludCwgZW5kUG9p
bnRdID0gbW9ja1N0YXJ0QW5kRW5kUG9pbnRzKCk7Ci0gICAgICAgICAgICBjb25zdCBjcmVhdGlu
Z1Byb21pc2UgPSBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwgZW5k
UG9pbnQsICdDb25maXJtJywgNCk7CisgICAgICAgICAgICBjb25zdCBjcmVhdGluZ1Byb21pc2Ug
PSBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwgZW5kUG9pbnQsICdD
b25maXJtJywgNCwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvcHJp
dmlsZWdlZC1hcGkvZ2VuZXJhdGUtY3NyZi10b2tlbicpOwogICAgICAgICAgICAgcmVxdWVzdHNb
MF0ucmVzb2x2ZSh7CkBAIC0zMzcsNyArMzU5LDcgQEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFzaycs
ICgpID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2snKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDQsCisgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFdLmRhdGEsIHtuYW1lOiAnY29uZmlybScs
IHJlcGV0aXRpb25Db3VudDogNCwgaGFzUGVuZGluZ05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAg
ICAgICAgICAgICBzdGFydFJ1bjogMSwgZW5kUnVuOiAyLCB0ZXN0R3JvdXBOYW1lOiAnQ29uZmly
bScsIHRva2VuOiAnYWJjJywgcmV2aXNpb25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAgIHsn
MTEnOiB7cmV2aXNpb246ICd3ZWJraXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGws
IHBhdGNoOiBudWxsfSwKICAgICAgICAgICAgICAgICAgICAgICAgICcyMic6IHtyZXZpc2lvbjog
J2lvcy1yZXZpc2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKQEAg
LTM4Nyw3ICs0MDksNyBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4gewogCiAgICAg
ICAgIGl0KCdzaG91bGQgcmV0dXJuIGFuIHJlamVjdGVkIHByb21pc2Ugd2hlbiBhbmFseXNpcyB0
YXNrIGNyZWF0aW9uIGZhaWxlZCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtz
dGFydFBvaW50LCBlbmRQb2ludF0gPSBtb2NrU3RhcnRBbmRFbmRQb2ludHMoKTsKLSAgICAgICAg
ICAgIGNvbnN0IGNyZWF0aW5nUHJvbWlzZSA9IEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0n
LCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIGNvbnN0
IGNyZWF0aW5nUHJvbWlzZSA9IEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBv
aW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0LCB0cnVlKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7CiAgICAg
ICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKQEAgLTM5OCw3ICs0MjAsNyBAQCBkZXNjcmli
ZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFd
LnVybCwgJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzaycpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzFdLmRhdGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25D
b3VudDogNCwKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwg
e25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiA0LCBoYXNQZW5kaW5nTm90aWZpY2F0
aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDIsIHRlc3RH
cm91cE5hbWU6ICdDb25maXJtJywgdG9rZW46ICdhYmMnLCByZXZpc2lvblNldHM6IFsKICAgICAg
ICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dlYmtpdC1yZXZpc2lvbi0xJywgb3du
ZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LAogICAgICAgICAgICAgICAgICAgICAgICAg
JzIyJzoge3JldmlzaW9uOiAnaW9zLXJldmlzaW9uLTEnLCBvd25lclJldmlzaW9uOiBudWxsLCBw
YXRjaDogbnVsbH19LApAQCAtNDMyLDEwICs0NTQsMTAgQEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFz
aycsICgpID0+IHsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbmFseXNpcyB0YXNrIHdp
dGggY29uZmlybWluZyByZXBldGl0aW9uIGNvdW50IHNwZWNpZmllZCcsICgpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IFtzdGFydFBvaW50LCBlbmRQb2ludF0gPSBtb2NrU3RhcnRBbmRFbmRQb2lu
dHMoKTsKLSAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBv
aW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIEFuYWx5c2lzVGFzay5j
cmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0LCB0cnVl
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2snKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1swXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDQsCisgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtuYW1lOiAnY29uZmlybScs
IHJlcGV0aXRpb25Db3VudDogNCwgaGFzUGVuZGluZ05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAg
ICAgICAgICAgICBzdGFydFJ1bjogMSwgZW5kUnVuOiAyLCBzbGF2ZU5hbWU6ICd3b3JrZXInLCBz
bGF2ZVBhc3N3b3JkOiAncGFzc3dvcmQnLAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6
ICdDb25maXJtJywgcmV2aXNpb25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7
cmV2aXNpb246ICd3ZWJraXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNo
OiBudWxsfSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L2VtYWlsLW5vdGlmaWVyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvZW1haWwtbm90aWZpZXItdGVzdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE2MTliYjVjOTRhYTk5
MWFmMjZkMmRiNjMxNWRiODBhYjU3ZGEyNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2VtYWlsLW5vdGlmaWVyLXRlc3RzLmpzCkBAIC0wLDAg
KzEsNDAgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0
Jyk7Citjb25zdCBFbWFpbE5vdGlmaWVyID0gcmVxdWlyZSgnLi4vdG9vbHMvanMvZW1haWwtbm90
aWZpZXIuanMnKS5FbWFpbE5vdGlmaWVyOworCitkZXNjcmliZSgnRW1haWxOb3RpZmllcicsICgp
ID0+IHsKKyAgICBkZXNjcmliZSgnX2J1aWxkTWF0Y2hpbmdDcml0ZXJpYUJ5RW1haWxHcm91cCcs
ICgpID0+IHsKKworICAgICAgICBjb25zdCB0cnVua01hY0Jvb2sgPSAnVHJ1bmsgTWFjQm9vayc7
CisgICAgICAgIGNvbnN0IHRydW5rTWFjQm9va1BybyA9ICdUcnVuayBNYWNCb29rIFBybyc7Cisg
ICAgICAgIGNvbnN0IHRydW5rTWFjQm9va0FpciA9ICdUcnVuayBNYWNCb29rIEFpcic7CisgICAg
ICAgIGNvbnN0IHNwZWVkb21ldGVyID0gJ3NwZWVkb21ldGVyJzsKKyAgICAgICAgY29uc3Qgc3Bl
ZWRvbWV0ZXIyID0gJ3NwZWVkb21ldGVyLTInOworICAgICAgICBjb25zdCBqZXRTdHJlYW0gPSAn
SmV0U3RyZWFtJzsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBhIGdyb3VwIG9mIG1hdGNo
aW5nIGZ1bmN0aW9uIGJhc2VkIG9uIGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCBtYXRjaGluZ0NyaXRlcmlhQnlFbWFpbEdyb3VwID0gRW1haWxOb3RpZmllci5fYnVp
bGRNYXRjaGluZ0Z1bmN0aW9uQnlFbWFpbEdyb3VwKHsKKyAgICAgICAgICAgICAgICAnc3BlZWRv
bWV0ZXItcGVyZkB3ZWJraXQub3JnJzoge3Rlc3RzOiBbc3BlZWRvbWV0ZXIsIHNwZWVkb21ldGVy
Ml0sIHBsYXRmb3JtczogW3RydW5rTWFjQm9vaywgdHJ1bmtNYWNCb29rUHJvXX0sCisgICAgICAg
ICAgICAgICAgJ2pldHN0cmVhbS1wZXJmQHdlYmtpdC5vcmcnOiB7dGVzdHM6IFtqZXRTdHJlYW1d
fSwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgbGV0IG1hdGNoaW5nRnVuY3Rpb24gPSBt
YXRjaGluZ0NyaXRlcmlhQnlFbWFpbEdyb3VwLmdldCgnc3BlZWRvbWV0ZXItcGVyZkB3ZWJraXQu
b3JnJyk7CisgICAgICAgICAgICBhc3NlcnQub2sobWF0Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jv
b2ssIHNwZWVkb21ldGVyKSk7CisgICAgICAgICAgICBhc3NlcnQub2sobWF0Y2hpbmdGdW5jdGlv
bih0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMikpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKG1h
dGNoaW5nRnVuY3Rpb24odHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcikpOworICAgICAgICAg
ICAgYXNzZXJ0Lm9rKG1hdGNoaW5nRnVuY3Rpb24odHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRl
cjIpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghbWF0Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jv
b2ssIGpldFN0cmVhbSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFtYXRjaGluZ0Z1bmN0aW9u
KHRydW5rTWFjQm9va0Fpciwgc3BlZWRvbWV0ZXIpKTsKKyAgICAgICAgICAgIGFzc2VydC5vaygh
bWF0Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jvb2tBaXIsIGpldFN0cmVhbSkpOworCisgICAgICAg
ICAgICBtYXRjaGluZ0Z1bmN0aW9uID0gbWF0Y2hpbmdDcml0ZXJpYUJ5RW1haWxHcm91cC5nZXQo
J2pldHN0cmVhbS1wZXJmQHdlYmtpdC5vcmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghbWF0
Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyKSk7CisgICAgICAgICAgICBh
c3NlcnQub2soIW1hdGNoaW5nRnVuY3Rpb24odHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIpKTsK
KyAgICAgICAgICAgIGFzc2VydC5vayghbWF0Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jvb2tQcm8s
IHNwZWVkb21ldGVyKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIW1hdGNoaW5nRnVuY3Rpb24o
dHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayht
YXRjaGluZ0Z1bmN0aW9uKHRydW5rTWFjQm9vaywgamV0U3RyZWFtKSk7CisgICAgICAgICAgICBh
c3NlcnQub2sobWF0Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jvb2tQcm8sIGpldFN0cmVhbSkpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKG1hdGNoaW5nRnVuY3Rpb24odHJ1bmtNYWNCb29rQWlyLCBq
ZXRTdHJlYW0pKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0
cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMKaW5kZXgg
NmE4OWYzNTMyNDQwZDMyNjkzNzhhMjdiODBhMGMzY2M0YzVkZjEzYy4uZjgxZTZkMzc1NTk2N2Rm
M2YwYWI4OTVhNmE1MGIzZmUzYTE5NTY3ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLXRlc3RzLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC1hbmFs
eXplci10ZXN0cy5qcwpAQCAtMTg5LDYgKzE4OSw3IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNl
dEFuYWx5emVyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGVuZFJ1bjogNjQ0MywKICAgICAg
ICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IDQsCiAgICAgICAgICAgICAgICAgdGVzdEdyb3Vw
TmFtZTogJ0NvbmZpcm0nLAorICAgICAgICAgICAgICAgIGhhc1BlbmRpbmdOb3RpZmljYXRpb246
IHRydWUsCiAgICAgICAgICAgICAgICAgcmV2aXNpb25TZXRzOiBbeycxMSc6IHtyZXZpc2lvbjog
MzUsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX0sCiAgICAgICAgICAgICAgICAg
ICAgIHsnMTEnOiB7cmV2aXNpb246IDQ0LCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVs
bH19XQogICAgICAgICAgICAgfSk7CkBAIC0yNDIsNiArMjQzLDcgQEAgZGVzY3JpYmUoJ01lYXN1
cmVtZW50U2V0QW5hbHl6ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgZW5kUnVuOiA2NDQz
LAogICAgICAgICAgICAgICAgIHJlcGV0aXRpb25Db3VudDogNCwKICAgICAgICAgICAgICAgICB0
ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsCisgICAgICAgICAgICAgICAgaGFzUGVuZGluZ05vdGlm
aWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICByZXZpc2lvblNldHM6IFt7JzExJzoge3Jl
dmlzaW9uOiAzNSwgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKICAgICAgICAg
ICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogNDQsIG93bmVyUmV2aXNpb246IG51bGwsIHBh
dGNoOiBudWxsfX1dCiAgICAgICAgICAgICB9KTsKQEAgLTM4Niw2ICszODgsNyBAQCBkZXNjcmli
ZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBlbmRS
dW46IDY0NDgsCiAgICAgICAgICAgICAgICAgcmVwZXRpdGlvbkNvdW50OiA0LAogICAgICAgICAg
ICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAgICAgICAgICAgICAgICBoYXNQZW5k
aW5nTm90aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czogW3sn
MTEnOiB7cmV2aXNpb246IDQwLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19LAog
ICAgICAgICAgICAgICAgICAgICB7JzExJzoge3JldmlzaW9uOiA0OSwgb3duZXJSZXZpc2lvbjog
bnVsbCwgcGF0Y2g6IG51bGx9fV0KICAgICAgICAgICAgIH0pOwpAQCAtNDcyLDYgKzQ3NSw3IEBA
IGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldEFuYWx5emVyJywgKCkgPT4gewogICAgICAgICAgICAg
ICAgIGVuZFJ1bjogNjQwNywKICAgICAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IDQsCiAg
ICAgICAgICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLAorICAgICAgICAgICAgICAg
IGhhc1BlbmRpbmdOb3RpZmljYXRpb246IHRydWUsCiAgICAgICAgICAgICAgICAgcmV2aXNpb25T
ZXRzOiBbeycxMSc6IHtyZXZpc2lvbjogMywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51
bGx9fSwKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogOCwgb3duZXJSZXZp
c2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fV0KICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5q
cwppbmRleCBkZTU5NjUyNTEyYzM4Yjg5OTIzYjk1ZmViZmUyYzVmMDdlYWQwY2ViLi41ZjQyOTdl
ZmM5MjQ2OTE1ZWE5MzRmNjU4NDYxZGYxNzI0ZWY4NTU3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qcwpAQCAt
Myw2ICszLDcgQEAKIGNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogcmVxdWlyZSgn
Li4vdG9vbHMvanMvdjMtbW9kZWxzLmpzJyk7CiBjb25zdCBCcm93c2VyUHJpdmlsZWdlZEFQSSA9
IHJlcXVpcmUoJy4uL3B1YmxpYy92My9wcml2aWxlZ2VkLWFwaS5qcycpLlByaXZpbGVnZWRBUEk7
Citjb25zdCBOb2RlUHJpdmlsZWdlZEFQSSA9IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL3ByaXZpbGVn
ZWQtYXBpLmpzJykuUHJpdmlsZWdlZEFQSTsKIGNvbnN0IE1vY2tNb2RlbHMgPSByZXF1aXJlKCcu
L3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcycpLk1vY2tNb2RlbHM7CiBjb25zdCBNb2NrUmVt
b3RlQVBJID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzJykuTW9ja1Jl
bW90ZUFQSTsKIApAQCAtMTYsNiArMTcsNyBAQCBmdW5jdGlvbiBzYW1wbGVUZXN0R3JvdXAoKSB7
CiAgICAgICAgICAgICAiYXV0aG9yIjogInJuaXdhIiwKICAgICAgICAgICAgICJjcmVhdGVkQXQi
OiAxNDU4Njg4NTE0MDAwLAogICAgICAgICAgICAgImhpZGRlbiI6IGZhbHNlLAorICAgICAgICAg
ICAgImhhc1BlbmRpbmdOb3RpZmljYXRpb24iOiB0cnVlLAogICAgICAgICAgICAgImJ1aWxkUmVx
dWVzdHMiOiBbIjE2OTg1IiwgIjE2OTg2IiwgIjE2OTg3IiwgIjE2OTg4IiwgIjE2OTg5IiwgIjE2
OTkwIiwgIjE2OTkxIiwgIjE2OTkyIl0sCiAgICAgICAgICAgICAiY29tbWl0U2V0cyI6IFsiNDI1
NSIsICI0MjU2Il0sCiAgICAgICAgIH1dLApAQCAtMTM3LDYgKzEzOSw0MSBAQCBkZXNjcmliZSgn
VGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGRl
c2NyaWJlKCdoYXNQZW5kaW5nTm90aWZpY2F0aW9uJywgKCkgPT4geworICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkuaW5qZWN0KCdodHRwczovL3BlcmYud2Via2l0Lm9yZycs
IE5vZGVQcml2aWxlZ2VkQVBJKTsKKyAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7CisgICAgICAg
ICAgICBQcml2aWxlZ2VkQVBJLmNvbmZpZ3VyZSgndGVzdCcsICdwYXNzd29yZCcpOworICAgICAg
ICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHVwZGF0ZSBub3RpZmllZCBhdXRob3IgZmxhZycs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGZldGNoUHJvbWlzZSA9IFRlc3RHcm91
cC5mZXRjaEZvclRhc2soMTM3Nik7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHNh
bXBsZVRlc3RHcm91cCgpKTsKKyAgICAgICAgICAgIGxldCB0ZXN0R3JvdXBzID0gYXdhaXQgZmV0
Y2hQcm9taXNlOworICAgICAgICAgICAgYXNzZXJ0KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGxldCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5oYXNQZW5kaW5nTm90aWZpY2F0aW9uKCksIHRydWUpOworCisg
ICAgICAgICAgICBjb25zdCB1cGRhdGVQcm9taXNlID0gdGVzdEdyb3VwLmRpZFNlbmROb3RpZmlj
YXRpb24oKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ1BPU1QnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvcHJpdmlsZWdlZC1hcGkv
dXBkYXRlLXRlc3QtZ3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVz
dHNbMV0uZGF0YSwge2dyb3VwOiAnMjEyOCcsIGhhc1BlbmRpbmdOb3RpZmljYXRpb246IGZhbHNl
LCBzbGF2ZU5hbWU6ICd0ZXN0Jywgc2xhdmVQYXNzd29yZDogJ3Bhc3N3b3JkJ30pOworICAgICAg
ICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSgpOworCisgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcv
YXBpL3Rlc3QtZ3JvdXBzLzIxMjgnKTsKKyAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUZXN0R3Jv
dXAgPSBzYW1wbGVUZXN0R3JvdXAoKTsKKyAgICAgICAgICAgIHVwZGF0ZWRUZXN0R3JvdXAudGVz
dEdyb3Vwc1swXS5oYXNQZW5kaW5nTm90aWZpY2F0aW9uID0gZmFsc2U7CisgICAgICAgICAgICBy
ZXF1ZXN0c1syXS5yZXNvbHZlKHVwZGF0ZWRUZXN0R3JvdXApOworCisgICAgICAgICAgICB0ZXN0
R3JvdXBzID0gYXdhaXQgdXBkYXRlUHJvbWlzZTsKKyAgICAgICAgICAgIHRlc3RHcm91cCA9IHRl
c3RHcm91cHNbMF07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmhhc1BlbmRp
bmdOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICB9KTsKKyAgICB9KTsKKwogICAgIGRl
c2NyaWJlKCdfY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSB0ZXN0IGdyb3VwcycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHZhciBncm91cHMgPSBUZXN0R3JvdXAuX2NyZWF0ZU1vZGVsc0Zyb21GZXRj
aGVkVGVzdEdyb3VwcyhzYW1wbGVUZXN0R3JvdXAoKSk7CkBAIC0xNDcsNiArMTg0LDcgQEAgZGVz
Y3JpYmUoJ1Rlc3RHcm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5pZCgpLCAyMTI4KTsKICAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5jcmVhdGVk
QXQoKSBpbnN0YW5jZW9mIERhdGUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlz
SGlkZGVuKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5oYXNQZW5k
aW5nTm90aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtncm91
cC5jcmVhdGVkQXQoKSwgMTQ1ODY4ODUxNDAwMCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIHNhbXBsZVRlc3RHcm91cCgpWydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoIC8gMik7CiAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuaGFzUGVuZGluZygp
KTsKQEAgLTM2MSw3ICszOTksNyBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkoTW9ja01vZGVscy53
ZWJraXQsICcxOTE2MjMnKTsKICAgICAgICAgICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0
b3J5KE1vY2tNb2RlbHMuc2hhcmVkUmVwb3NpdG9yeSwgJzgwMjI5Jyk7CiAKLSAgICAgICAgICAg
IGNvbnN0IHByb21pc2UgPSBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ3NvbWUtdGFzaycsIE1v
Y2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0LCAnc29tZS1ncm91cCcs
IDQsIFtzZXQxLCBzZXQyXSk7CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gVGVzdEdyb3Vw
LmNyZWF0ZVdpdGhUYXNrKCdzb21lLXRhc2snLCBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9j
a01vZGVscy5zb21lVGVzdCwgJ3NvbWUtZ3JvdXAnLCA0LCBbc2V0MSwgc2V0Ml0sIHRydWUpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRl
LWNzcmYtdG9rZW4nKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoewpAQCAtMzcx
LDYgKzQwOSwxMCBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXF1ZXN0c1syXS5kYXRhLCB7dGFza05hbWU6ICdzb21lLXRhc2snLCBuYW1lOiAnc29t
ZS1ncm91cCcsIHBsYXRmb3JtOiA2NSwgdGVzdDogMSwKKyAgICAgICAgICAgICAgICByZXBldGl0
aW9uQ291bnQ6IDQsIHJldmlzaW9uU2V0czogW3snMTEnOiB7b3duZXJSZXZpc2lvbjogbnVsbCwg
cGF0Y2g6IG51bGwsIHJldmlzaW9uOiAiMTkxNjIyIn0sCisgICAgICAgICAgICAgICAgICAgICcx
Nic6IHtvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbCwgcmV2aXNpb246ICI4MDIyOSJ9
fSwgeycxMSc6IHtvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbCwgcmV2aXNpb246ICIx
OTE2MjMifSwKKyAgICAgICAgICAgICAgICAgICAgJzE2Jzoge293bmVyUmV2aXNpb246IG51bGws
IHBhdGNoOiBudWxsLCByZXZpc2lvbjogIjgwMjI5In19XSwgaGFzUGVuZGluZ05vdGlmaWNhdGlv
bjogdHJ1ZSwgdG9rZW46ICdhYmMnfSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJyk7CiAgICAgICAg
ICAgICByZXF1ZXN0c1syXS5yZXNvbHZlKHsKICAgICAgICAgICAgICAgICB0YXNrSWQ6IDEyMywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341502</attachid>
            <date>2018-05-29 11:56:11 -0700</date>
            <delta_ts>2018-06-01 22:05:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184340-20180529115610.patch</filename>
            <type>text/plain</type>
            <size>118264</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMjE2CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBjOTU0M2ZmMDhkY2Y5ZTNjODVhMTcwZjk1ZTJiNGVlM2U4ODYzYzA2Li40MjkzMmI4ZDQ4
OGZkNDFjNDczYTgxOWY1NWM2MDFkZTJlOTMyOThkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMTAgQEAKKzIwMTgtMDUtMjQgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgc2VuZGluZyBub3RpZmljYXRpb24gZmVhdHVy
ZSB3aGVuIHRlc3QgZ3JvdXAgZmluaXNoZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicg
ZmlsZWQgdG8gJ2FuYWx5c2lzX3Rlc3RfZ3JvdXAnIHRhYmxlIHRvIGluZGljYXRlIHdoZXRoZXIg
YSB0ZXN0IGdyb3VwCisgICAgICAgIGhhcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uLlNRTCBxdWVy
eSB0byB1cGRhdGUgZXhpc3RpbmcgZGF0YWJhc2UgaXM6CisgICAgICAgICAgICAnQUxURVIgVEFC
TEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgQUREIENPTFVNTiB0ZXN0Z3JvdXBfbmVlZHNfbm90aWZp
Y2F0aW9uIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRTsnCisgICAgICAgIFVwZGF0ZWQg
J3J1bi1hbmFseXNpcycgc2NyaXB0IHRvIGJlIGFibGUgdG8gc2VuZCBub3RpZmljYXRpb24gd2hl
biB0ZXN0IGdyb3VwIGZpbmlzaGVzLgorICAgICAgICBBZGRlZCAnTm90aWZ5IG9uIGNvbXBsZXRp
b24nIGNoZWNrYm94IHdoaWxlIGNyZWF0aW5nL3JldHJ5aW5nL2Jpc2VjdGluZyBhIHRlc3QgZ3Jv
dXAuCisKKyAgICAgICAgKiBicm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qczog
VXBkYXRlZCBleGlzdGluZyB0ZXN0cyBhbmQgYWRkZWQgYSBuZXcgdGVzdC4KKyAgICAgICAgKiBp
bml0LWRhdGFiYXNlLnNxbDogQWRkZWQgJ3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nIGZp
bGVkIHRvICdhbmFseXNpc190ZXN0X2dyb3VwJyB0YWJsZS4KKyAgICAgICAgKiBwdWJsaWMvYXBp
L3Rlc3QtZ3JvdXBzLnBocDogQWRkZWQgJ25vdGlmaWNhdGlvbnMtcGVuZGluZz10cnVlJyBBUEkg
dG8gJ3Rlc3QtZ3JvdXAnIHRvIHNob3cgYWxsCisgICAgICAgIHRlc3QgZ3JvdXBzIHRoYXQgbmVl
ZCB0byBzZW5kIG5vdGlmaWNhdGlvbi4gT25seSB0aGUgb25lcyB3aXRoICdjb21wbGV0ZWQnLCAn
ZmFpbGVkJyBvciAnY2FuY2VsbGVkJyBzdGF0dXMgYW5kIGl0cworICAgICAgICAndGVzdGdyb3Vw
X25lZWRzX25vdGlmaWNhdGlvbicgaXMgdHJ1ZSB3aWxsIGJlIHJldHVybmVkIGJ5IHRoaXMgQVBJ
LgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwOiBB
ZGRlZCAnZmV0Y2hfcmVxdWVzdHNfZm9yX2dyb3VwcycgdG8gcmV0dXJuIHRlc3QgZ3JvdXBzIHdp
dGggZ2l2ZW4gaWRzLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBl
cnMucGhwOiBVcGRhdGVkIHRoZSBsb2dpYyB0byBzdXBwb3J0IHNldHRpbmcgJ3Rlc3Rncm91cF9u
ZWVkc19ub3RpZmljYXRpb24nCisgICAgICAgIHdoaWxlIGNyZWF0ZSBhbiBhbmFseXNpc190ZXN0
X2dyb3Vwcy4KKyAgICAgICAgKiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sucGhwOiBVcGRhdGVkIHRoZSBsb2dpYyB0byBzdXBwb3J0IHNldHRpbmcgJ3Rlc3Rncm91
cF9uZWVkc19ub3RpZmljYXRpb24nLgorICAgICAgICAqIHB1YmxpYy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtdGVzdC1ncm91cC5waHA6IFVwZGF0ZWQgdGhlIGxvZ2ljIHRvIHN1cHBvcnQgc2V0dGlu
ZyAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicuCisgICAgICAgICogcHVibGljL3ByaXZp
bGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocDogVXBkYXRlZCB0aGUgbG9naWMgdG8gc3Vw
cG9ydCB1cGRhdGluZyAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicuCisgICAgICAgIEV4
dGVuZGVkIHRoaXMgQVBJIHRvIGFsbG93IGF1dGhlbnRpY2F0aW9uIGJvdGggZnJvbSBDU1JGIHRv
a2VuIGFuZCBzbGF2ZS4KKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29u
ZmlndXJhdGlvbi10ZXN0LWdyb3VwLWZvcm0uanM6CisgICAgICAgIChDdXN0b21Db25maWd1cmF0
aW9uVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuc3RhcnRUZXN0aW5nKTogUGFzcyAnbm90aWZ5T25D
b21wbGV0aW9uJyBpbmZvcm1hdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAgICAgICd0ZXN0Z3Jv
dXBfbmVlZHNfbm90aWZpY2F0aW9uJyBmcm9tIEFQSSBwZXJzcGVjdGl2ZS4KKyAgICAgICAgKiBw
dWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzOgorICAg
ICAgICAoQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuc3RhcnRUZXN0aW5nKTog
UGFzcyAnbm90aWZ5T25Db21wbGV0aW9uJyBpbmZvcm1hdGlvbiB3aGljaCByZXByZXNlbnRzCisg
ICAgICAgICd0ZXN0Z3JvdXBfbmVlZHNfbm90aWZpY2F0aW9uJyBmcm9tIEFQSSBwZXJzcGVjdGl2
ZS4KKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0uY3NzVGVtcGxhdGUpOiBBZGRl
ZCBzcGFjZSBiZXR3ZWVuICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hlY2tib3ggYW5kIHRlc3Qg
Z3JvdXAgaXRlcmF0aW9uIHNlbGVjdGlvbiBsaXN0LgorICAgICAgICAqIHB1YmxpYy92My9jb21w
b25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qczoKKyAgICAgICAgKFRlc3RHcm91cEZvcm0pOiBBZGRl
ZCAnX25vdGlmeU9uQ29tcGxldGlvbicgaW5zdGFuY2UgdmFyaWFibGUuCisgICAgICAgIChUZXN0
R3JvdXBGb3JtLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKTogQWRkZWQgJ29uY2hh
bmdlJyBldmVudCBmb3Igbm90aWZ5IG9uIGNvbXBsZXRpb24gY2hlY2tib3guCisgICAgICAgIChU
ZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5zdGFydFRlc3RpbmcpOiBQYXNzICdub3RpZnlPbkNvbXBs
ZXRpb24nIGluZm9ybWF0aW9uIHdoaWNoIHJlcHJlc2VudHMKKyAgICAgICAgJ3Rlc3Rncm91cF9u
ZWVkc19ub3RpZmljYXRpb24nIGZyb20gQVBJIHBlcnNwZWN0aXZlLgorICAgICAgICAoVGVzdEdy
b3VwRm9ybS5jc3NUZW1wbGF0ZSk6IEFkZGVkIHNwYWNlIGJldHdlZW4gJ05vdGlmeSBvbiBjb21w
bGV0aW9uJyBjaGVja2JveCBhbmQgdGVzdCBncm91cCBpdGVyYXRpb24gc2VsZWN0aW9uIGxpc3Qu
CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1bHRzLmpzOiBFeHBvcnQg
J0FuYWx5c2lzUmVzdWx0cycuCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMuZmV0Y2gpOiBVcGRh
dGUgQVBJIHBhdGggdG8gdXNlIGFic29sdXRlIHVybC4KKyAgICAgICAgKEFuYWx5c2lzUmVzdWx0
cyk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzOgorICAgICAg
ICAoQW5hbHlzaXNUYXNrLmFzeW5jLmNyZWF0ZSk6IEV4dGVuZCB0aGlzIGZ1bmN0aW9uIHRvIHRh
a2Ugbm90aWZ5T25Db21wbGV0aW9uIGFzIGFyZ3VtZW50IHdoaWNoIHdpbGwgYmUgdXNlZCBhcwor
ICAgICAgICAnbmVlZHNOb3RpZmljYXRpb24nIHRvIHNlbmQgdG8gc2VydmVyLgorICAgICAgICAo
QW5hbHlzaXNUYXNrKToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanM6
CisgICAgICAgIChUZXN0R3JvdXApOiBBZGRlZCAnX25lZWRzTm90aWZpY2F0aW9uJyBmaWVsZC4K
KyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5cGUudXBkYXRlU2luZ2xldG9uKTogQWRkZWQgbG9n
aWMgdG8gdXBkYXRlICdfbmVlZHNOb3RpZmljYXRpb24nIGZpZWxkLgorICAgICAgICAoVGVzdEdy
b3VwLnByb3RvdHlwZS5uZWVkc05vdGlmaWNhdGlvbik6IFJldHVybnMgJ19uZWVkc05vdGlmaWNh
dGlvbicgZmllbGQuCisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLmF1dGhvcik6IFJldHVy
bnMgYXV0aG9yIGluZm9ybWF0aW9uLgorICAgICAgICAoVGVzdEdyb3VwLnByb3RvdHlwZS5hc3lu
Yy5kaWRTZW5kTm90aWZpY2F0aW9uKTogQVBJIHRoYXQgdXBkYXRlcyAndGVzdGdyb3VwX25lZWRz
X25vdGlmaWNhdGlvbicgdG8gdHJ1ZS4KKyAgICAgICAgKFRlc3RHcm91cC5jcmVhdGVXaXRoVGFz
ayk6IFVwZGF0ZWQgdGhpcyBmdW5jdGlvbiB0byBhY2NlcHQgJ25vdGlmeU9uQ29tcGxldGlvbicg
d2hpY2ggd2lsbCBiZSB1c2VkIGFzCisgICAgICAgICduZWVkc05vdGlmaWNhdGlvbicgdG8gc2Vu
ZCB0byBzZXJ2ZXIuCisgICAgICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3Vy
YXRpb24pOiBVcGRhdGVkIHRoaXMgZnVuY3Rpb24gdG8gYWNjZXB0ICdub3RpZnlPbkNvbXBsZXRp
b24nIHdoaWNoIHdpbGwgYmUgdXNlZCBhcworICAgICAgICAnbmVlZHNOb3RpZmljYXRpb24nIHRv
IHNlbmQgdG8gc2VydmVyLgorICAgICAgICAoVGVzdEdyb3VwLmNyZWF0ZUFuZFJlZmV0Y2hUZXN0
R3JvdXBzKTogVXBkYXRlZCB0aGlzIGZ1bmN0aW9uIHRvIGFjY2VwdCAnbm90aWZ5T25Db21wbGV0
aW9uJyB3aGljaCB3aWxsIGJlIHVzZWQgYXMKKyAgICAgICAgJ25lZWRzTm90aWZpY2F0aW9uJyB0
byBzZW5kIHRvIHNlcnZlci4KKyAgICAgICAgKFRlc3RHcm91cC5mZXRjaEFsbFdpdGhQZW5kaW5n
Tm90aWZpY2F0aW9uKTogTmV3IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyAnL2FwaS90ZXN0LWdyb3Vw
cy5waHA/bm90aWZpY2F0aW9ucy1wZW5kaW5nPXRydWUuCisgICAgICAgICogcHVibGljL3YzL3Bh
Z2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qczogVXBkYXRlIGxvZ2ljIHRvICdub3RpZnlPbkNvbXBs
ZXRpb24nIGFyb3VuZAorICAgICAgICAoQW5hbHlzaXNUYXNrQ2hhcnRQYW5lLnByb3RvdHlwZS5k
aWRDb25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1Jlc3VsdHNQYW5l
LnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKEFuYWx5c2lzVGFz
a1Rlc3RHcm91cFBhbmUucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAg
ICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6Cisg
ICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fcmV0cnlDdXJyZW50VGVzdEdyb3Vw
KToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLmFzeW5jLl9iaXNlY3RDdXJy
ZW50VGVzdEdyb3VwKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9jcmVh
dGVUZXN0R3JvdXBBZnRlclZlcmlmeWluZ0NvbW1pdFNldExpc3Quc2V0IGNvbnN0KToKKyAgICAg
ICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9jcmVhdGVUZXN0R3JvdXBBZnRlclZlcmlm
eWluZ0NvbW1pdFNldExpc3QpOgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUu
X2NyZWF0ZUN1c3RvbVRlc3RHcm91cCk6CisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2NoYXJ0
LXBhbmUuanM6IEFkZGVkICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hlY2tib3guCisgICAgICAg
IChDaGFydFBhbmUucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAo
Q2hhcnRQYW5lLnByb3RvdHlwZS5hc3luYy5fYW5hbHl6ZVJhbmdlKToKKyAgICAgICAgKiBwdWJs
aWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFnZS5qczogQWRhcHRlZCBBUEkgY2hh
bmdlLgorICAgICAgICAoQ3JlYXRlQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuX2NyZWF0ZUFu
YWx5c2lzVGFza1dpdGhHcm91cCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdy
b3Vwcy5qczogQWRkZWQgdGVzdHMgZm9yICcvYXBpL3Rlc3QtZ3JvdXBzP25vdGlmaWNhdGlvbnMt
cGVuZGluZz10cnVlJy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRl
c3RzLmpzOiBVcGRhdGVkIHRlc3RzIHRvIGFkYXB0IHRoaXMgY2hhbmdlLgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qczog
VXBkYXRlZCB0ZXN0cyB0byBhZGFwdCB0aGlzIGNoYW5nZS4KKyAgICAgICAgQWRkZWQgbmV3IHRl
c3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1n
cm91cC10ZXN0cy5qczogVXBkYXRlZCB0ZXN0cyB0byBhZGFwdCB0aGlzIGNoYW5nZS4KKyAgICAg
ICAgQWRkZWQgbmV3IHRlc3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFw
aS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0IGZvciAndXBkYXRl
LXRlc3QtZ3JvdXAnIEFQSS4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2st
ZGF0YS5qczogYWRkTW9ja0RhdGEgc2hvdWxkIHNldCAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNh
dGlvbicgdG8gYmUgdHJ1ZS4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWls
ZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczogVXBkYXRlZCB0ZXN0cyB0byBhZGFwdCB0aGlzIGNo
YW5nZS4KKyAgICAgICAgKGFzeW5jLmNyZWF0ZVRlc3RHcm91cFdpaFBhdGNoKToKKyAgICAgICAg
KGNyZWF0ZVRlc3RHcm91cFdpaE93bmVkQ29tbWl0KToKKyAgICAgICAgKiB0b29scy9qcy9hbmFs
eXNpcy1yZXN1bHRzLW5vdGlmaWVyLmpzOiBBZGRlZCBlbWFpbCBub3RpZmllciB0byBzZW5kIGVt
YWlsIG5vdGlmaWNhdGlvbiBmb3IgY29tcGxldGVkIHRlc3QgZ3JvdXBzLgorICAgICAgICAoRW1h
aWxOb3RpZmllcik6CisgICAgICAgIChFbWFpbE5vdGlmaWVyLnByb3RvdHlwZS5hc3luYy5zZW5k
Tm90aWZpY2F0aW9uc0ZvclRlc3RHcm91cHMpOiBCdWlsZHMgZW1haWwgYm9keSwgZGV0ZXJtaW5l
cyByZWNpcGllbnRzIGFuZAorICAgICAgICBzZW5kcyBlbWFpbCBmb3IgZWFjaCB0ZXN0IGdyb3Vw
LgorICAgICAgICAoRW1haWxOb3RpZmllci5wcm90b3R5cGUuYXN5bmMuX2RldGVybWluZVJlY2lw
aWVudHNGb3JUZXN0R3JvdXApOiBCYXNlIG9uIGNvbmZpZ3VyYXRpb24sIHJldHVybnMgYSBsaXN0
IG9mIHJlY2lwaWVudHMuCisgICAgICAgIChFbWFpbE5vdGlmaWVyLl9idWlsZE1hdGNoaW5nRnVu
Y3Rpb25CeUVtYWlsR3JvdXApOiBCdWlsZCBlbWFpbCBncm91cCBtYXRjaGluZyBmdW5jdGlvbnMu
CisgICAgICAgIChFbWFpbE5vdGlmaWVyLl9jaGFyYWN0ZXJSZWZlcmVuY2UpOiBVc2UgY2hhcmFj
dGVyIHJlZmVyZW5jZSBmb3IgJzwnLCAnPicgYW5kICciJy4KKyAgICAgICAgKEVtYWlsTm90aWZp
ZXIucHJvdG90eXBlLmFzeW5jLl9tZXNzYWdlRm9yVGVzdEdyb3VwKTogQnVpbGQgZW1haWwgYm9k
eSBmb3IgYSB0ZXN0IGdyb3VwLgorICAgICAgICAoRW1haWxOb3RpZmllci5fVVJMRm9yQW5hbHlz
aXNUYXNrKTogUmV0dXJucyBVUkwgZm9yIGFuIGFuYWx5c2lzIHRhc2suCisgICAgICAgIChFbWFp
bE5vdGlmaWVyLnByb3RvdHlwZS5hc3luYy5fc2VuZEVtYWlsKTogSW52b2tlIGVtYWlsIEFQSSB0
byBzZW5kIG5vdGlmaWNhdGlvbi4KKyAgICAgICAgKEVtYWlsTm90aWZpZXIuX2luc3RhbnRpYXRl
Tm90aWZpY2F0aW9uVGVtcGxhdGUpOgorICAgICAgICAqIHRvb2xzL2pzL21lYXN1cmVtZW50LXNl
dC1hbmFseXplci5qczogQWRhcHRlZCAnQW5hbHlzaXNUYXNrLmNyZWF0ZScgY2hhbmdlLgorICAg
ICAgICAoTWVhc3VyZW1lbnRTZXRBbmFseXplci5wcm90b3R5cGUuYXN5bmMuX2FuYWx5emVNZWFz
dXJlbWVudFNldCk6CisgICAgICAgIChNZWFzdXJlbWVudFNldEFuYWx5emVyKToKKyAgICAgICAg
KiB0b29scy9qcy92My1tb2RlbHMuanM6CisgICAgICAgICogdG9vbHMvcnVuLWFuYWx5c2lzLmpz
OiBBZGRlZCB0aGUgbG9naWMgdGhhdCBzZW5kcyBub3RpZmljYXRpb24gZm9yIGNvbXBsZXRlZCB0
ZXN0IGdyb3Vwcy4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAoYXN5bmMuYW5hbHlzaXNMb29w
KToKKyAgICAgICAgKiB1bml0LXRlc3RzL2FuYWx5c2lzLXRhc2stdGVzdHMuanM6CisgICAgICAg
ICogdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLXRlc3RzLmpzOiBBZGRlZCBh
IHVuaXQgdGVzdCBmb3IgJ0VtYWlsIG5vdGlmaWVyJy4KKyAgICAgICAgKiB1bml0LXRlc3RzL21l
YXN1cmVtZW50LXNldC1hbmFseXplci10ZXN0cy5qczogVXBkYXRlZCB1bml0IHRlc3RzIHBlciB0
aGlzIGNoYW5nZS4KKyAgICAgICAgKiB1bml0LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzOiBB
ZGRlZCB1bml0IHRlc3RzIGZvciAnVGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uJy4KKwogMjAx
OC0wNS0yMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBPU0J1
aWxkRmV0Y2hlciBzaG91bGQgcmVzcGVjdCBtYXhSZXZpc2lvbiB3aGlsZSBmaW5kaW5nIE9TIGJ1
aWxkcyB0byByZXBvcnQuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJv
d3Nlci10ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvYnJvd3Nlci10ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMKaW5kZXggMjY1MzU2
NzI4NDlhMTlkZGZkZmY5MmI0NTk4Nzk1M2IwZGU4MGQ3Mi4uMTE2NDA0MDQxYjQ5ZDQxZjVmYTBh
MGRhMTk4ZmU2OWIxNTFmOWUyZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwpAQCAt
MTgsNyArMTgsNyBAQCBkZXNjcmliZSgnVGVzdEdyb3VwRm9ybVRlc3RzJywgKCkgPT4gewogICAg
ICAgICAgICAgdGVzdEdyb3VwRm9ybS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKC4u
LmFyZ3MpID0+IGNhbGxzLnB1c2goYXJncykpOwogICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50
by5lcWwoe30pOwogICAgICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0
b24nKS5jbGljaygpOwotICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XV0pOwor
ICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMjksMTIgKzI5LDMxIEBAIGRlc2NyaWJlKCdUZXN0R3JvdXBGb3Jt
VGVzdHMnLCAoKSA9PiB7CiAgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmxpc3RlblRvQWN0aW9u
KCdzdGFydFRlc3RpbmcnLCAoLi4uYXJncykgPT4gY2FsbHMucHVzaChhcmdzKSk7CiAgICAgICAg
ICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbCh7fSk7CiAgICAgICAgICAgICB0ZXN0R3JvdXBGb3Jt
LmNvbnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7Ci0gICAgICAgICAgICBleHBlY3QoY2Fs
bHMpLnRvLmVxbChbWzRdXSk7CisgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQs
IHRydWVdXSk7CiAgICAgICAgICAgICBjb25zdCBjb3VudEZvcm0gPSB0ZXN0R3JvdXBGb3JtLmNv
bnRlbnQoJ3JlcGV0aXRpb24tY291bnQnKTsKICAgICAgICAgICAgIGNvdW50Rm9ybS52YWx1ZSA9
ICc2JzsKLSAgICAgICAgICAgIGNvdW50Rm9ybS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hh
bmdlJykpOyAKKyAgICAgICAgICAgIGNvdW50Rm9ybS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgn
Y2hhbmdlJykpOwogICAgICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0
b24nKS5jbGljaygpOwotICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XSwgWzZd
XSk7CisgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRydWVdLCBbNiwgdHJ1
ZV1dKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgnbXVzdCB1cGRhdGUgIm5vdGlm
eSBvbiBjb21wbGV0aW9uIiB3aGVuIGl0IGlzIHVuY2hlY2tlZCcsICgpID0+IHsKKyAgICAgICAg
Y29uc3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZVRlc3RHcm91cEZvcm1XaXRoQ29udGV4dChjb250ZXh0KS50aGVuKCh0ZXN0R3JvdXBGb3Jt
KSA9PiB7CisgICAgICAgICAgICBjb25zdCBjYWxscyA9IFtdOworICAgICAgICAgICAgdGVzdEdy
b3VwRm9ybS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKC4uLmFyZ3MpID0+IGNhbGxz
LnB1c2goYXJncykpOworICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoe30pOworICAg
ICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24nKS5jbGljaygpOwor
ICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOworICAgICAgICAg
ICAgY29uc3QgY291bnRGb3JtID0gdGVzdEdyb3VwRm9ybS5jb250ZW50KCdyZXBldGl0aW9uLWNv
dW50Jyk7CisgICAgICAgICAgICBjb3VudEZvcm0udmFsdWUgPSAnNic7CisgICAgICAgICAgICBj
b3VudEZvcm0uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKKyAgICAgICAgICAg
IGNvbnN0IG5vdGlmeU9uQ29tcGxldGlvbkNoZWNrYm94ID0gdGVzdEdyb3VwRm9ybS5jb250ZW50
KCdub3RpZnktb24tY29tcGxldGlvbi1jaGVja2JveCcpOworICAgICAgICAgICAgbm90aWZ5T25D
b21wbGV0aW9uQ2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOworICAgICAgICAgICAgbm90aWZ5T25D
b21wbGV0aW9uQ2hlY2tib3guZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKKyAg
ICAgICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgnc3RhcnQtYnV0dG9uJykuY2xpY2soKTsK
KyAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNCwgdHJ1ZV0sIFs2LCBmYWxzZV1d
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU3LDEwICs3NiwxMCBAQCBkZXNjcmliZSgn
VGVzdEdyb3VwRm9ybVRlc3RzJywgKCkgPT4gewogICAgICAgICAgICAgICAgIHRlc3RHcm91cEZv
cm0ubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsICguLi5hcmdzKSA9PiBjYWxscy5wdXNo
KGFyZ3MpKTsKICAgICAgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbCh7fSk7CiAgICAg
ICAgICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCkucXVlcnlTZWxlY3RvcignYnV0dG9u
JykuY2xpY2soKTsKLSAgICAgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzRdXSk7
CisgICAgICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOwogICAg
ICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0uc2V0UmVwZXRpdGlvbkNvdW50KDgpOwogICAgICAg
ICAgICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicp
LmNsaWNrKCk7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XSwgWzhd
XSk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXSwgWzgs
IHRydWVdXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggYzQ3NDJlN2I2ZGMzZWE4
MDViMDM5ZTBkMTg3NzVjNTJmMmY3ZDA2Ny4uMDM4ODM1MjQ1ZWZlZGI1MmRiOGMxODMzOGIxOWQ1
NzY3MDU1OWQxNyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0
YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNx
bApAQCAtMjc5LDYgKzI3OSw3IEBAIENSRUFURSBUQUJMRSBhbmFseXNpc190ZXN0X2dyb3VwcyAo
CiAgICAgdGVzdGdyb3VwX2F1dGhvciB2YXJjaGFyKDI1NiksCiAgICAgdGVzdGdyb3VwX2NyZWF0
ZWRfYXQgdGltZXN0YW1wIE5PVCBOVUxMIERFRkFVTFQgKENVUlJFTlRfVElNRVNUQU1QIEFUIFRJ
TUUgWk9ORSAnVVRDJyksCiAgICAgdGVzdGdyb3VwX2hpZGRlbiBib29sZWFuIE5PVCBOVUxMIERF
RkFVTFQgRkFMU0UsCisgICAgdGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiBib29sZWFuIE5P
VCBOVUxMIERFRkFVTFQgRkFMU0UsCiAgICAgQ09OU1RSQUlOVCB0ZXN0Z3JvdXBfbmFtZV9tdXN0
X2JlX3VuaXF1ZV9mb3JfZWFjaF90YXNrIFVOSVFVRSh0ZXN0Z3JvdXBfdGFzaywgdGVzdGdyb3Vw
X25hbWUpKTsKIENSRUFURSBJTkRFWCB0ZXN0Z3JvdXBfdGFza19pbmRleCBPTiBhbmFseXNpc190
ZXN0X2dyb3Vwcyh0ZXN0Z3JvdXBfdGFzayk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocCBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocAppbmRleCA0MmRkZDMwOTM1MDlkZDJm
NGFkNjMwZTg0ZTRkM2EwNWU3YjA5NjFjLi5jOWRkODY5Y2Y2NWE4YzdiOTFkY2MxMDliMjkyZGQ4
YjQ0ZjM5YmIxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2Fw
aS90ZXN0LWdyb3Vwcy5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9h
cGkvdGVzdC1ncm91cHMucGhwCkBAIC0yMiwxMyArMjIsMzYgQEAgZnVuY3Rpb24gbWFpbigkcGF0
aCkgewogICAgICAgICAkYnVpbGRfcmVxdWVzdHNfZmV0Y2hlci0+ZmV0Y2hfZm9yX2dyb3VwKCRn
cm91cFsndGVzdGdyb3VwX3Rhc2snXSwgJGdyb3VwX2lkKTsKICAgICB9IGVsc2UgewogICAgICAg
ICAkdGFza19pZCA9IGFycmF5X2dldCgkX0dFVCwgJ3Rhc2snKTsKLSAgICAgICAgaWYgKCEkdGFz
a19pZCkKLSAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVGFza0lkTm90U3BlY2lmaWVkJyk7
CisgICAgICAgICRub3RpZmljYXRpb25zX3BlbmRpbmcgPSBhcnJheV9nZXQoJF9HRVQsICdub3Rp
ZmljYXRpb25zLXBlbmRpbmcnKTsKKyAgICAgICAgaWYgKCEkdGFza19pZCAmJiAhJG5vdGlmaWNh
dGlvbnNfcGVuZGluZykKKyAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVGFza0lkT3JOb3Rp
ZmljYXRpb25zUGVuZGluZ05vdFNwZWNpZmllZCcpOworCisgICAgICAgIGlmICgkdGFza19pZCAm
JiAkbm90aWZpY2F0aW9uc19wZW5kaW5nKQorICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdU
YXNrSWRBbmROb3RpZmljYXRpb25zUGVuZGluZ011c3RCZU11dHVhbEV4Y2x1c2l2ZScpOworCisg
ICAgICAgIGlmICgkdGFza19pZCkgeworICAgICAgICAgICAgJHRlc3RfZ3JvdXBzID0gJGRiLT5z
ZWxlY3Rfcm93cygnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCAndGVzdGdyb3VwJywgYXJyYXkoJ3Rh
c2snID0+ICR0YXNrX2lkKSk7CisgICAgICAgICAgICBpZiAoIWlzX2FycmF5KCR0ZXN0X2dyb3Vw
cykpCisgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRUb0ZldGNoVGVzdEdy
b3VwcycpOworICAgICAgICAgICAgJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXItPmZldGNoX2Zvcl90
YXNrKCR0YXNrX2lkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0ZXN0X2dyb3Vw
cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBhbmFseXNpc190ZXN0
X2dyb3VwcworICAgICAgICAgICAgICAgIFdIRVJFIEVYSVNUUyhTRUxFQ1QgMSBGUk9NIGJ1aWxk
X3JlcXVlc3RzCisgICAgICAgICAgICAgICAgV0hFUkUgcmVxdWVzdF9ncm91cCA9IHRlc3Rncm91
cF9pZAorICAgICAgICAgICAgICAgICAgQU5EIHJlcXVlc3Rfc3RhdHVzIElOIChcJ3BlbmRpbmdc
JywgXCdzY2hlZHVsZWRcJywgXCdydW5uaW5nXCcsIFwnY2FuY2VsZWRcJykpIElTIEZBTFNFCisg
ICAgICAgICAgICAgICAgICBBTkQgdGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiBJUyBUUlVF
IGFuZCB0ZXN0Z3JvdXBfaGlkZGVuIElTIEZBTFNFJyk7CisKKyAgICAgICAgICAgIGlmICghY291
bnQoJHRlc3RfZ3JvdXBzKSkgeworICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9zdWNjZXNzKGFy
cmF5KCd0ZXN0R3JvdXBzJyA9PiBhcnJheSgpLAorICAgICAgICAgICAgICAgICAgICAnYnVpbGRS
ZXF1ZXN0cycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICAgICAgICAgJ2NvbW1pdFNldHMnID0+
IGFycmF5KCksCisgICAgICAgICAgICAgICAgICAgICdjb21taXRzJyA9PiBhcnJheSgpLAorICAg
ICAgICAgICAgICAgICAgICAndXBsb2FkZWRGaWxlcycgPT4gYXJyYXkoKSkpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAkYnVpbGRfcmVxdWVzdHNfZmV0Y2hlci0+ZmV0Y2hfcmVxdWVz
dHNfZm9yX2dyb3VwcygkdGVzdF9ncm91cHMpOworICAgICAgICB9CiAKLSAgICAgICAgJHRlc3Rf
Z3JvdXBzID0gJGRiLT5zZWxlY3Rfcm93cygnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCAndGVzdGdy
b3VwJywgYXJyYXkoJ3Rhc2snID0+ICR0YXNrX2lkKSk7Ci0gICAgICAgIGlmICghaXNfYXJyYXko
JHRlc3RfZ3JvdXBzKSkKLSAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9GZXRj
aFRlc3RHcm91cHMnKTsKLSAgICAgICAgJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXItPmZldGNoX2Zv
cl90YXNrKCR0YXNrX2lkKTsKICAgICB9CiAgICAgaWYgKCEkYnVpbGRfcmVxdWVzdHNfZmV0Y2hl
ci0+aGFzX3Jlc3VsdHMoKSkKICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRUb0ZldGNo
QnVpbGRSZXF1ZXN0cycpOwpAQCAtNjUsNiArODgsNyBAQCBmdW5jdGlvbiBmb3JtYXRfdGVzdF9n
cm91cCgkZ3JvdXBfcm93KSB7CiAgICAgICAgICdhdXRob3InID0+ICRncm91cF9yb3dbJ3Rlc3Rn
cm91cF9hdXRob3InXSwKICAgICAgICAgJ2NyZWF0ZWRBdCcgPT4gc3RydG90aW1lKCRncm91cF9y
b3dbJ3Rlc3Rncm91cF9jcmVhdGVkX2F0J10pICogMTAwMCwKICAgICAgICAgJ2hpZGRlbicgPT4g
RGF0YWJhc2U6OmlzX3RydWUoJGdyb3VwX3Jvd1sndGVzdGdyb3VwX2hpZGRlbiddKSwKKyAgICAg
ICAgJ25lZWRzTm90aWZpY2F0aW9uJyA9PiBEYXRhYmFzZTo6aXNfdHJ1ZSgkZ3JvdXBfcm93Wyd0
ZXN0Z3JvdXBfbmVlZHNfbm90aWZpY2F0aW9uJ10pLAogICAgICAgICAnYnVpbGRSZXF1ZXN0cycg
PT4gYXJyYXkoKSwKICAgICAgICAgJ2NvbW1pdFNldHMnID0+IGFycmF5KCksCiAgICAgKTsKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1y
ZXF1ZXN0cy1mZXRjaGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5j
bHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocAppbmRleCAyN2YwMjQwN2RhNzQ5MTc1OGRl
ZGFlMDgzZjRjMzQwYzFiMzZkYTMxLi4zNDgxNTYwOGJkN2QxM2IwMDJkNDM1ZDMxNTRlZWJkNDQ5
OWY3YzNmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwCkBAIC0zMCw2ICsz
MCwxOCBAQCBjbGFzcyBCdWlsZFJlcXVlc3RzRmV0Y2hlciB7CiAgICAgICAgICAgICAkcm93Wyd0
YXNrX2lkJ10gPSAkdGFza19pZDsKICAgICB9CiAKKyAgICBmdW5jdGlvbiBmZXRjaF9yZXF1ZXN0
c19mb3JfZ3JvdXBzKCR0ZXN0X2dyb3VwcykgeworCisgICAgICAgICR0ZXN0X2dyb3VwX2lkX2xp
c3QgPSBhcnJheSgpOworICAgICAgICBmb3JlYWNoKCR0ZXN0X2dyb3VwcyBhcyAkZ3JvdXApCisg
ICAgICAgICAgICBhcnJheV9wdXNoKCR0ZXN0X2dyb3VwX2lkX2xpc3QsIGludHZhbCgkZ3JvdXBb
J3Rlc3Rncm91cF9pZCddKSk7CisKKyAgICAgICAgJHRoaXMtPnJvd3MgPSAkdGhpcy0+ZGItPnF1
ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqLCB0ZXN0Z3JvdXBfdGFzayBhcyB0YXNrX2lkCisg
ICAgICAgICAgICBGUk9NIGJ1aWxkX3JlcXVlc3RzLCBhbmFseXNpc190ZXN0X2dyb3VwcworICAg
ICAgICAgICAgV0hFUkUgcmVxdWVzdF9ncm91cCA9IHRlc3Rncm91cF9pZCBBTkQgdGVzdGdyb3Vw
X2lkID0gQU5ZKCQxKQorICAgICAgICAgICAgT1JERVIgQlkgcmVxdWVzdF9ncm91cCwgcmVxdWVz
dF9vcmRlcicsIGFycmF5KCd7JyAuIGltcGxvZGUoJywgJywgJHRlc3RfZ3JvdXBfaWRfbGlzdCkg
LiAnfScpKTsKKyAgICB9CisKICAgICBmdW5jdGlvbiBmZXRjaF9pbmNvbXBsZXRlX3JlcXVlc3Rz
X2Zvcl90cmlnZ2VyYWJsZSgkdHJpZ2dlcmFibGVfaWQpIHsKICAgICAgICAgJHRoaXMtPnJvd3Mg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqLCB0ZXN0X2dyb3Vwcy50
ZXN0Z3JvdXBfdGFzayBhcyB0YXNrX2lkIEZST00gYnVpbGRfcmVxdWVzdHMsCiAgICAgICAgICAg
ICAoU0VMRUNUIHRlc3Rncm91cF9pZCwgdGVzdGdyb3VwX3Rhc2ssIChjYXNlIHdoZW4gdGVzdGdy
b3VwX2F1dGhvciBpcyBub3QgbnVsbCB0aGVuIDAgZWxzZSAxIGVuZCkgYXMgYXV0aG9yX29yZGVy
LCB0ZXN0Z3JvdXBfY3JlYXRlZF9hdApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwCmluZGV4
IGE3YWRjNGY4YTMyZDc2ZjViZTQ1N2JiNzM3ZWRkZjE0ZWRmYThiMjIuLmJlYzdkNDg2ZjJiMDdh
ZWQzNmRkMmUyYmZlMjdiNzEwOTk0M2E2NDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocAorKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5w
aHAKQEAgLTQsMTIgKzQsMTIgQEAgcmVxdWlyZV9vbmNlKCdyZXBvc2l0b3J5LWdyb3VwLWZpbmRl
ci5waHAnKTsKIHJlcXVpcmVfb25jZSgnY29tbWl0LWxvZy1mZXRjaGVyLnBocCcpOwogCiAjIEZJ
WE1FOiBTaG91bGQgY3JlYXRlIGEgaGVscGVyIGNsYXNzIGZvciBiZWxvdyAzIGhlbHBlciBmdW5j
dGlvbnMgdG8gYXZvaWQgcGFzc2luZyBsb25nIGFyZ3VtZW50IGxpc3QuCi1mdW5jdGlvbiBjcmVh
dGVfdGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNr
X2lkLCAkbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0
X2lkLCAkcmVwZXRpdGlvbl9jb3VudCkgeworZnVuY3Rpb24gY3JlYXRlX3Rlc3RfZ3JvdXBfYW5k
X2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9zZXRzLCAkdGFza19pZCwgJG5hbWUsICRhdXRo
b3IsICR0cmlnZ2VyYWJsZV9pZCwgJHBsYXRmb3JtX2lkLCAkdGVzdF9pZCwgJHJlcGV0aXRpb25f
Y291bnQsICRuZWVkc19ub3RpZmljYXRpb24pIHsKIAogICAgIGxpc3QgKCRidWlsZF9jb25maWd1
cmF0aW9uX2xpc3QsICR0ZXN0X2NvbmZpZ3VyYXRpb25fbGlzdCkgPSBpbnNlcnRfY29tbWl0X3Nl
dHNfYW5kX2NvbnN0cnVjdF9jb25maWd1cmF0aW9uX2xpc3QoJGRiLCAkY29tbWl0X3NldHMpOwog
CiAgICAgJGdyb3VwX2lkID0gJGRiLT5pbnNlcnRfcm93KCdhbmFseXNpc190ZXN0X2dyb3Vwcycs
ICd0ZXN0Z3JvdXAnLAotICAgICAgICBhcnJheSgndGFzaycgPT4gJHRhc2tfaWQsICduYW1lJyA9
PiAkbmFtZSwgJ2F1dGhvcicgPT4gJGF1dGhvcikpOworICAgICAgICBhcnJheSgndGFzaycgPT4g
JHRhc2tfaWQsICduYW1lJyA9PiAkbmFtZSwgJ2F1dGhvcicgPT4gJGF1dGhvciwgJ25lZWRzX25v
dGlmaWNhdGlvbicgPT4gJG5lZWRzX25vdGlmaWNhdGlvbikpOwogCiAgICAgJGJ1aWxkX2NvdW50
ID0gY291bnQoJGJ1aWxkX2NvbmZpZ3VyYXRpb25fbGlzdCk7CiAgICAgJG9yZGVyID0gLSRidWls
ZF9jb3VudDsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKaW5k
ZXggOTQwZjgwYjk3YTA1Y2JhZmEwNDU3ZDM5ZDEzNzMwZDI2NmY4ZmNmOS4uNDgwNGNjNzViMjE1
ZjcxNzQzZjc2ODM4MTU4MDdiNjNiNThlYmRhMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtYW5hbHlzaXMtdGFzay5waHAKQEAgLTEwLDYgKzEwLDcgQEAgZnVuY3Rpb24gbWFpbigpIHsK
ICAgICAkYXV0aG9yID0gcmVtb3RlX3VzZXJfbmFtZSgkZGF0YSk7CiAgICAgJG5hbWUgPSBhcnJh
eV9nZXQoJGRhdGEsICduYW1lJyk7CiAgICAgJHJlcGV0aXRpb25fY291bnQgPSBhcnJheV9nZXQo
JGRhdGEsICdyZXBldGl0aW9uQ291bnQnKTsKKyAgICAkbmVlZHNfbm90aWZpY2F0aW9uID0gYXJy
YXlfZ2V0KCRkYXRhLCAnbmVlZHNOb3RpZmljYXRpb24nLCBGYWxzZSk7CiAgICAgJHRlc3RfZ3Jv
dXBfbmFtZSA9IGFycmF5X2dldCgkZGF0YSwgJ3Rlc3RHcm91cE5hbWUnKTsKICAgICAkcmV2aXNp
b25fc2V0X2xpc3QgPSBhcnJheV9nZXQoJGRhdGEsICdyZXZpc2lvblNldHMnKTsKIApAQCAtODQs
NyArODUsNyBAQCBmdW5jdGlvbiBtYWluKCkgewogICAgICAgICAkdHJpZ2dlcmFibGVfaWQgPSAk
dHJpZ2dlcmFibGVbJ2lkJ107CiAgICAgICAgICR0ZXN0X2lkID0gJHRyaWdnZXJhYmxlWyd0ZXN0
J107CiAgICAgICAgICRjb21taXRfc2V0cyA9IGNvbW1pdF9zZXRzX2Zyb21fcmV2aXNpb25fc2V0
cygkZGIsICR0cmlnZ2VyYWJsZV9pZCwgJHJldmlzaW9uX3NldF9saXN0KTsKLSAgICAgICAgY3Jl
YXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9zZXRzLCAkdGFz
a19pZCwgJHRlc3RfZ3JvdXBfbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkY29uZmln
Wydjb25maWdfcGxhdGZvcm0nXSwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50KTsKKyAgICAg
ICAgY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9zZXRz
LCAkdGFza19pZCwgJHRlc3RfZ3JvdXBfbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAk
Y29uZmlnWydjb25maWdfcGxhdGZvcm0nXSwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50LCAk
bmVlZHNfbm90aWZpY2F0aW9uKTsKICAgICB9CiAKICAgICAkZGItPmNvbW1pdF90cmFuc2FjdGlv
bigpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocAppbmRleCA1NmI0NzU1
OGY4MGQzZmVkOGRhMjljOTMyYWFkODZkNzk2NWQ4OTU4Li4xMDIzZDRiY2I2OTBjN2YxODc5NDUx
NzczNjZjYjM0NDRlOTZiNmFjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocAorKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
LnBocApAQCAtMTgsNiArMTgsNyBAQCBmdW5jdGlvbiBtYWluKCkKICAgICAkdGFza19pZCA9IGFy
cmF5X2dldCgkYXJndW1lbnRzLCAndGFzaycpOwogICAgICR0YXNrX25hbWUgPSBhcnJheV9nZXQo
JGRhdGEsICd0YXNrTmFtZScpOwogICAgICRyZXBldGl0aW9uX2NvdW50ID0gJGFyZ3VtZW50c1sn
cmVwZXRpdGlvbkNvdW50J107CisgICAgJG5lZWRzX25vdGlmaWNhdGlvbiA9IGFycmF5X2dldCgk
ZGF0YSwgJ25lZWRzTm90aWZpY2F0aW9uJywgRmFsc2UpOwogICAgICRwbGF0Zm9ybV9pZCA9IGFy
cmF5X2dldCgkZGF0YSwgJ3BsYXRmb3JtJyk7CiAgICAgJHRlc3RfaWQgPSBhcnJheV9nZXQoJGRh
dGEsICd0ZXN0Jyk7CiAgICAgJHJldmlzaW9uX3NldF9saXN0ID0gYXJyYXlfZ2V0KCRkYXRhLCAn
cmV2aXNpb25TZXRzJyk7CkBAIC04NSw3ICs4Niw3IEBAIGZ1bmN0aW9uIG1haW4oKQogICAgIGlm
ICgkdGFza19uYW1lKQogICAgICAgICAkdGFza19pZCA9ICRkYi0+aW5zZXJ0X3JvdygnYW5hbHlz
aXNfdGFza3MnLCAndGFzaycsIGFycmF5KCduYW1lJyA9PiAkdGFza19uYW1lLCAnYXV0aG9yJyA9
PiAkYXV0aG9yKSk7CiAKLSAgICAkZ3JvdXBfaWQgPSBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVp
bGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAkbmFtZSwgJGF1dGhvciwg
JHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lkLCAkcmVwZXRpdGlvbl9jb3Vu
dCk7CisgICAgJGdyb3VwX2lkID0gY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3Rz
KCRkYiwgJGNvbW1pdF9zZXRzLCAkdGFza19pZCwgJG5hbWUsICRhdXRob3IsICR0cmlnZ2VyYWJs
ZV9pZCwgJHBsYXRmb3JtX2lkLCAkdGVzdF9pZCwgJHJlcGV0aXRpb25fY291bnQsICRuZWVkc19u
b3RpZmljYXRpb24pOwogCiAgICAgJGRiLT5jb21taXRfdHJhbnNhY3Rpb24oKTsKIApkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS91cGRh
dGUtdGVzdC1ncm91cC5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZp
bGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocAppbmRleCBkYjFlZDM4MzkyYTU3MjAxY2Mw
NzY1MjhlNDhhNDk2OGQyMGU5ZWU4Li4xNDY0ZjVjMGFlNGZlOTZhNTg0MDBmOWIxMTE3OWQzMDRk
NjNkY2RkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZp
bGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocApAQCAtMyw3
ICszLDggQEAKIHJlcXVpcmVfb25jZSgnLi4vaW5jbHVkZS9qc29uLWhlYWRlci5waHAnKTsKIAog
ZnVuY3Rpb24gbWFpbigpIHsKLSAgICAkZGF0YSA9IGVuc3VyZV9wcml2aWxlZ2VkX2FwaV9kYXRh
X2FuZF90b2tlbigpOworICAgICRkYiA9IGNvbm5lY3QoKTsKKyAgICAkZGF0YSA9IGVuc3VyZV9w
cml2aWxlZ2VkX2FwaV9kYXRhX2FuZF90b2tlbl9vcl9zbGF2ZSgkZGIpOwogCiAgICAgJHRlc3Rf
Z3JvdXBfaWQgPSBhcnJheV9nZXQoJGRhdGEsICdncm91cCcpOwogICAgIGlmICghJHRlc3RfZ3Jv
dXBfaWQpCkBAIC0xNywxMCArMTgsMTEgQEAgZnVuY3Rpb24gbWFpbigpIHsKICAgICBpZiAoYXJy
YXlfa2V5X2V4aXN0cygnaGlkZGVuJywgJGRhdGEpKQogICAgICAgICAkdmFsdWVzWydoaWRkZW4n
XSA9IERhdGFiYXNlOjp0b19kYXRhYmFzZV9ib29sZWFuKCRkYXRhWydoaWRkZW4nXSk7CiAKKyAg
ICBpZiAoYXJyYXlfa2V5X2V4aXN0cygnbmVlZHNOb3RpZmljYXRpb24nLCAkZGF0YSkpCisgICAg
ICAgICR2YWx1ZXNbJ25lZWRzX25vdGlmaWNhdGlvbiddID0gRGF0YWJhc2U6OnRvX2RhdGFiYXNl
X2Jvb2xlYW4oJGRhdGFbJ25lZWRzTm90aWZpY2F0aW9uJ10pOworCiAgICAgaWYgKCEkdmFsdWVz
KQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ05vdGhpbmdUb1VwZGF0ZScpOwotCi0gICAgJGRi
ID0gY29ubmVjdCgpOwogICAgICRkYi0+YmVnaW5fdHJhbnNhY3Rpb24oKTsKIAogICAgIGlmICgh
JGRiLT51cGRhdGVfcm93KCdhbmFseXNpc190ZXN0X2dyb3VwcycsICd0ZXN0Z3JvdXAnLCBhcnJh
eSgnaWQnID0+ICR0ZXN0X2dyb3VwX2lkKSwgJHZhbHVlcykpIHsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJh
dGlvbi10ZXN0LWdyb3VwLWZvcm0uanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2NvbXBvbmVudHMvY3VzdG9tLWNvbmZpZ3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzCmlu
ZGV4IDU4ZWJiYWFkYzhjZTU2MjdkZjA2MjZkZTgwMzA5OTM5NGUyMzdiODAuLjJhMmI4NjdmNWZi
MzYyMjhmNWQ4YmE2MDUwMTY4ODcwMjg5YjM0ZjYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJhdGlvbi10ZXN0
LWdyb3VwLWZvcm0uanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qcwpAQCAtMzgs
NyArMzgsNyBAQCBjbGFzcyBDdXN0b21Db25maWd1cmF0aW9uVGVzdEdyb3VwRm9ybSBleHRlbmRz
IFRlc3RHcm91cEZvcm0gewogICAgICAgICBjb25zdCBjb21taXRTZXRzID0gY29uZmlndXJhdG9y
LmNvbW1pdFNldHMoKTsKICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBjb25maWd1cmF0b3IucGxh
dGZvcm0oKTsKICAgICAgICAgY29uc3QgdGVzdCA9IGNvbmZpZ3VyYXRvci50ZXN0cygpWzBdOyAv
LyBGSVhNRTogQWRkIHRoZSBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIG11bHRpcGxlIHRlc3RzLgot
ICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzdGFydFRlc3RpbmcnLCB0aGlzLl9yZXBldGl0
aW9uQ291bnQsIHRlc3RHcm91cE5hbWUsIGNvbW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0LCB0YXNr
TmFtZSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMu
X3JlcGV0aXRpb25Db3VudCwgdGVzdEdyb3VwTmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRl
c3QsIHRhc2tOYW1lLCB0aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24pOwogICAgIH0KIAogICAgIGRp
ZENvbnN0cnVjdFNoYWRvd1RyZWUoKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXph
YmxlLXRlc3QtZ3JvdXAtZm9ybS5qcwppbmRleCA1M2VmN2Y3ZjU3NzM4M2FkY2IyZTZjMjNhYzgw
NjE1YzdmODRjYjFkLi4yMDQ0MWMxMThiM2Q5ZWQxNTlhYTlkN2Q3Y2RmZDk3OWQ1MjE1OTUxIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMv
Y3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5q
cwpAQCAtMjUsNyArMjUsNyBAQCBjbGFzcyBDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtIGV4dGVu
ZHMgVGVzdEdyb3VwRm9ybSB7CiAKICAgICBzdGFydFRlc3RpbmcoKQogICAgIHsKLSAgICAgICAg
dGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50
LCB0aGlzLl9uYW1lLCB0aGlzLl9jb21wdXRlQ29tbWl0U2V0TWFwKCkpOworICAgICAgICB0aGlz
LmRpc3BhdGNoQWN0aW9uKCdzdGFydFRlc3RpbmcnLCB0aGlzLl9yZXBldGl0aW9uQ291bnQsIHRo
aXMuX25hbWUsIHRoaXMuX2NvbXB1dGVDb21taXRTZXRNYXAoKSwgdGhpcy5fbm90aWZ5T25Db21w
bGV0aW9uKTsKICAgICB9CiAKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKQEAgLTI4Niw2
ICsyODYsMTAgQEAgY2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RH
cm91cEZvcm0gewogICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgICAgICAgfQog
CisgICAgICAgICAgICAjY3VzdG9taXplLWxpbmstY29udGFpbmVyIHsKKyAgICAgICAgICAgICAg
ICBtYXJnaW4tbGVmdDogMC40cmVtOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAjY3Vz
dG9tLXRhYmxlOm5vdCg6ZW1wdHkpIHsKICAgICAgICAgICAgICAgICBtYXJnaW46IDFyZW0gMDsK
ICAgICAgICAgICAgIH0KQEAgLTMyMCw2ICszMjQsMTAgQEAgY2xhc3MgQ3VzdG9taXphYmxlVGVz
dEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91cEZvcm0gewogICAgICAgICAgICAgI2N1c3RvbS10
YWJsZSB0aCB7CiAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAjbm90aWZ5LW9uLWNvbXBsZXRpb24tY2hlY2tib3ggeworICAg
ICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjRyZW07CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBgOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggYzQ0
YjY2ZmEwNWQwYTYyNDIyN2Y2YmFjNTM5MDFlYzc0ODQwYjRkNS4uYTQzZWRmMzUwOGJjZjA3NDYy
NWRiOTk2NGY2MDRkZTE4MDgyOTY0ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpz
CkBAIC01LDYgKzUsNyBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50QmFz
ZSB7CiAgICAgewogICAgICAgICBzdXBlcihuYW1lIHx8ICd0ZXN0LWdyb3VwLWZvcm0nKTsKICAg
ICAgICAgdGhpcy5fcmVwZXRpdGlvbkNvdW50ID0gNDsKKyAgICAgICAgdGhpcy5fbm90aWZ5T25D
b21wbGV0aW9uID0gdHJ1ZTsKICAgICB9CiAKICAgICBzZXRSZXBldGl0aW9uQ291bnQoY291bnQp
CkBAIC0xOCwxMyArMTksMTUgQEAgY2xhc3MgVGVzdEdyb3VwRm9ybSBleHRlbmRzIENvbXBvbmVu
dEJhc2UgewogICAgICAgICBjb25zdCByZXBldGl0aW9uQ291bnRTZWxlY3QgPSB0aGlzLmNvbnRl
bnQoJ3JlcGV0aXRpb24tY291bnQnKTsKICAgICAgICAgcmVwZXRpdGlvbkNvdW50U2VsZWN0Lm9u
Y2hhbmdlID0gKCkgPT4gewogICAgICAgICAgICAgdGhpcy5fcmVwZXRpdGlvbkNvdW50ID0gcmVw
ZXRpdGlvbkNvdW50U2VsZWN0LnZhbHVlOwotICAgICAgICB9CisgICAgICAgIH07CisgICAgICAg
IGNvbnN0IG5vdGlmeU9uQ29tcGxldGlvbkNoZWNrQm94ID0gdGhpcy5jb250ZW50KCdub3RpZnkt
b24tY29tcGxldGlvbi1jaGVja2JveCcpOworICAgICAgICBub3RpZnlPbkNvbXBsZXRpb25DaGVj
a0JveC5vbmNoYW5nZSA9ICgpID0+IHRoaXMuX25vdGlmeU9uQ29tcGxldGlvbiA9IG5vdGlmeU9u
Q29tcGxldGlvbkNoZWNrQm94LmNoZWNrZWQ7CiAgICAgICAgIHRoaXMuY29udGVudCgnZm9ybScp
Lm9uc3VibWl0ID0gdGhpcy5jcmVhdGVFdmVudEhhbmRsZXIoKCkgPT4gdGhpcy5zdGFydFRlc3Rp
bmcoKSk7CiAgICAgfQogCiAgICAgc3RhcnRUZXN0aW5nKCkKICAgICB7Ci0gICAgICAgIHRoaXMu
ZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRpb25Db3VudCk7Cisg
ICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRp
b25Db3VudCwgdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICB9CiAKICAgICBzdGF0aWMg
aHRtbFRlbXBsYXRlKCkKQEAgLTM4LDYgKzQxLDExIEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0
ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgICAgIDpob3N0IHsKICAgICAgICAgICAgICAg
ICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgI25vdGlmeS1v
bi1jb21wbGV0aW9uLWNoZWNrYm94IHsKKyAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41
cmVtOworICAgICAgICAgICAgICAgIHdpZHRoOiAxcmVtOworICAgICAgICAgICAgfQogICAgICAg
ICBgOwogICAgIH0KIApAQCAtNTgsNiArNjYsNyBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4dGVu
ZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgICAgICAgICAgPG9wdGlvbj4xMDwvb3B0aW9uPgog
ICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICBpdGVyYXRpb25zIHBlciBzZXQKKyAg
ICAgICAgICAgIDxpbnB1dCBpZD0ibm90aWZ5LW9uLWNvbXBsZXRpb24tY2hlY2tib3giIHR5cGU9
ImNoZWNrYm94IiBjaGVja2VkLz5Ob3RpZnkgb24gY29tcGxldGlvbgogICAgICAgICBgOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvYW5hbHlzaXMtcmVzdWx0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL2FuYWx5c2lzLXJlc3VsdHMuanMKaW5kZXggZDA0OGJlZWQ2ZDJhMGNmZmQ5MTE2
ZjkyZGE5MjJkNmEwYWY4YTk1Mi4uMjU5NTUzY2NiYjQxZTFlMWQ1ZTg4ZjNmNWFlMDBhM2IwZWE5
NGFiYSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvYW5hbHlzaXMtcmVzdWx0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1bHRzLmpzCkBAIC04NCw3ICs4NCw3IEBAIGNsYXNz
IEFuYWx5c2lzUmVzdWx0cyB7CiAgICAgc3RhdGljIGZldGNoKHRhc2tJZCkKICAgICB7CiAgICAg
ICAgIHRhc2tJZCA9IHBhcnNlSW50KHRhc2tJZCk7Ci0gICAgICAgIHJldHVybiBSZW1vdGVBUEku
Z2V0SlNPTldpdGhTdGF0dXMoYC4uL2FwaS9tZWFzdXJlbWVudC1zZXQ/YW5hbHlzaXNUYXNrPSR7
dGFza0lkfWApLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBSZW1v
dGVBUEkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0P2FuYWx5c2lzVGFz
az0ke3Rhc2tJZH1gKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogCiAgICAgICAgICAgICBJ
bnN0cnVtZW50YXRpb24uc3RhcnRNZWFzdXJpbmdUaW1lKCdBbmFseXNpc1Jlc3VsdHMnLCAnZmV0
Y2gnKTsKIApAQCAtMTE2LDMgKzExNiw4IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0c1ZpZXcgewog
ICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWx0cy5maW5kUmVzdWx0KGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIHRoaXMuX21ldHJpYy5pZCgpKTsKICAgICB9CiB9CisKKworaWYgKHR5cGVvZiBtb2R1
bGUgIT09ICd1bmRlZmluZWQnKSB7CisgICAgbW9kdWxlLmV4cG9ydHMuQW5hbHlzaXNSZXN1bHRz
ID0gQW5hbHlzaXNSZXN1bHRzOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lz
LXRhc2suanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFs
eXNpcy10YXNrLmpzCmluZGV4IDVkYjQ1MjQyODk1ZTJjNGExZTE0NGI5ZmIzNDE1M2I0YTgzMzE5
ZTkuLmRiYjdjMmUwOTBhNjYwN2M1MzBmOWRkODk5ODdhYjM0NTIyMzI4MGQgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2su
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlz
aXMtdGFzay5qcwpAQCAtMzAzLDcgKzMwMyw3IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRz
IExhYmVsZWRPYmplY3QgewogICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICB9CiAKLSAgICBz
dGF0aWMgYXN5bmMgY3JlYXRlKG5hbWUsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCB0ZXN0R3JvdXBO
YW1lPW51bGwsIHJlcGV0aXRpb25Db3VudD0wKQorICAgIHN0YXRpYyBhc3luYyBjcmVhdGUobmFt
ZSwgc3RhcnRQb2ludCwgZW5kUG9pbnQsIHRlc3RHcm91cE5hbWU9bnVsbCwgcmVwZXRpdGlvbkNv
dW50PTAsIG5vdGlmeU9uQ29tcGxldGlvbj1mYWxzZSkKICAgICB7CiAgICAgICAgIGNvbnN0IHBh
cmFtZXRlcnMgPSB7bmFtZSwgc3RhcnRSdW46IHN0YXJ0UG9pbnQuaWQsIGVuZFJ1bjogZW5kUG9p
bnQuaWR9OwogICAgICAgICBpZiAodGVzdEdyb3VwTmFtZSkgewpAQCAtMzExLDYgKzMxMSw3IEBA
IGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICAgICAg
cGFyYW1ldGVyc1sncmV2aXNpb25TZXRzJ10gPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNv
bW1pdFNldHMoW3N0YXJ0UG9pbnQuY29tbWl0U2V0KCksIGVuZFBvaW50LmNvbW1pdFNldCgpXSk7
CiAgICAgICAgICAgICBwYXJhbWV0ZXJzWydyZXBldGl0aW9uQ291bnQnXSA9IHJlcGV0aXRpb25D
b3VudDsKICAgICAgICAgICAgIHBhcmFtZXRlcnNbJ3Rlc3RHcm91cE5hbWUnXSA9IHRlc3RHcm91
cE5hbWU7CisgICAgICAgICAgICBwYXJhbWV0ZXJzWyduZWVkc05vdGlmaWNhdGlvbiddID0gbm90
aWZ5T25Db21wbGV0aW9uOwogICAgICAgICB9CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdh
aXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCBwYXJh
bWV0ZXJzKTsKICAgICAgICAgcmV0dXJuIEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzcG9uc2Uu
dGFza0lkLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCmluZGV4IDAzMTdlMDVhOTc5ZWE3MmNlYzA2YTBk
ODIwZmQ3ZTgxYWI0MjI2YzQuLjEyMDYxMTQzZGQzYTUzOGU4MjQ2NTEzM2UzODVmZDdhMzE2NDg0
MTkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxz
L3Rlc3QtZ3JvdXAuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvdGVzdC1ncm91cC5qcwpAQCAtOSw2ICs5LDcgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVu
ZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHRoaXMuX2F1dGhvck5hbWUgPSBvYmplY3QuYXV0
aG9yOwogICAgICAgICB0aGlzLl9jcmVhdGVkQXQgPSBuZXcgRGF0ZShvYmplY3QuY3JlYXRlZEF0
KTsKICAgICAgICAgdGhpcy5faXNIaWRkZW4gPSBvYmplY3QuaGlkZGVuOworICAgICAgICB0aGlz
Ll9uZWVkc05vdGlmaWNhdGlvbiA9IG9iamVjdC5uZWVkc05vdGlmaWNhdGlvbjsKICAgICAgICAg
dGhpcy5fYnVpbGRSZXF1ZXN0cyA9IFtdOwogICAgICAgICB0aGlzLl9vcmRlckJ1aWxkUmVxdWVz
dHNMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24oKC4uLmJ1aWxkUmVxdWVzdHMp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBidWlsZFJlcXVlc3RzLnNvcnQoKGEsIGIpID0+IGEu
b3JkZXIoKSAtIGIub3JkZXIoKSk7CkBAIC0zMCwxMiArMzEsMTUgQEAgY2xhc3MgVGVzdEdyb3Vw
IGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Bs
YXRmb3JtID09IG9iamVjdC5wbGF0Zm9ybSk7CiAKICAgICAgICAgdGhpcy5faXNIaWRkZW4gPSBv
YmplY3QuaGlkZGVuOworICAgICAgICB0aGlzLl9uZWVkc05vdGlmaWNhdGlvbiA9IG9iamVjdC5u
ZWVkc05vdGlmaWNhdGlvbjsKICAgICB9CiAKICAgICB0YXNrKCkgeyByZXR1cm4gQW5hbHlzaXNU
YXNrLmZpbmRCeUlkKHRoaXMuX3Rhc2tJZCk7IH0KICAgICBjcmVhdGVkQXQoKSB7IHJldHVybiB0
aGlzLl9jcmVhdGVkQXQ7IH0KICAgICBpc0hpZGRlbigpIHsgcmV0dXJuIHRoaXMuX2lzSGlkZGVu
OyB9CiAgICAgYnVpbGRSZXF1ZXN0cygpIHsgcmV0dXJuIHRoaXMuX2J1aWxkUmVxdWVzdHM7IH0K
KyAgICBuZWVkc05vdGlmaWNhdGlvbigpIHsgcmV0dXJuIHRoaXMuX25lZWRzTm90aWZpY2F0aW9u
OyB9CisgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fYXV0aG9yTmFtZTsgfQogICAgIGFkZEJ1
aWxkUmVxdWVzdChyZXF1ZXN0KQogICAgIHsKICAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0cy5w
dXNoKHJlcXVlc3QpOwpAQCAtMTg1LDExICsxODksMjIgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVu
ZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHN0YXRpYyBjcmVh
dGVXaXRoVGFzayh0YXNrTmFtZSwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVwZXRpdGlv
bkNvdW50LCBjb21taXRTZXRzKQorICAgIGFzeW5jIGRpZFNlbmROb3RpZmljYXRpb24oKQorICAg
IHsKKyAgICAgICAgY29uc3QgaWQgPSB0aGlzLmlkKCk7CisgICAgICAgIGF3YWl0IFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywgeworICAgICAgICAgICAgZ3Jv
dXA6IGlkLAorICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246IGZhbHNlCisgICAgICAgIH0p
OworICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgVGVzdEdyb3VwLmNhY2hlZEZldGNoKGAvYXBp
L3Rlc3QtZ3JvdXBzLyR7aWR9YCwge30sIHRydWUpOworICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
Ll9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMoZGF0YSk7CisgICAgfQorCisgICAg
c3RhdGljIGNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9ybSwgdGVzdCwgZ3JvdXBOYW1l
LCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7
CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAg
ICBjb25zdCByZXZpc2lvblNldHMgPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNl
dHMoY29tbWl0U2V0cyk7Ci0gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrTmFtZSwgbmFtZTog
Z3JvdXBOYW1lLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKSwgdGVzdDogdGVzdC5pZCgpLCByZXBl
dGl0aW9uQ291bnQsIHJldmlzaW9uU2V0c307CisgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNr
TmFtZSwgbmFtZTogZ3JvdXBOYW1lLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKSwgdGVzdDogdGVz
dC5pZCgpLCByZXBldGl0aW9uQ291bnQsIHJldmlzaW9uU2V0cywgbmVlZHNOb3RpZmljYXRpb246
ICEhbm90aWZ5T25Db21wbGV0aW9ufTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywgcGFyYW1zKS50aGVuKChkYXRhKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gQW5hbHlzaXNUYXNrLmZldGNoQnlJZChkYXRhWyd0YXNrSWQnXSwg
dHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRhc2spID0+IHsKQEAgLTE5NywxNyArMjEyLDE3IEBA
IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB9KTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgY3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24odGFzaywgcGxh
dGZvcm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzKQorICAg
IHN0YXRpYyBjcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlvbih0YXNrLCBwbGF0Zm9ybSwgdGVz
dCwgZ3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxl
dGlvbikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09
IDIpOwogICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBDb21taXRTZXQucmV2aXNpb25TZXRz
RnJvbUNvbW1pdFNldHMoY29tbWl0U2V0cyk7Ci0gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNr
OiB0YXNrLmlkKCksIG5hbWU6IGdyb3VwTmFtZSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCksIHRl
c3Q6IHRlc3QuaWQoKSwgcmVwZXRpdGlvbkNvdW50LCByZXZpc2lvblNldHN9OworICAgICAgICBj
b25zdCBwYXJhbXMgPSB7dGFzazogdGFzay5pZCgpLCBuYW1lOiBncm91cE5hbWUsIHBsYXRmb3Jt
OiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCksIHJlcGV0aXRpb25Db3VudCwgcmV2aXNp
b25TZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogISFub3RpZnlPbkNvbXBsZXRpb259OwogICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCBw
YXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKICAgICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoRm9y
VGFzayhkYXRhWyd0YXNrSWQnXSwgdHJ1ZSk7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHN0
YXRpYyBjcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0YXNrLCBuYW1lLCByZXBldGl0aW9uQ291
bnQsIGNvbW1pdFNldHMpCisgICAgc3RhdGljIGNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRh
c2ssIG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cywgbm90aWZ5T25Db21wbGV0aW9u
KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7
CiAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9t
Q29tbWl0U2V0cyhjb21taXRTZXRzKTsKQEAgLTIxNiw2ICsyMzEsNyBAQCBjbGFzcyBUZXN0R3Jv
dXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAg
ICAgICAgICByZXBldGl0aW9uQ291bnQ6IHJlcGV0aXRpb25Db3VudCwKICAgICAgICAgICAgIHJl
dmlzaW9uU2V0czogcmV2aXNpb25TZXRzLAorICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246
ICEhbm90aWZ5T25Db21wbGV0aW9uLAogICAgICAgICB9KS50aGVuKChkYXRhKSA9PiB0aGlzLmZl
dGNoRm9yVGFzayhkYXRhWyd0YXNrSWQnXSwgdHJ1ZSkpOwogICAgIH0KIApAQCAtMjI5LDYgKzI0
NSwxMSBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAg
cmV0dXJuIHRoaXMuY2FjaGVkRmV0Y2goJy9hcGkvdGVzdC1ncm91cHMnLCB7dGFzazogdGFza0lk
fSwgaWdub3JlQ2FjaGUpLnRoZW4odGhpcy5fY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3Jv
dXBzLmJpbmQodGhpcykpOwogICAgIH0KIAorICAgIHN0YXRpYyBmZXRjaEFsbFdpdGhQZW5kaW5n
Tm90aWZpY2F0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmNhY2hlZEZldGNoKCcv
YXBpL3Rlc3QtZ3JvdXBzP25vdGlmaWNhdGlvbnMtcGVuZGluZz10cnVlJywgbnVsbCwgdHJ1ZSku
dGhlbih0aGlzLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMuYmluZCh0aGlzKSk7
CisgICAgfQorCiAgICAgc3RhdGljIF9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMo
ZGF0YSkKICAgICB7CiAgICAgICAgIHZhciB0ZXN0R3JvdXBzID0gZGF0YVsndGVzdEdyb3Vwcydd
Lm1hcChmdW5jdGlvbiAocm93KSB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCmluZGV4IDVh
YWYwNjhmNTRiNTJkYTM5ZWJlMGEzMjczY2Q5MjEyMTNkNmM2OWQuLjE0ZTNhNzI5YWMwMWFlZjRm
MDg5OGI2MjllNTg4NmZmNTNiN2EzMTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCkBA
IC0yNCw4ICsyNCw4IEBAIGNsYXNzIEFuYWx5c2lzVGFza0NoYXJ0UGFuZSBleHRlbmRzIENoYXJ0
UGFuZUJhc2UgewogCiAgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpCiAgICAgewotICAgICAg
ICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKHJlcGV0
aXRpb25Db3VudCwgbmFtZSwgY29tbWl0U2V0TWFwKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLmRp
c3BhdGNoQWN0aW9uKCduZXdUZXN0R3JvdXAnLCBuYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1p
dFNldE1hcCk7CisgICAgICAgIHRoaXMucGFydCgnZm9ybScpLmxpc3RlblRvQWN0aW9uKCdzdGFy
dFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50LCBuYW1lLCBjb21taXRTZXRNYXAsIG5vdGlmeU9u
Q29tcGxldGlvbikgPT4geworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignbmV3VGVz
dEdyb3VwJywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRNYXAsIG5vdGlmeU9uQ29t
cGxldGlvbik7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMTA2LDggKzEwNiw4IEBAIGNsYXNz
IEFuYWx5c2lzVGFza1Jlc3VsdHNQYW5lIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAg
IHJlcG9zaXRvcnlQaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gdGhpcy5l
bnF1ZXVlVG9SZW5kZXIoKSk7CiAgICAgICAgIHRoaXMucGFydCgnY29tbWl0LXZpZXdlcicpLnNl
dFNob3dSZXBvc2l0b3J5TmFtZShmYWxzZSk7CiAKLSAgICAgICAgdGhpcy5wYXJ0KCdmb3JtJyku
bGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9uQ291bnQsIG5hbWUsIGNv
bW1pdFNldE1hcCkgPT4gewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignbmV3VGVz
dEdyb3VwJywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRNYXApOworICAgICAgICB0
aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKHJlcGV0aXRp
b25Db3VudCwgbmFtZSwgY29tbWl0U2V0TWFwLCBub3RpZnlPbkNvbXBsZXRpb24pID0+IHsKKyAg
ICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ25ld1Rlc3RHcm91cCcsIG5hbWUsIHJlcGV0
aXRpb25Db3VudCwgY29tbWl0U2V0TWFwLCBub3RpZnlPbkNvbXBsZXRpb24pOwogICAgICAgICB9
KTsKICAgICB9CiAKQEAgLTI2NywxNCArMjY3LDE0IEBAIGNsYXNzIEFuYWx5c2lzVGFza1Rlc3RH
cm91cFBhbmUgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dU
cmVlKCkKICAgICB7CiAgICAgICAgIHRoaXMuY29udGVudCgnaGlkZS1idXR0b24nKS5vbmNsaWNr
ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndG9nZ2xlVGVzdEdyb3VwVmlzaWJpbGl0eScs
IHRoaXMuX2N1cnJlbnRUZXN0R3JvdXApOwotICAgICAgICB0aGlzLnBhcnQoJ3JldHJ5LWZvcm0n
KS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCkgPT4gewot
ICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmV0cnlUZXN0R3JvdXAnLCB0aGlzLl9j
dXJyZW50VGVzdEdyb3VwLCByZXBldGl0aW9uQ291bnQpOworICAgICAgICB0aGlzLnBhcnQoJ3Jl
dHJ5LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3Vu
dCwgbm90aWZ5T25Db21wbGV0aW9uKSA9PiB7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoQWN0
aW9uKCdyZXRyeVRlc3RHcm91cCcsIHRoaXMuX2N1cnJlbnRUZXN0R3JvdXAsIHJlcGV0aXRpb25D
b3VudCwgbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHRoaXMucGFy
dCgnYmlzZWN0LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKHJlcGV0aXRp
b25Db3VudCkgPT4geworICAgICAgICB0aGlzLnBhcnQoJ2Jpc2VjdC1mb3JtJykubGlzdGVuVG9B
Y3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9uQ291bnQsIG5vdGlmeU9uQ29tcGxldGlv
bikgPT4gewogICAgICAgICAgICAgY29uc3QgYmlzZWN0aW5nQ29tbWl0U2V0ID0gdGhpcy5fYmlz
ZWN0aW5nQ29tbWl0U2V0QnlUZXN0R3JvdXAuZ2V0KHRoaXMuX2N1cnJlbnRUZXN0R3JvdXApOwog
ICAgICAgICAgICAgY29uc3QgW29uZUNvbW1pdFNldCwgYW5vdGhlckNvbW1pdFNldF0gPSB0aGlz
Ll9jdXJyZW50VGVzdEdyb3VwLnJlcXVlc3RlZENvbW1pdFNldHMoKTsKICAgICAgICAgICAgIGNv
bnN0IGNvbW1pdFNldHMgPSBbb25lQ29tbWl0U2V0LCBiaXNlY3RpbmdDb21taXRTZXQsIGFub3Ro
ZXJDb21taXRTZXRdOwotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignYmlzZWN0VGVz
dEdyb3VwJywgdGhpcy5fY3VycmVudFRlc3RHcm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNv
dW50KTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Jpc2VjdFRlc3RHcm91cCcs
IHRoaXMuX2N1cnJlbnRUZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25Db3VudCwgbm90
aWZ5T25Db21wbGV0aW9uKTsKICAgICAgICAgfSk7CiAgICAgfQogCkBAIC01NDMsOCArNTQzLDgg
QEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAg
ICAgIGdyb3VwUGFuZS5saXN0ZW5Ub0FjdGlvbignc2hvd0hpZGRlblRlc3RHcm91cHMnLCAoKSA9
PiB0aGlzLl9zaG93QWxsVGVzdEdyb3VwcygpKTsKICAgICAgICAgZ3JvdXBQYW5lLmxpc3RlblRv
QWN0aW9uKCdyZW5hbWVUZXN0R3JvdXAnLCAodGVzdEdyb3VwLCBuZXdOYW1lKSA9PiB0aGlzLl91
cGRhdGVUZXN0R3JvdXBOYW1lKHRlc3RHcm91cCwgbmV3TmFtZSkpOwogICAgICAgICBncm91cFBh
bmUubGlzdGVuVG9BY3Rpb24oJ3RvZ2dsZVRlc3RHcm91cFZpc2liaWxpdHknLCAodGVzdEdyb3Vw
KSA9PiB0aGlzLl9oaWRlQ3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXApKTsKLSAgICAgICAgZ3Jv
dXBQYW5lLmxpc3RlblRvQWN0aW9uKCdyZXRyeVRlc3RHcm91cCcsICh0ZXN0R3JvdXAsIHJlcGV0
aXRpb25Db3VudCkgPT4gdGhpcy5fcmV0cnlDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgcmVw
ZXRpdGlvbkNvdW50KSk7Ci0gICAgICAgIGdyb3VwUGFuZS5saXN0ZW5Ub0FjdGlvbignYmlzZWN0
VGVzdEdyb3VwJywgKHRlc3RHcm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50KSA9PiB0
aGlzLl9iaXNlY3RDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgY29tbWl0U2V0cywgcmVwZXRp
dGlvbkNvdW50KSk7CisgICAgICAgIGdyb3VwUGFuZS5saXN0ZW5Ub0FjdGlvbigncmV0cnlUZXN0
R3JvdXAnLCAodGVzdEdyb3VwLCByZXBldGl0aW9uQ291bnQsIG5vdGlmeU9uQ29tcGxldGlvbikg
PT4gdGhpcy5fcmV0cnlDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgcmVwZXRpdGlvbkNvdW50
LCBub3RpZnlPbkNvbXBsZXRpb24pKTsKKyAgICAgICAgZ3JvdXBQYW5lLmxpc3RlblRvQWN0aW9u
KCdiaXNlY3RUZXN0R3JvdXAnLCAodGVzdEdyb3VwLCBjb21taXRTZXRzLCByZXBldGl0aW9uQ291
bnQsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4gdGhpcy5fYmlzZWN0Q3VycmVudFRlc3RHcm91cCh0
ZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9u
KSk7CiAKICAgICAgICAgdGhpcy5wYXJ0KCdjYXVzZS1saXN0JykubGlzdGVuVG9BY3Rpb24oJ2Fk
ZEl0ZW0nLCAocmVwb3NpdG9yeSwgcmV2aXNpb24pID0+IHsKICAgICAgICAgICAgIHRoaXMuX2Fz
c29jaWF0ZUNvbW1pdCgnY2F1c2UnLCByZXBvc2l0b3J5LCByZXZpc2lvbik7CkBAIC04MTksMTkg
KzgxOSwxOSBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5n
IHsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgX3JldHJ5Q3VycmVudFRlc3RHcm91cCh0ZXN0
R3JvdXAsIHJlcGV0aXRpb25Db3VudCkKKyAgICBfcmV0cnlDdXJyZW50VGVzdEdyb3VwKHRlc3RH
cm91cCwgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewogICAgICAg
ICBjb25zdCBleGlzdGluZ05hbWVzID0gKHRoaXMuX3Rlc3RHcm91cHMgfHwgW10pLm1hcCgoZ3Jv
dXApID0+IGdyb3VwLm5hbWUoKSk7CiAgICAgICAgIGNvbnN0IG5ld05hbWUgPSBDb21taXRTZXQu
Y3JlYXRlTmFtZVdpdGhvdXRDb2xsaXNpb24odGVzdEdyb3VwLm5hbWUoKSwgbmV3IFNldChleGlz
dGluZ05hbWVzKSk7CiAgICAgICAgIGNvbnN0IGNvbW1pdFNldExpc3QgPSB0ZXN0R3JvdXAucmVx
dWVzdGVkQ29tbWl0U2V0cygpOwogICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IHRoaXMuX3Rhc2su
cGxhdGZvcm0oKSB8fCB0ZXN0R3JvdXAucGxhdGZvcm0oKTsKLSAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5jcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlvbih0aGlzLl90YXNrLCBwbGF0Zm9ybSwg
dGVzdEdyb3VwLnRlc3QoKSwgbmV3TmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRMaXN0
KQorICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0ZVdpdGhDdXN0b21Db25maWd1cmF0aW9u
KHRoaXMuX3Rhc2ssIHBsYXRmb3JtLCB0ZXN0R3JvdXAudGVzdCgpLCBuZXdOYW1lLCByZXBldGl0
aW9uQ291bnQsIGNvbW1pdFNldExpc3QsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICAgICAgICAg
IC50aGVuKHRoaXMuX2RpZEZldGNoVGVzdEdyb3Vwcy5iaW5kKHRoaXMpLCBmdW5jdGlvbiAoZXJy
b3IpIHsKICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IHRlc3QgZ3Jv
dXA6ICcgKyBlcnJvcik7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGFzeW5jIF9iaXNlY3RD
dXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50KQor
ICAgIGFzeW5jIF9iaXNlY3RDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgY29tbWl0U2V0cywg
cmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewogICAgICAgICBjb25z
b2xlLmFzc2VydCh0ZXN0R3JvdXAudGFzaygpKTsKICAgICAgICAgY29uc3QgZXhpc3RpbmdUZXN0
R3JvdXBOYW1lcyA9IG5ldyBTZXQoKHRoaXMuX3Rlc3RHcm91cHMgfHwgW10pLm1hcCgodGVzdEdy
b3VwKSA9PiB0ZXN0R3JvdXAubmFtZSgpKSk7CkBAIC04NDEsNyArODQxLDcgQEAgY2xhc3MgQW5h
bHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgICAgICBjb25z
dCBjdXJyZW50Q29tbWl0U2V0ID0gY29tbWl0U2V0c1tpXTsKICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cE5hbWUgPSBDb21taXRTZXQuY3JlYXRlTmFtZVdpdGhvdXRDb2xsaXNpb24oQ29tbWl0
U2V0LmRpZmYocHJldmlvdXNDb21taXRTZXQsIGN1cnJlbnRDb21taXRTZXQpLCBleGlzdGluZ1Rl
c3RHcm91cE5hbWVzKTsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5jcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0
ZXN0R3JvdXAudGFzaygpLCB0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIFtwcmV2aW91
c0NvbW1pdFNldCwgY3VycmVudENvbW1pdFNldF0pOworICAgICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuY3JlYXRlQW5kUmVmZXRjaFRlc3RHcm91cHModGVz
dEdyb3VwLnRhc2soKSwgdGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBbcHJldmlvdXND
b21taXRTZXQsIGN1cnJlbnRDb21taXRTZXRdLCBub3RpZnlPbkNvbXBsZXRpb24pOwogICAgICAg
ICAgICAgICAgIGF3YWl0IHRoaXMuX2RpZEZldGNoVGVzdEdyb3Vwcyh0ZXN0R3JvdXBzKTsKICAg
ICAgICAgICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAgICAgICAgICAgICBhbGVydCgnRmFpbGVk
IHRvIGNyZWF0ZSBhIG5ldyB0ZXN0IGdyb3VwOiAnICsgZXJyb3IpOwpAQCAtODUwLDcgKzg1MCw3
IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAg
ICAgICB9CiAgICAgfQogCi0gICAgX2NyZWF0ZVRlc3RHcm91cEFmdGVyVmVyaWZ5aW5nQ29tbWl0
U2V0TGlzdCh0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldE1hcCkKKyAg
ICBfY3JlYXRlVGVzdEdyb3VwQWZ0ZXJWZXJpZnlpbmdDb21taXRTZXRMaXN0KHRlc3RHcm91cE5h
bWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFwLCBub3RpZnlPbkNvbXBsZXRpb24pCiAg
ICAgewogICAgICAgICBpZiAodGhpcy5faGFzRHVwbGljYXRlVGVzdEdyb3VwTmFtZSh0ZXN0R3Jv
dXBOYW1lKSkgewogICAgICAgICAgICAgYWxlcnQoYFRoZXJlIGlzIGFscmVhZHkgYSB0ZXN0IGdy
b3VwIG5hbWVkICIke3Rlc3RHcm91cE5hbWV9ImApOwpAQCAtODc2LDEzICs4NzYsMTMgQEAgY2xh
c3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgIGZv
ciAobGV0IGxhYmVsIGluIGNvbW1pdFNldE1hcCkKICAgICAgICAgICAgIGNvbW1pdFNldHMucHVz
aChjb21taXRTZXRNYXBbbGFiZWxdKTsKIAotICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0
ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRoaXMuX3Rhc2ssIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRp
b25Db3VudCwgY29tbWl0U2V0cykKKyAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVBbmRS
ZWZldGNoVGVzdEdyb3Vwcyh0aGlzLl90YXNrLCB0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9uQ291
bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICAgICAgICAgIC50aGVuKHRo
aXMuX2RpZEZldGNoVGVzdEdyb3Vwcy5iaW5kKHRoaXMpLCBmdW5jdGlvbiAoZXJyb3IpIHsKICAg
ICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IHRlc3QgZ3JvdXA6ICcgKyBl
cnJvcik7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIF9jcmVhdGVDdXN0b21UZXN0R3JvdXAo
cmVwZXRpdGlvbkNvdW50LCB0ZXN0R3JvdXBOYW1lLCBjb21taXRTZXRzLCBwbGF0Zm9ybSwgdGVz
dCkKKyAgICBfY3JlYXRlQ3VzdG9tVGVzdEdyb3VwKHJlcGV0aXRpb25Db3VudCwgdGVzdEdyb3Vw
TmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRlc3QsIG5vdGlmeU9uQ29tcGxldGlvbikKICAg
ICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Rhc2suaXNDdXN0b20oKSk7CiAgICAg
ICAgIGlmICh0aGlzLl9oYXNEdXBsaWNhdGVUZXN0R3JvdXBOYW1lKHRlc3RHcm91cE5hbWUpKSB7
CkBAIC04OTAsNyArODkwLDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VX
aXRoSGVhZGluZyB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBU
ZXN0R3JvdXAuY3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24odGhpcy5fdGFzaywgcGxhdGZv
cm0sIHRlc3QsIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cykKKyAg
ICAgICAgVGVzdEdyb3VwLmNyZWF0ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKHRoaXMuX3Rhc2ss
IHBsYXRmb3JtLCB0ZXN0LCB0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNl
dHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICAgICAgICAgIC50aGVuKHRoaXMuX2RpZEZldGNo
VGVzdEdyb3Vwcy5iaW5kKHRoaXMpLCBmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgIGFs
ZXJ0KCdGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IHRlc3QgZ3JvdXA6ICcgKyBlcnJvcik7CiAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9w
YWdlcy9jaGFydC1wYW5lLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9w
YWdlcy9jaGFydC1wYW5lLmpzCmluZGV4IDhjZDdhYTAwNDdmN2FkZmNjZDZiZmY0MDRmODc0Y2Ux
MzdmZTMwNzAuLmNkNzQ4ZGViNDljZWUwOThiM2Y0OTZjYWM4OGQzNTIzZjczZmVmMzAgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFu
ZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0
LXBhbmUuanMKQEAgLTExOSw3ICsxMTksOCBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFy
dFBhbmVCYXNlIHsKICAgICAgICAgfSk7CiAgICAgICAgIGNvbnN0IGNyZWF0ZVdpdGhUZXN0R3Jv
dXBDaGVja2JveCA9IHRoaXMuY29udGVudCgnY3JlYXRlLXdpdGgtdGVzdC1ncm91cCcpOwogICAg
ICAgICBjb25zdCByZXBldGl0aW9uQ291bnQgPSB0aGlzLmNvbnRlbnQoJ2NvbmZpcm0tcmVwZXRp
dGlvbicpOwotICAgICAgICBjcmVhdGVXaXRoVGVzdEdyb3VwQ2hlY2tib3gub25jaGFuZ2UgPSAo
KSA9PiByZXBldGl0aW9uQ291bnQuZGlzYWJsZWQgPSAhY3JlYXRlV2l0aFRlc3RHcm91cENoZWNr
Ym94LmNoZWNrZWQ7CisgICAgICAgIGNvbnN0IG5vdGlmeU9uQ29tcGxldGlvbiA9IHRoaXMuY29u
dGVudCgnbm90aWZ5LW9uLWNvbXBsZXRpb24nKTsKKyAgICAgICAgY3JlYXRlV2l0aFRlc3RHcm91
cENoZWNrYm94Lm9uY2hhbmdlID0gKCkgPT4gcmVwZXRpdGlvbkNvdW50LmRpc2FibGVkID0gbm90
aWZ5T25Db21wbGV0aW9uLmRpc2FibGVkID0gIWNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2JveC5j
aGVja2VkOwogICAgIH0KIAogICAgIHNlcmlhbGl6ZVN0YXRlKCkKQEAgLTIzNywxMCArMjM4LDEx
IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogICAgICAgICBjb25z
dCBuYW1lID0gdGhpcy5jb250ZW50KCd0YXNrLW5hbWUnKS52YWx1ZTsKICAgICAgICAgY29uc3Qg
Y3JlYXRlV2l0aFRlc3RHcm91cCA9IHRoaXMuY29udGVudCgnY3JlYXRlLXdpdGgtdGVzdC1ncm91
cCcpLmNoZWNrZWQ7CiAgICAgICAgIGNvbnN0IHJlcGV0aXRpb25Db3VudCA9IHRoaXMuY29udGVu
dCgnY29uZmlybS1yZXBldGl0aW9uJykudmFsdWU7CisgICAgICAgIGNvbnN0IG5vdGlmeU9uQ29t
cGxldGlvbiA9IHRoaXMuY29udGVudCgnbm90aWZ5LW9uLWNvbXBsZXRpb24nKS5jaGVja2VkOwog
CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBjb25zdCBhbmFseXNpc1Rhc2sgPSBhd2FpdCAo
Y3JlYXRlV2l0aFRlc3RHcm91cCA/Ci0gICAgICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0
ZShuYW1lLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQp
IDogQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFydFBvaW50LCBlbmRQb2ludCkpOworICAg
ICAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUobmFtZSwgc3RhcnRQb2ludCwgZW5kUG9p
bnQsICdDb25maXJtJywgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRpb24pIDogQW5h
bHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFydFBvaW50LCBlbmRQb2ludCkpOwogICAgICAgICAg
ICAgbmV3V2luZG93LmxvY2F0aW9uLmhyZWYgPSByb3V0ZXIudXJsKCdhbmFseXNpcy90YXNrLycg
KyBhbmFseXNpc1Rhc2suaWQoKSk7CiAgICAgICAgICAgICB0aGlzLmZldGNoQW5hbHlzaXNUYXNr
cyh0cnVlKTsKICAgICAgICAgfSBjYXRjaChlcnJvcikgewpAQCAtNTgzLDYgKzU4NSw3IEBAIGNs
YXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG9wdGlvbj4xMDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFi
ZWw+aXRlcmF0aW9uczwvbGFiZWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVs
PjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im5vdGlmeS1vbi1jb21wbGV0aW9uIiBjaGVja2Vk
PiBOb3RpZnkgb24gY29tcGxldGlvbjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICA8
L2xpPgogICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgIDx1
bCBjbGFzcz0iY2hhcnQtcGFuZS1maWx0ZXJpbmctb3B0aW9ucyBwb3BvdmVyIiBzdHlsZT0iZGlz
cGxheTpub25lIj4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFnZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFnZS5qcwppbmRl
eCBhOWYwODkwYzE5YmVmYjYzMGJmMDdkYmJiNWU1Y2UzZWUyYjM2NWFjLi4zMDFmZDJhMjkwNjUx
ZDUxMjhjMzUyM2FmNDk4MjBmMjAzYmM2NmEzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NyZWF0ZS1hbmFseXNpcy10YXNrLXBhZ2UuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jcmVhdGUtYW5hbHlz
aXMtdGFzay1wYWdlLmpzCkBAIC0yMiw5ICsyMiw5IEBAIGNsYXNzIENyZWF0ZUFuYWx5c2lzVGFz
a1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0n
KS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fY3JlYXRlQW5hbHlzaXNUYXNr
V2l0aEdyb3VwLmJpbmQodGhpcykpOwogICAgIH0KIAotICAgIF9jcmVhdGVBbmFseXNpc1Rhc2tX
aXRoR3JvdXAocmVwZXRpdGlvbkNvdW50LCB0ZXN0R3JvdXBOYW1lLCBjb21taXRTZXRzLCBwbGF0
Zm9ybSwgdGVzdCwgdGFza05hbWUpCisgICAgX2NyZWF0ZUFuYWx5c2lzVGFza1dpdGhHcm91cChy
ZXBldGl0aW9uQ291bnQsIHRlc3RHcm91cE5hbWUsIGNvbW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0
LCB0YXNrTmFtZSwgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKLSAgICAgICAgVGVzdEdyb3Vw
LmNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9ybSwgdGVzdCwgdGVzdEdyb3VwTmFtZSwg
cmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzKS50aGVuKCh0YXNrKSA9PiB7CisgICAgICAgIFRl
c3RHcm91cC5jcmVhdGVXaXRoVGFzayh0YXNrTmFtZSwgcGxhdGZvcm0sIHRlc3QsIHRlc3RHcm91
cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cywgbm90aWZ5T25Db21wbGV0aW9uKS50
aGVuKCh0YXNrKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlcigpLnVy
bChgYW5hbHlzaXMvdGFzay8ke3Rhc2suaWQoKX1gKTsKICAgICAgICAgICAgIGxvY2F0aW9uLmhy
ZWYgPSB0aGlzLnJvdXRlcigpLnVybChgYW5hbHlzaXMvdGFzay8ke3Rhc2suaWQoKX1gKTsKICAg
ICAgICAgfSwgKGVycm9yKSA9PiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkMzMxMzU0
YjRlZTNiNGU1Yjc2NjUzZjRmMjNhOWUxNTg4NzNkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcwpAQCAt
MCwwICsxLDk3IEBACisndXNlIHN0cmljdCc7CisKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fz
c2VydCcpOworY29uc3QgTW9ja0RhdGEgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLWRhdGEu
anMnKTsKK2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZl
ci5qcycpOworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9j
b21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OworCitkZXNjcmliZSgnL2Fw
aS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKKyAgICBwcmVwYXJlU2VydmVyVGVzdCh0aGlz
KTsKKworICAgIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzP25vdGlmaWNhdGlvbnMtcGVuZGlu
Zz10cnVlJywgKCkgPT4geworICAgICAgICBpdCAoJ3Nob3VsZCBleGl0IHdpdGggIlRhc2tJZE9y
Tm90aWZpY2F0aW9uc1BlbmRpbmdOb3RTcGVjaWZpZWQiIGlmIG5vIEdFVCBhcmd1bWVudCBwcm92
aWRlZCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ1Rhc2tJZE9yTm90aWZpY2F0aW9u
c1BlbmRpbmdOb3RTcGVjaWZpZWQnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBleGl0IHdpdGggIlRhc2tJZEFuZE5vdGlmaWNhdGlvbnNQZW5kaW5nTXVzdEJlTXV0dWFsRXhj
bHVzaXZlIiBpZiBib3RoIHRhc2sgaWQgYW5kIG5vdGlmaWNhdGlvbnMtcGVuZGluZyBhcmUgcHJv
dmlkZSB0byB0aGlzIGFwaScsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGNvbnRl
bnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91
cHM/bm90aWZpY2F0aW9ucy1wZW5kaW5nPXRydWUmdGFzaz0xMDAnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ1Rhc2tJZEFuZE5vdGlmaWNhdGlvbnNQZW5kaW5n
TXVzdEJlTXV0dWFsRXhjbHVzaXZlJyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91
bGQgZ2l2ZSBhbiBlbXB0eSBsaXN0IGlmIHRoZXJlIGlzIG5vdCBleGlzdGluZyB0ZXN0IGdyb3Vw
IGF0IGFsbCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHM/bm90aWZp
Y2F0aW9ucy1wZW5kaW5nPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVz
dEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxk
UmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21t
aXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmls
ZXMsIFtdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3QgaW5jbHVkZSBh
IHRlc3QgZ3JvdXAgd2l0aCAiY2FuY2VsZWQiIHN0YXRlIGluIGF0IGxlYXN0IG9uZSBidWlsZCBy
ZXF1ZXN0JywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9j
a0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAn
Y29tcGxldGVkJywgJ2NhbmNlbGVkJ10pOworICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcz9ub3Rp
ZmljYXRpb25zLXBlbmRpbmc9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50
ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVp
bGRSZXF1ZXN0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNv
bW1pdFNldHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21t
aXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRG
aWxlcywgW10pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGxpc3QgYWxsIHRl
c3QgZ3JvdXBzIHdpdGggcGVuZGluZyBub3RpZmljYXRpb24nLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCks
IFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOwor
ICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcz9ub3RpZmljYXRpb25zLXBlbmRpbmc9dHJ1ZScpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gY29udGVudC50ZXN0R3JvdXBzWzBdOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5pZCwgNjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAudGFzaywgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5oaWRkZW4sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAubmVlZHNOb3RpZmljYXRpb24sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywg
JzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxk
IG5vdCBsaXN0IGhpZGRlbiB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAg
Y29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFzZSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVk
JywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnXSk7CisgICAgICAgICAgICBhd2FpdCBkYXRhYmFz
ZS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfaGlkZGVu
ID0gVFJVRSBXSEVSRSB0ZXN0Z3JvdXBfaWQgPSA2MDAnKTsKKyAgICAgICAgICAgIGNvbnN0IGNv
bnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1n
cm91cHM/bm90aWZpY2F0aW9ucy1wZW5kaW5nPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBu
b3QgbGlzdCB0ZXN0IGdyb3VwcyB0aGF0IGhhdmUgYXV0aG9yIG5vdGlmaWVkIGJlZm9yZScsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlID0gVGVzdFNlcnZlci5kYXRh
YmFzZSgpOworICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2Us
IFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOwor
ICAgICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dy
b3VwcyBTRVQgdGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiA9IEZBTFNFIFdIRVJFIHRlc3Rn
cm91cF9pZCA9IDYwMCcpOworICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcz9ub3RpZmljYXRpb25z
LXBlbmRpbmc9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVz
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10p
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IGEgdGVzdCBncm91
cCB0aGF0IGhhcyBzb21lIGluY29tcGxldGVkIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4g
eworICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7Cisg
ICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFzZSwgWydjb21wbGV0
ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdydW5uaW5nJ10pOworICAgICAgICAgICAg
Y29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS90ZXN0LWdyb3Vwcz9ub3RpZmljYXRpb25zLXBlbmRpbmc9dHJ1ZScpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMKaW5k
ZXggYWI4MzQwZWJjYzFhOWVmM2RjMTQ2ZmVlNTIyMjcxMmQ2YTBkZTg2YS4uNmY2OGIwZjkxNmMy
Y2U0NjM0ZWM3NWFjNmMzM2JkNDk5MDNiYzNlMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMu
anMKQEAgLTY1LDcgKzY1LDcgQEAgZnVuY3Rpb24gY3JlYXRlVGVzdEdyb3VwV2loUGF0Y2goKQog
ICAgICAgICBjb25zdCBzZXQyID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKICAgICAgICAgc2V0Mi5z
ZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0LCAnMTkxNjIyJyk7CiAgICAgICAgIHNldDIu
c2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCwgJzgwMjI5Jyk7Ci0gICAgICAgIHJldHVy
biBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIs
IFtzZXQxLCBzZXQyXSk7CisgICAgICAgIHJldHVybiBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2so
J2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQo
KSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIsIFtzZXQxLCBzZXQyXSwgdHJ1ZSk7CiAgICAg
fSkudGhlbigodGFzaykgPT4gewogICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZpbmRBbGxCeVRh
c2sodGFzay5pZCgpKVswXTsKICAgICB9KS50aGVuKChncm91cCkgPT4gewpAQCAtMTA3LDcgKzEw
Nyw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaEFuZE93bmVkQ29tbWl0cygp
CiAgICAgICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MjczNicp
OwogICAgICAgICBzZXQyLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZFNKQywgJ293bmVk
LWpzYy05MTkxJywgbnVsbCwgJzE5MjczNicpOwogCi0gICAgICAgIHJldHVybiBUZXN0R3JvdXAu
Y3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIsIFtzZXQxLCBzZXQy
XSk7CisgICAgICAgIHJldHVybiBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNr
JywgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0
LCAnc29tZSBncm91cCcsIDIsIFtzZXQxLCBzZXQyXSwgdHJ1ZSk7CiAgICAgfSkudGhlbigodGFz
aykgPT4gewogICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZpbmRBbGxCeVRhc2sodGFzay5pZCgp
KVswXTsKICAgICB9KS50aGVuKChncm91cCkgPT4gewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMt
dGFzay10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKaW5kZXggYzdhNmQxNzcx
ZjliNDJjNGEyZmQwN2Y2NzJhMjNkYTI0ZGM3Y2Q4OS4uMjA2ZGJmNmNjOTc3M2ExYjRkZGJiZWI3
Yzk3MDhlZWRlY2ViYWQ0ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC02LDYgKzYsNyBAQCBsZXQgTW9ja0Rh
dGEgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKIGxldCBUZXN0U2VydmVy
ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsKIGNvbnN0IGFkZEJ1aWxk
ZXJGb3JSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycp
LmFkZEJ1aWxkZXJGb3JSZXBvcnQ7CiBjb25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7Citj
b25zdCBhc3NlcnRUaHJvd3MgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9u
cy5qcycpLmFzc2VydFRocm93czsKIAogY29uc3QgcmVwb3J0V2l0aFJldmlzaW9uID0gW3sKICAg
ICAiYnVpbGROdW1iZXIiOiAiMTI0IiwKQEAgLTM1MywxNyArMzU0LDEwIEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVn
ZWQgYXBpJywgZnVuCiAgICAgICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06
IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0
ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMyd9fTsKIAotICAgICAgICBsZXQgcmFp
c2VFeGNlcHRpb24gPSBmYWxzZTsKLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgYXdhaXQg
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTog
J2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDEsCi0gICAgICAgICAgICAgICAgcmV2aXNpb25T
ZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJSZXZpc2lvblNldF0sCi0gICAgICAgICAgICAg
ICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCdd
fSk7Ci0gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZXJyb3IsICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycpOwotICAgICAgICAgICAgcmFpc2VF
eGNlcHRpb24gPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydC5vayhyYWlzZUV4Y2Vw
dGlvbik7CisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnVHJpZ2dlcmFibGVOb3RGb3VuZEZv
clRhc2snLCAoKSA9PgorICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDEs
CisgICAgICAgICAgICAgICAgcmV2aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJS
ZXZpc2lvblNldF0sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLAorICAgICAgICAgICAgICAgIHN0
YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pKTsK
ICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCBu
byB0ZXN0IGdyb3VwIHdoZW4gcmVwZXRpdGlvbiBjb3VudCBpcyAwJywgYXN5bmMgKCkgPT4gewpA
QCAtNDM5LDcgKzQzMyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAKICAgICAgICAgY29u
c3QgY29udGVudCA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFs
eXNpcy10YXNrJywge25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAogICAgICAg
ICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLCByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lv
blNldCwgYW5vdGhlclJldmlzaW9uU2V0XSwKLSAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVu
c1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOworICAgICAgICAgICAgc3Rh
cnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddLCBuZWVk
c05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFs
eXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwpAQCAtNDU2LDYgKzQ1MCw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZp
bGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKIApAQCAtNTEzLDE3ICs1MDgsMTAg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5v
ZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQg
PSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90
aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OwogCi0g
ICAgICAgIGxldCByYWlzZUV4Y2VwdGlvbiA9IGZhbHNlOwotCi0gICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMt
dGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMSwKKyAgICAgICAgYXdh
aXQgYXNzZXJ0VGhyb3dzKCdTbGF2ZU5vdEZvdW5kJywgKCkgPT4KKyAgICAgICAgICAgIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdjb25m
aXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAogICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czog
W29uZVJldmlzaW9uU2V0LCBhbm90aGVyUmV2aXNpb25TZXRdLAotICAgICAgICAgICAgICAgIHN0
YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwot
ICAgICAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnU2xhdmVOb3RGb3VuZCcpOwotICAgICAgICAgICAgcmFpc2VFeGNlcHRpb24gPSB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGFzc2VydC5vayhyYWlzZUV4Y2VwdGlvbik7CisgICAgICAgICAg
ICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydp
ZCddfSkpOwogCiAgICAgICAgIGNvbnN0IGFsbEFuYWx5c2lzVGFza3MgPSBhd2FpdCBkYi5zZWxl
Y3RSb3dzKCdhbmFseXNpc190YXNrcycpOwogICAgICAgICBhc3NlcnQub2soIWFsbEFuYWx5c2lz
VGFza3MubGVuZ3RoKTsKQEAgLTU2Nyw3ICs1NTUsODcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5j
dGkKIAogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9u
Q291bnQ6IDEsCiAgICAgICAgICAgICB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHJldmlzaW9u
U2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90aGVyUmV2aXNpb25TZXRdLAotICAgICAgICAgICAg
c3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7
CisgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1
bnNbMV1bJ2lkJ10sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlfSk7CisKKyAgICAgICAgY29uc3Qg
dGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwor
ICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFz
c2VydCghdGFzay5oYXNSZXN1bHRzKCkpOworICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5n
UmVxdWVzdHMoKSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0
YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRm
b3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRh
c2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworCisgICAgICAgIGNvbnN0IHRl
c3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7CisgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
bmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5lZWRz
Tm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCAyKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworCisg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3Jv
dXApOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwg
dGVzdEdyb3VwKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0
Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworCisgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2su
aWQoKSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0
ZXN0MSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVz
dDEpOworCisgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwor
ICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKKyAgICAgICAg
YXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQub2so
YnVpbGRSZXF1ZXN0c1sxXS5pc1Rlc3QoKSk7CisKKyAgICAgICAgY29uc3QgZmlyc3RDb21taXRT
ZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOworICAgICAgICBjb25zdCBzZWNvbmRD
b21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOworICAgICAgICBjb25zdCB3
ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7CisgICAgICAg
IGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJl
cG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
Y29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlz
aW9uKCksICcxOTE2MjMnKTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuIGFu
YWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIGFuZCByZXNwZWN0IHRoZSAibmVlZHNOb3RpZmlj
YXRpb24iIGZsYWcgaW4gdGhlIGh0dHAgcmVxdWVzdCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAg
Y29uc3Qgd2Via2l0SWQgPSAxOworICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gMTsKKyAgICAg
ICAgY29uc3QgdGVzdDFJZCA9IDI7CisgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlSWQgPSAxMjM0
OworCisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBh
d2FpdCBkYi5pbnNlcnQoJ3Rlc3RzJywge2lkOiAxLCBuYW1lOiAnU3VpdGUnfSk7CisgICAgICAg
IGF3YWl0IGRiLmluc2VydCgndGVzdHMnLCB7aWQ6IHRlc3QxSWQsIG5hbWU6ICd0ZXN0MScsIHBh
cmVudDogMX0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHtpZDog
d2Via2l0SWQsIG5hbWU6ICdXZWJLaXQnfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncGxh
dGZvcm1zJywge2lkOiBwbGF0Zm9ybUlkLCBuYW1lOiAnc29tZSBwbGF0Zm9ybSd9KTsKKyAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6
ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJh
YmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0
cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Ry
aWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIz
NDV9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
cycsIHt0ZXN0OiB0ZXN0MUlkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRy
aWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRX
aXRoUmV2aXNpb25bMF0pOworCisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAgIGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3Ro
ZXJSZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwor
CisgICAgICAgIGxldCB0ZXN0MSA9IFRlc3QuZmluZEJ5SWQodGVzdDFJZCk7CisgICAgICAgIGxl
dCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKKyAgICAgICAg
Y29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJh
dGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQ
bGF0Zm9ybS5pZCgpfSk7CisgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0
Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CisgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworCisgICAgICAgIGNvbnN0IG9uZVJldmlz
aW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKKyAgICAgICAgY29u
c3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMyd9
fTsKKworICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9u
Q291bnQ6IDEsCisgICAgICAgICAgICB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHJldmlzaW9u
U2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90aGVyUmV2aXNpb25TZXRdLAorICAgICAgICAgICAg
c3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddLCBu
ZWVkc05vdGlmaWNhdGlvbjogZmFsc2V9KTsKIAogICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQg
QW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7CiAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKQEAgLTU4NCw2ICs2NTIsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2
aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CiAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwogICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwogCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0
ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCAyZjNi
Mjk3NjhhNjI2ZDRlMTZhZmU5MzNlZDgyMTk1ZmZjYzc4MDlhLi4yNjNlMTU1NDhkMzJhZTg1ZGM1
MWNmNmEyMGExODIyY2YyZGRiNDAyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTMzOSw5ICszMzksOSBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
IGl0KCdzaG91bGQgcmV0dXJuICJEdXBsaWNhdGVUZXN0R3JvdXBOYW1lIiB3aGVuIHRoZXJlIGlz
IGFscmVhZHkgYSB0ZXN0IGdyb3VwIG9mIHRoZSBzYW1lIG5hbWUnLCAoKSA9PiB7CiAgICAgICAg
IHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRh
c2tJZCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0cyA9IHsnV2ViS2l0JzogWycx
OTE2MjInLCAnMTkxNjIzJ119OwotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lk
LCBjb21taXRTZXRzfSkudGhlbigoY29udGVudCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0
JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoY29udGVudFsndGVzdEdy
b3VwSWQnXSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21t
aXRTZXRzfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21t
aXRTZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewpAQCAtMzkxLDcgKzM5MSw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVy
KChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnSmF2YVNjcmlwdENvcmUnICYm
IHJlcG9zaXRvcnkub3duZXJJZCgpKVswXTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0
cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXTog
e3JldmlzaW9uOiAnMTVBMjg0J30sIFtvd25lZEpTQy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQt
anNjLTYxNjEnLCBvd25lclJldmlzaW9uOiAnMTkxNjIyJ319LAogICAgICAgICAgICAgICAgIHtb
d2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNp
b246ICcxNUEyODQnfSwgW293bmVkSlNDLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5
MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1dOwotICAgICAgICAgICAgcmV0dXJuIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0Jywg
dGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDEsIHJldmlzaW9uU2V0c30pOworICAgICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3Vw
Jywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDEsIG5lZWRz
Tm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwpAQCAt
NDAxLDYgKzQwMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNb
MF07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAg
Y29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0
c1swXS5pc0J1aWxkKCkpOwpAQCAtNDM3LDcgKzQzOCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25z
dCBqc2MgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9y
eS5uYW1lKCkgPT0gJ0phdmFTY3JpcHRDb3JlJyAmJiByZXBvc2l0b3J5Lm93bmVySWQoKSlbMF07
CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZp
c2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbanNj
LmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtNjE2MScsIG93bmVyUmV2aXNpb246ICcxOTE2
MjInfX0sCiAgICAgICAgICAgICAgICAge1ttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0
J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3duZXJSZXZpc2lv
bjogJzE5MjczNid9fV07Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJl
cGV0aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3Qn
LCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMSwgbmVlZHNOb3RpZmljYXRpb246IHRy
dWUsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CkBAIC00NDcsNiArNDQ4LDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91cElkKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQub2so
Z3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7
CkBAIC00NzYsNyArNDc4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIHRlc3QgZ3Jv
dXAgZnJvbSBjb21taXRTZXRzIHdpdGggdGhlIHJlcGV0aXRpb24gY291bnQgb2Ygb25lIHdoZW4g
cmVwZXRpdGlvbkNvdW50IGlzIG9taXR0ZWQnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRU
cmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJZCkgPT4gewog
ICAgICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsKLSAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydtYWNPUyc6IFsnMTVBMjg0JywgJzE1QTI4NCdd
LCAnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ119fSkudGhlbigoY29udGVudCkgPT4gewor
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBuZWVkc05vdGlmaWNhdGlvbjog
dHJ1ZSwgY29tbWl0U2V0czogeydtYWNPUyc6IFsnMTVBMjg0JywgJzE1QTI4NCddLCAnV2ViS2l0
JzogWycxOTE2MjInLCAnMTkxNjIzJ119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKQEAgLTQ4NCw2ICs0ODYsNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIApAQCAtNTEyLDcg
KzUxNSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2so
J3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJZCkgPT4gewogICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAg
ICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lv
bjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07Ci0g
ICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJl
dmlzaW9uU2V0c307CisgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7bmFtZTogJ3Rlc3QnLCB0
YXNrOiB0YXNrSWQsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9OwogICAg
ICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBhcmFtcykudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rl
c3RHcm91cElkJ107CkBAIC01MjIsNiArNTI1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25z
dCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2so
Z3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKQEAgLTU0NSw3ICs1NDksNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKS50aGVuKCh0YXNr
SWQpID0+IHsKICAgICAgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7CiAgICAgICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFt
ZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwKLSAgICAgICAgICAg
ICAgICBjb21taXRTZXRzOiB7J1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMyddLCAnbWFjT1Mn
OiBbJzE1QTI4NCcsICcxNUEyODQnXX19KS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgY29tbWl0U2V0czogeydXZWJLaXQnOiBbJzE5MTYyMicsICcxOTE2MjMnXSwgJ21hY09T
JzogWycxNUEyODQnLCAnMTVBMjg0J119LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50
Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7CkBAIC01NTMsNiArNTU3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9
IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91
cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5h
bGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQn
KVswXTsKQEAgLTU4OSw3ICs1OTQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbWFjb3MgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAg
Y29uc3QgcmV2aXNpb25TZXRzID0gW3tbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9
LCBbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcyY2VkYSd9fSwKICAgICAgICAgICAgICAgICB7
W21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW3dlYmtpdC5pZCgpXToge3Jldmlz
aW9uOiAnNTQ3MWEnfX1dOwotICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge25hbWU6ICd0ZXN0
JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0c307CisgICAg
ICAgICAgICBjb25zdCBwYXJhbXMgPSB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0
aXRpb25Db3VudDogMiwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c307CiAg
ICAgICAgICAgICBsZXQgaW5zZXJ0ZWRHcm91cElkOwogICAgICAgICAgICAgcmV0dXJuIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywgcGFyYW1zKS50aGVuKChj
b250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsn
dGVzdEdyb3VwSWQnXTsKQEAgLTU5OSw2ICs2MDQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5v
ayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIApAQCAtNjMwLDcgKzYzNiw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5
SWQoKSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1ttYWNvcy5pZCgpXTog
e3JldmlzaW9uOiAnMTVBMjg0J30sIFt3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9
fSwKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319
XTsKLSAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJ
ZCwgcmVwZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNldHN9OworICAgICAgICAgICAgY29uc3Qg
cGFyYW1zID0ge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIs
IG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9OwogICAgICAgICAgICAgbGV0
IGluc2VydGVkR3JvdXBJZDsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBhcmFtcykudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107
CkBAIC02NDAsNiArNjQ2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRl
c3RHcm91cHNbMF07CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNO
b3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5i
dWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNCk7CiAKQEAgLTY3OSw3ICs2ODYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHVwbG9h
ZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgICAgICBjb25z
dCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBb
bWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9fSwKICAgICAgICAgICAgICAgICAgICAg
e1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZp
c2lvbjogJzE1QTI4NCd9LCAnY3VzdG9tUm9vdHMnOiBbdXBsb2FkZWRGaWxlWydpZCddXX1dOwot
ICAgICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
dGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50
OiAyLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25h
bWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZp
Y2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC02ODgsNiArNjk1LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKQEAgLTcyNyw3ICs3MzUsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmds
ZXRvbihyYXdGaWxlLmlkLCByYXdGaWxlKTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0
cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJywgcGF0Y2g6IHVwbG9hZGVk
RmlsZS5pZCgpfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX0sCiAgICAgICAg
ICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQo
KV06IHtyZXZpc2lvbjogJzE1QTI4NCd9fV07Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNr
OiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgbmVlZHNOb3Rp
ZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJ
ZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKQEAgLTczNiw2ICs3NDQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNv
dW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9u
KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgp
KSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsK
QEAgLTc5MSw3ICs4MDAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAganNjID0gUmVwb3NpdG9yeS5hbGwo
KS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdKYXZhU2NyaXB0
Q29yZScpWzBdOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEy
ODQnfX0sCiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5Mjcz
Nid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbanNjLmlkKCldOiB7cmV2
aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1dOwotICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdy
b3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJl
dmlzaW9uU2V0c30pOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBl
dGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsK
ICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91
cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC04MDAsNiArODA5LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQo
TW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7CkBAIC04NjUsNyArODc1LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGpzYyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0
b3J5Lm5hbWUoKSA9PSAnSmF2YVNjcmlwdENvcmUnKVswXTsKICAgICAgICAgICAgIGNvbnN0IHJl
dmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNv
cy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293
bmVkLWpzYy02MTYxJywgb3duZXJSZXZpc2lvbjogJzE5MTYyMid9fSwKICAgICAgICAgICAgICAg
ICB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkyNzM2J30sIFttYWNvcy5pZCgpXToge3Jl
dmlzaW9uOiAnMTVBMjg0J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkx
Jywgb3duZXJSZXZpc2lvbjogJzE5MjczNid9fV07Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmls
ZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0
YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfSk7CisgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgbmVlZHNO
b3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3Jv
dXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKQEAgLTg3NCw2ICs4ODQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5k
QnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMo
KTsKQEAgLTk0Nyw3ICs5NTgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gVXBs
b2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbihyYXdGaWxlLmlkLCByYXdGaWxlKTsKICAgICAgICAg
ICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkx
NjIyJ30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtqc2MuaWQoKV06IHty
ZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgb3duZXJSZXZpc2lvbjogJzE5MTYyMid9fSwKICAg
ICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkyNzM2JywgcGF0Y2g6
IHVwbG9hZGVkRmlsZS5pZCgpfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwg
W2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlzaW9uOiAn
MTkyNzM2J319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRp
dGlvbkNvdW50OiAyLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRh
c2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwg
cmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAg
ICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtOTU2LDYg
Kzk2Nyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAg
ICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVU
ZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBs
YXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwpAQCAtMTA0MCw3ICsxMDUy
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IFVwbG9hZGVkRmlsZS5lbnN1cmVT
aW5nbGV0b24ocmF3RmlsZS5pZCwgcmF3RmlsZSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lv
blNldHMgPSBbe1tqc2MuaWQoKV06IHtyZXZpc2lvbjogJ2pzYy02MTYxJ30sIFt3ZWJraXQuaWQo
KV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4
NCd9LCBbb3duZWRKU0MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgb3duZXJS
ZXZpc2lvbjogJzE5MTYyMid9fSwKICAgICAgICAgICAgICAgICB7W2pzYy5pZCgpXToge3Jldmlz
aW9uOiAnanNjLTkxOTEnfSwgW3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkyNzM2JywgcGF0
Y2g6IHVwbG9hZGVkRmlsZS5pZCgpfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQn
fSwgW293bmVkSlNDLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2
aXNpb246ICcxOTI3MzYnfX1dOwotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lk
LCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0c30pOworICAgICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0
ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9u
OiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBA
IC0xMDUwLDYgKzEwNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3Qo
KSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFz
c2VydC5vayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVx
dWVzdHMoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwpA
QCAtMTEzNiw3ICsxMTQ5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IFVwbG9h
ZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24ocmF3RmlsZS5pZCwgcmF3RmlsZSk7CiAgICAgICAgICAg
ICBjb25zdCByZXZpc2lvblNldHMgPSBbe1ttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0
J319LAogICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjIn
LCBwYXRjaDogdXBsb2FkZWRGaWxlLmlkKCl9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1
QTI4NCd9fV07Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRp
b25Db3VudDogMiwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNr
OiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJl
dmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAg
ICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTExNDUsNiAr
MTE1OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAg
ICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVU
ZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBs
YXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwpAQCAtMTE5OSw3ICsxMjEz
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IFVwbG9hZGVkRmlsZS5lbnN1cmVT
aW5nbGV0b24ocmF3RmlsZS5pZCwgcmF3RmlsZSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lv
blNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQo
KV06IHtyZXZpc2lvbjogJzE1QTI4NCcsIHBhdGNoOiB1cGxvYWRlZEZpbGUuaWQoKX19LAogICAg
ICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTI3MzYnfSwgW21hY29z
LmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX1dOwotICAgICAgICAgICAgcmV0dXJuIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0Jywg
dGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0c30pOworICAgICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3Vw
Jywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIG5lZWRz
Tm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKQEAgLTEyMTQsNyArMTIyOCw0MiBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+
IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKICAgICAgICAgICAgIGNvbnN0IHJl
dmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dl
YmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCi0gICAgICAgICAg
ICAgICAge25hbWU6ICd0ZXN0JywgdGFza05hbWU6ICdvdGhlciB0YXNrJywgcGxhdGZvcm06IE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcmV2
aXNpb25TZXRzfSk7CisgICAgICAgICAgICAgICAge25hbWU6ICd0ZXN0JywgdGFza05hbWU6ICdv
dGhlciB0YXNrJywgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1v
Y2tEYXRhLnNvbWVUZXN0SWQoKSwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0
c30pOworICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAgIGluc2VydGVk
R3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKKyAgICAgICAgICAgIHJldHVybiBQcm9t
aXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdy
b3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOworICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RH
cm91cHNdID0gcmVzdWx0OworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNr
Lm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKKyAgICAg
ICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisKKyAgICAgICAgICAgIGNvbnN0
IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGNvbnN0IHNldDEg
PSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMycpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0
byBjcmVhdGUgYSB0ZXN0IGdyb3VwIHdpdGggbm8gcGVuZGluZyBub3RpZmljYXRpb24nLCAoKSA9
PiB7CisgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7CisgICAgICAgIGxldCB3ZWJraXQ7Cisg
ICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRo
ZW4oKCkgPT4geworICAgICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIo
KHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKKyAgICAg
ICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAn
MTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKKyAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91
cCcsCisgICAgICAgICAgICAgICAge25hbWU6ICd0ZXN0JywgdGFza05hbWU6ICdvdGhlciB0YXNr
JywgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSwgbmVlZHNOb3RpZmljYXRpb246IGZhbHNlLCByZXZpc2lvblNldHN9KTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQg
PSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwo
W0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRj
aEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKQEAgLTEyMjcsNiArMTI3Niw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICBh
c3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIApAQCAtMTI1MCwxMiArMTMwMCwxMiBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+
IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKICAgICAgICAgICAgIGNvbnN0IHJl
dmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dl
YmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCi0gICAgICAgICAg
ICAgICAge25hbWU6ICd0ZXN0MScsIHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsIHBsYXRmb3JtOiBN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCB0ZXN0LCByZXZpc2lvblNldHN9KTsKKyAgICAgICAg
ICAgICAgICB7bmFtZTogJ3Rlc3QxJywgdGFza05hbWU6ICdvdGhlciB0YXNrJywgcGxhdGZvcm06
IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCB0ZXN0
LCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAg
ICAgICBmaXJzdFJlc3VsdCA9IHJlc3VsdDsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0
cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkyNzM2J319XTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCi0gICAgICAgICAgICAgICAge25h
bWU6ICd0ZXN0MicsIHRhc2s6IHJlc3VsdFsndGFza0lkJ10sIHBsYXRmb3JtOiBNb2NrRGF0YS5v
dGhlclBsYXRmb3JtSWQoKSwgdGVzdCwgcmV2aXNpb25TZXRzLCByZXBldGl0aW9uQ291bnQ6IDJ9
KTsKKyAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3QyJywgdGFzazogcmVzdWx0Wyd0YXNrSWQn
XSwgcGxhdGZvcm06IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpLCBuZWVkc05vdGlmaWNhdGlv
bjogdHJ1ZSwgdGVzdCwgcmV2aXNpb25TZXRzLCByZXBldGl0aW9uQ291bnQ6IDJ9KTsKICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBzZWNvbmRSZXN1bHQgPSByZXN1
bHQ7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RSZXN1bHRbJ3Rhc2tJZCddLCBzZWNv
bmRSZXN1bHRbJ3Rhc2tJZCddKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVw
ZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NTJiNWVlMzlkZWI4OWVmYjFm
N2MwNTczODRmMzgyYTg4NDhiYTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRl
c3RzLmpzCkBAIC0wLDAgKzEsMTY2IEBACisndXNlIHN0cmljdCc7CisKK2NvbnN0IGFzc2VydCA9
IHJlcXVpcmUoJ2Fzc2VydCcpOworCitjb25zdCBNb2NrRGF0YSA9IHJlcXVpcmUoJy4vcmVzb3Vy
Y2VzL21vY2stZGF0YS5qcycpOworY29uc3QgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3Vy
Y2VzL3Rlc3Qtc2VydmVyLmpzJyk7Citjb25zdCBhZGRTbGF2ZUZvclJlcG9ydCA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRkU2xhdmVGb3JSZXBvcnQ7Citj
b25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVy
YXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7Citjb25zdCBhc3NlcnRUaHJvd3MgPSByZXF1
aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFzc2VydFRocm93czsKKwor
YXN5bmMgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9
IFsiMTkxNjIyIiwgIjE5MTYyMyJdKQoreworICAgIGNvbnN0IHJlcG9ydFdpdGhSZXZpc2lvbiA9
IFt7CisgICAgICAgICJidWlsZE51bWJlciI6ICIxMjQiLAorICAgICAgICAiYnVpbGRUaW1lIjog
IjIwMTUtMTAtMjdUMTU6MzQ6NTEiLAorICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAg
ICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiB3ZWJraXRSZXZpc2lv
bnNbMF0sCisgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICcyMDE1LTEwLTI3VDExOjM2OjU2
Ljg3ODQ3M1onLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJtYWNPUyI6IHsKKyAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMTVBMjg0IiwKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSwKKyAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgInNsYXZl
TmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dv
cmQiLAorICAgICAgICAicGxhdGZvcm0iOiAic29tZSBwbGF0Zm9ybSIsCisgICAgICAgICJ0ZXN0
cyI6IHsKKyAgICAgICAgICAgICJzb21lIHRlc3QiOiB7CisgICAgICAgICAgICAgICAgIm1ldHJp
Y3MiOiB7CisgICAgICAgICAgICAgICAgICAgICJUaW1lIjogWyJBcml0aG1ldGljIl0sCisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAg
ICAgICAgICJ0ZXN0MSI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJU
aW1lIjogeyAiY3VycmVudCI6IFsxMV0gfX0sCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICB9fV07CisKKyAgICBjb25zdCBh
bm90aGVyUmVwb3J0V2l0aFJldmlzaW9uID0gW3sKKyAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEy
NSIsCisgICAgICAgICJidWlsZFRpbWUiOiAiMjAxNS0xMC0yN1QxNzoyNzo0MSIsCisgICAgICAg
ICJyZXZpc2lvbnMiOiB7CisgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6IHdlYmtpdFJldmlzaW9uc1sxXSwKKyAgICAgICAgICAgICAgICAidGltZXN0
YW1wIjogJzIwMTUtMTAtMjdUMTY6Mzg6MTAuNzY4OTk1WicsCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgIm1hY09TIjogeworICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNUEyODQi
LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAiYnVpbGRlck5hbWUiOiAic29t
ZUJ1aWxkZXIiLAorICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJz
bGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJzb21l
IHBsYXRmb3JtIiwKKyAgICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgInNvbWUgdGVzdCI6
IHsKKyAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIlRp
bWUiOiBbIkFyaXRobWV0aWMiXSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgInRlc3QxIjogeworICAgICAgICAgICAg
ICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzEyXSB9fSwKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgIH19XTsKKworICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAg
IGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgYXdhaXQgYWRkU2xh
dmVGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKKyAgICBhd2FpdCByZW1vdGUucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsK
KyAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOworICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRC
eVBhdGgoWydzb21lIHRlc3QnLCAndGVzdDEnXSk7CisgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0
Zm9ybS5maW5kQnlOYW1lKCdzb21lIHBsYXRmb3JtJyk7CisgICAgY29uc3QgY29uZmlnUm93ID0g
YXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0
ZXN0Lm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOworICAgIGNv
bnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzog
Y29uZmlnUm93WydpZCddfSk7CisKKyAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAy
KTsKKyAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CisgICAgICAgIG5hbWU6IG5hbWUsCisgICAgICAgIHN0
YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwKKyAgICAgICAgZW5kUnVuOiB0ZXN0UnVuc1sxXVsn
aWQnXSwKKyAgICAgICAgbmVlZHNOb3RpZmljYXRpb246IHRydWUsCisgICAgfSk7CisgICAgcmV0
dXJuIGNvbnRlbnRbJ3Rhc2tJZCddOworfQorCithc3luYyBmdW5jdGlvbiBhZGRUcmlnZ2VyYWJs
ZUFuZENyZWF0ZVRhc2sobmFtZSwgd2Via2l0UmV2aXNpb25zKQoreworICAgIGNvbnN0IHJlcG9y
dCA9IHsKKyAgICAgICAgJ3NsYXZlTmFtZSc6ICdhbm90aGVyU2xhdmUnLAorICAgICAgICAnc2xh
dmVQYXNzd29yZCc6ICdhbm90aGVyUGFzc3dvcmQnLAorICAgICAgICAndHJpZ2dlcmFibGUnOiAn
YnVpbGQtd2Via2l0JywKKyAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWworICAgICAgICAgICAg
e3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0
Zm9ybUlkKCl9LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxh
dGZvcm06IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgXSwKKyAgICAgICAg
J3JlcG9zaXRvcnlHcm91cHMnOiBbCisgICAgICAgICAgICB7bmFtZTogJ29zLW9ubHknLCBhY2Nl
cHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVzOiBbCisgICAgICAgICAgICAgICAge3JlcG9zaXRv
cnk6IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogZmFsc2V9LAor
ICAgICAgICAgICAgXX0sCisgICAgICAgICAgICB7bmFtZTogJ3dlYmtpdC1vbmx5JywgYWNjZXB0
c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWworICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5
OiBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiB0cnVlfSwKKyAg
ICAgICAgICAgIF19LAorICAgICAgICAgICAge25hbWU6ICdzeXN0ZW0tYW5kLXdlYmtpdCcsIGFj
Y2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6IFsKKyAgICAgICAgICAgICAgICB7cmVwb3Np
dG9yeTogTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiBmYWxzZX0s
CisgICAgICAgICAgICAgICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpLCBhY2NlcHRzUGF0Y2g6IHRydWV9CisgICAgICAgICAgICBdfSwKKyAgICAgICAgICAgIHtu
YW1lOiAnc3lzdGVtLXdlYmtpdC1zamMnLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVz
OiBbCisgICAgICAgICAgICAgICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9y
eUlkKCksIGFjY2VwdHNQYXRjaDogZmFsc2V9LAorICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5
OiBNb2NrRGF0YS5qc2NSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiBmYWxzZX0sCisgICAg
ICAgICAgICAgICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpLCBh
Y2NlcHRzUGF0Y2g6IHRydWV9CisgICAgICAgICAgICBdfSwKKyAgICAgICAgXQorICAgIH07Cisg
ICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKKyAg
ICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChyZXBvcnQpOworICAgIGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHJlcG9ydCk7
CisgICAgYXdhaXQgY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyk7Cit9
CisKK2Rlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
bigpeworICAgIHByZXBhcmVTZXJ2ZXJUZXN0KHRoaXMsICdub2RlJyk7CisgICAgYmVmb3JlRWFj
aCgoKSA9PiB7CisgICAgICAgIFByaXZpbGVnZWRBUEkuY29uZmlndXJlKCd0ZXN0JywgJ3Bhc3N3
b3JkJyk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHRocm93ICJTbGF2ZU5vdEZvdW5kIiBp
ZiBpbnZhbGlkIHNsYXZlIG5hbWUgYW5kIHBhc3N3b3JkIGNvbWJpbmF0aW9uIGlzIHByb3ZpZGVk
JywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRh
c2soJ3NvbWUgdGFzaycpOworCisgICAgICAgIFByaXZpbGVnZWRBUEkuY29uZmlndXJlKCd0ZXN0
JywgJ3dyb25ncGFzc3dvcmQnKTsKKyAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5h
bGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQn
KVswXTsKKyAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2
aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMnfX1d
OworCisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnU2xhdmVOb3RGb3VuZCcsICgpID0+Cisg
ICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcs
IHtuYW1lOiAndGVzdCcsIHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsCisgICAgICAgICAgICAgICAg
cGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNvbWVU
ZXN0SWQoKSwgcmV2aXNpb25TZXRzfSkpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBiZSBh
YmxlIHRvIHVwZGF0ZSBoYXMgcGVuZGluZyBub3RpZmljYXRpb24gZmxhZycsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgYXdhaXQgYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2sn
KTsKKyAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9z
aXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKKyAgICAgICAgY29u
c3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0s
IHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMnfX1dOworICAgICAgICBsZXQgcmVz
dWx0ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LAorICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdCcsIHRhc2tOYW1lOiAnb3RoZXIgdGFzaycs
IHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCB0ZXN0OiBNb2NrRGF0YS5zb21l
VGVzdElkKCksIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKKyAgICAg
ICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOworICAgICAg
ICByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1
bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0
cnVlKV0pOworCisgICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gcmVz
dWx0OworCisgICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIg
dGFzaycpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5uZWVk
c05vdGlmaWNhdGlvbigpLCB0cnVlKTsKKyAgICAgICAgYXdhaXQgZ3JvdXAuZGlkU2VuZE5vdGlm
aWNhdGlvbigpOworICAgICAgICBjb25zdCB1cGRhdGVkR3JvdXAgPSBUZXN0R3JvdXAuZmluZEJ5
SWQoZ3JvdXAuaWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXAubmVlZHNO
b3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgIH0pOworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCmluZGV4IDk0YTM5M2YxZTk2OTU2ZTU5ZDg1
MjBkYjkwNDdiNjFlODM0YmM3YTUuLjY0NTIwYTVlZjU1NWRhMzFmNzlhNjUxYmYwMGI1MzhkMjM3
YzNiYzQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cmVzb3VyY2VzL21vY2stZGF0YS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKQEAgLTc5LDcgKzc5LDcgQEAgTW9ja0Rh
dGEgPSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rhc2tzJywge2lkOiA1MDAs
IHBsYXRmb3JtOiA2NSwgbWV0cmljOiAzMDAsIG5hbWU6ICdzb21lIHRhc2snLAogICAgICAgICAg
ICAgICAgIHN0YXJ0X3J1bjogODAxLCBzdGFydF9ydW5fdGltZTogJzIwMTUtMTAtMjdUMTI6MDU6
MjcuMVonLAogICAgICAgICAgICAgICAgIGVuZF9ydW46IDgwMSwgZW5kX3J1bl90aW1lOiAnMjAx
NS0xMC0yN1QxMjowNToyNy4xWid9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNf
dGVzdF9ncm91cHMnLCB7aWQ6IDYwMCwgdGFzazogNTAwLCBuYW1lOiAnc29tZSB0ZXN0IGdyb3Vw
J30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190ZXN0X2dyb3VwcycsIHtpZDog
NjAwLCB0YXNrOiA1MDAsIG5hbWU6ICdzb21lIHRlc3QgZ3JvdXAnLCBuZWVkc19ub3RpZmljYXRp
b246IHRydWV9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6
IDcwMCwgc3RhdHVzOiBzdGF0dXNMaXN0WzBdLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9y
eV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVy
OiAwLCBjb21taXRfc2V0OiA0MDF9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVx
dWVzdHMnLCB7aWQ6IDcwMSwgc3RhdHVzOiBzdGF0dXNMaXN0WzFdLCB0cmlnZ2VyYWJsZTogMTAw
MCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3Vw
OiA2MDAsIG9yZGVyOiAxLCBjb21taXRfc2V0OiA0MDJ9KSwKICAgICAgICAgICAgIGRiLmluc2Vy
dCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwMiwgc3RhdHVzOiBzdGF0dXNMaXN0WzJdLCB0cmln
Z2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0
OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAyLCBjb21taXRfc2V0OiA0MDF9KSwKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWls
ZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwppbmRleCBl
NjEyNTgyNjZjZDhlMGM1NGQ0YzAzNmU1NGQ5YjdkMTBmODZlMTVlLi43ZTA0ZTVlZTU1ZTc3OTM0
YzIyZmQ0MzNlYTNjOTE4MDczMTdkNThkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5j
LWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCkBAIC0xNzMsNyArMTczLDcgQEAgZnVuY3Rp
b24gY3JlYXRlVGVzdEdyb3VwKHRhc2tfbmFtZT0nY3VzdG9tIHRhc2snKSB7CiAgICAgc2V0MS5z
ZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0LCAnMTkxNjIyJyk7CiAgICAgY29uc3Qgc2V0
MiA9IG5ldyBDdXN0b21Db21taXRTZXQ7CiAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0LCAnMTkyNzM2Jyk7Ci0gICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVXaXRoVGFz
aygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdKS50aGVuKCh0YXNr
KSA9PiB7CisgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygnY3VzdG9tIHRhc2sn
LCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSwgc29tZVRlc3Qs
ICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdLCB0cnVlKS50aGVuKCh0YXNrKSA9PiB7CiAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmluZEFsbEJ5VGFzayh0YXNrLmlkKCkpWzBdOwogICAg
IH0pOwogfQpAQCAtMTkzLDcgKzE5Myw3IEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91
cFdpaFBhdGNoKCkKICAgICBzZXQxLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQsICcx
OTE2MjInLCB1cGxvYWRlZFBhdGNoRmlsZSk7CiAgICAgY29uc3Qgc2V0MiA9IG5ldyBDdXN0b21D
b21taXRTZXQ7CiAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0LCAnMTkx
NjIyJyk7Ci0gICAgY29uc3QgdGFzayA9IGF3YWl0IFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygn
Y3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgp
KSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdKTsKKyAgICBjb25zdCB0
YXNrID0gYXdhaXQgVGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNrKCdjdXN0b20gdGFzaycsIFBsYXRm
b3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpLCBzb21lVGVzdCwgJ3NvbWUg
Z3JvdXAnLCAyLCBbc2V0MSwgc2V0Ml0sIHRydWUpOwogCiAgICAgcmV0dXJuIFRlc3RHcm91cC5m
aW5kQWxsQnlUYXNrKHRhc2suaWQoKSlbMF07CiB9CkBAIC0yMDksNyArMjA5LDcgQEAgZnVuY3Rp
b24gY3JlYXRlVGVzdEdyb3VwV2loT3duZWRDb21taXQoKQogICAgIGNvbnN0IHNldDIgPSBuZXcg
Q3VzdG9tQ29tbWl0U2V0OwogICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCwgJzE5MjczNicpOwogICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkU0pD
LCAnb3duZWQtanNjLTkxOTEnLCBudWxsLCAnMTkyNzM2Jyk7Ci0gICAgcmV0dXJuIFRlc3RHcm91
cC5jcmVhdGVXaXRoVGFzaygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0
YS5zb21lUGxhdGZvcm1JZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNl
dDJdKS50aGVuKCh0YXNrKSA9PiB7CisgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVXaXRoVGFz
aygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdLCB0cnVlKS50aGVu
KCh0YXNrKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmluZEFsbEJ5VGFzayh0YXNr
LmlkKCkpWzBdOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL21lYXN1cmVtZW50LXNldC1hbmFseXplci5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXIuanMKaW5kZXggMmRi
MDQ3YTRiZDE0OGExMzg4NGRkNGRmZmE2YTRkNzgwNzRkZTQ2OS4uYzkzYjkwYmVjZjhiOWQ2NzBm
NDUzZjliYzNlNDczOWZmOWNjYzg1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL21lYXN1cmVtZW50LXNldC1hbmFseXplci5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLmpzCkBAIC0x
MDQsNyArMTA0LDcgQEAgY2xhc3MgTWVhc3VyZW1lbnRTZXRBbmFseXplciB7CiAKICAgICAgICAg
Ly8gRklYTUU6IFRoZSBpdGVyYXRpb24gY291bnQgc2hvdWxkIGJlIHNtYXJ0ZXIgdGhhbiBoYXJk
LWNvZGluZy4KICAgICAgICAgY29uc3QgYW5hbHlzaXNUYXNrID0gYXdhaXQgQW5hbHlzaXNUYXNr
LmNyZWF0ZShzdW1tYXJ5LCByYW5nZVdpdGhNb3N0U2lnbmlmaWNhbnRDaGFuZ2Uuc3RhcnRQb2lu
dCwKLSAgICAgICAgICAgIHJhbmdlV2l0aE1vc3RTaWduaWZpY2FudENoYW5nZS5lbmRQb2ludCwg
J0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIHJhbmdlV2l0aE1vc3RTaWduaWZpY2FudENoYW5n
ZS5lbmRQb2ludCwgJ0NvbmZpcm0nLCA0LCB0cnVlKTsKIAogICAgICAgICB0aGlzLl9sb2dnZXIu
aW5mbyhgQ3JlYXRlZCBhbmFseXNpcyB0YXNrIHdpdGggaWQgIiR7YW5hbHlzaXNUYXNrLmlkKCl9
IiB0byBjb25maXJtOiAiJHtzdW1tYXJ5fSIuYCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMKaW5kZXggZTFiMjQ5YzRmMTc0NTQ5YWQw
Njg5YmU2MGU5Zjc5Yjc5ZjdlYmU4NC4uZjIwOGU4NDhmMDU2MzM1MGMzYWNiNTUxZmY4OTgyYTNj
OGZmNDI4MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3Yz
LW1vZGVscy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9k
ZWxzLmpzCkBAIC0xMSw2ICsxMSw3IEBAIGltcG9ydEZyb21WMygnbW9kZWxzL2RhdGEtbW9kZWwu
anMnLCAnRGF0YU1vZGVsT2JqZWN0Jyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9kYXRhLW1vZGVs
LmpzJywgJ0xhYmVsZWRPYmplY3QnKTsKIAogaW1wb3J0RnJvbVYzKCdtb2RlbHMvYW5hbHlzaXMt
dGFzay5qcycsICdBbmFseXNpc1Rhc2snKTsKK2ltcG9ydEZyb21WMygnbW9kZWxzL2FuYWx5c2lz
LXJlc3VsdHMuanMnLCAnQW5hbHlzaXNSZXN1bHRzJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9i
dWcuanMnLCAnQnVnJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9idWctdHJhY2tlci5qcycsICdC
dWdUcmFja2VyJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9idWlsZC1yZXF1ZXN0LmpzJywgJ0J1
aWxkUmVxdWVzdCcpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xz
L3J1bi1hbmFseXNpcy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9ydW4tYW5h
bHlzaXMuanMKaW5kZXggMDgxYTBkMTA0Y2JkNDIxNTAxMmI4YjZhM2RlZGJhODk5Yjg5M2Q5ZS4u
ZmRkODA3MjE5MGNlYzdhYjY4YzMyMGI0ZGVhNGNkMmE4YmZlOTFhMCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3J1bi1hbmFseXNpcy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvcnVuLWFuYWx5c2lzLmpzCkBAIC0zLDcgKzMsMTAgQEAK
IGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTsKIGNvbnN0IHBhcnNlQXJndW1lbnRzID0gcmVxdWly
ZSgnLi9qcy9wYXJzZS1hcmd1bWVudHMuanMnKS5wYXJzZUFyZ3VtZW50czsKIGNvbnN0IFJlbW90
ZUFQSSA9IHJlcXVpcmUoJy4vanMvcmVtb3RlLmpzJykuUmVtb3RlQVBJOwotY29uc3QgTWVhc3Vy
ZW1lbnRTZXRBbmFseXplciA9IHJlcXVpcmUoJy4vanMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVy
JykuTWVhc3VyZW1lbnRTZXRBbmFseXplcjsKK2NvbnN0IE1lYXN1cmVtZW50U2V0QW5hbHl6ZXIg
PSByZXF1aXJlKCcuL2pzL21lYXN1cmVtZW50LXNldC1hbmFseXplci5qcycpLk1lYXN1cmVtZW50
U2V0QW5hbHl6ZXI7Citjb25zdCBBbmFseXNpc1Jlc3VsdHNOb3RpZmllciA9IHJlcXVpcmUoJy4v
anMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci5qcycpLkFuYWx5c2lzUmVzdWx0c05vdGlmaWVy
OworY29uc3QgTm90aWZpY2F0aW9uU2VydmljZSA9IHJlcXVpcmUoJy4vanMvYW5hbHlzaXMtcmVz
dWx0cy1ub3RpZmllci5qcycpLk5vdGlmaWNhdGlvblNlcnZpY2U7Citjb25zdCBTdWJwcm9jZXNz
ID0gcmVxdWlyZSgnLi9qcy9zdWJwcm9jZXNzLmpzJykuU3VicHJvY2VzczsKIHJlcXVpcmUoJy4v
anMvdjMtbW9kZWxzLmpzJyk7CiBnbG9iYWwuUHJpdmlsZWdlZEFQSSA9IHJlcXVpcmUoJy4vanMv
cHJpdmlsZWdlZC1hcGkuanMnKS5Qcml2aWxlZ2VkQVBJOwogCkBAIC0xMSw2ICsxNCw3IEBAIGZ1
bmN0aW9uIG1haW4oYXJndikKIHsKICAgICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmd1bWVudHMo
YXJndiwgWwogICAgICAgICB7bmFtZTogJy0tc2VydmVyLWNvbmZpZy1qc29uJywgcmVxdWlyZWQ6
IHRydWV9LAorICAgICAgICB7bmFtZTogJy0tbm90aWZpY2F0aW9uLWNvbmZpZy1qc29uJywgcmVx
dWlyZWQ6IHRydWV9LAogICAgICAgICB7bmFtZTogJy0tYW5hbHlzaXMtcmFuZ2UtaW4tZGF5cycs
IHR5cGU6IHBhcnNlRmxvYXQsIGRlZmF1bHQ6IDEwfSwKICAgICAgICAge25hbWU6ICctLXNlY29u
ZHMtdG8tc2xlZXAnLCB0eXBlOiBwYXJzZUZsb2F0LCBkZWZhdWx0OiAxMjAwfSwKICAgICBdKTsK
QEAgLTI2LDYgKzMwLDcgQEAgYXN5bmMgZnVuY3Rpb24gYW5hbHlzaXNMb29wKG9wdGlvbnMpCiAg
ICAgbGV0IHNlY29uZHNUb1NsZWVwOwogICAgIHRyeSB7CiAgICAgICAgIGNvbnN0IHNlcnZlckNv
bmZpZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKG9wdGlvbnNbJy0tc2VydmVyLWNvbmZp
Zy1qc29uJ10sICd1dGYtOCcpKTsKKyAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uQ29uZmlnID0g
SlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMob3B0aW9uc1snLS1ub3RpZmljYXRpb24tY29uZmln
LWpzb24nXSwgJ3V0Zi04JykpOwogICAgICAgICBjb25zdCBhbmFseXNpc1JhbmdlSW5EYXlzID0g
b3B0aW9uc1snLS1hbmFseXNpcy1yYW5nZS1pbi1kYXlzJ107CiAgICAgICAgIHNlY29uZHNUb1Ns
ZWVwID0gb3B0aW9uc1snLS1zZWNvbmRzLXRvLXNsZWVwJ107CiAgICAgICAgIGdsb2JhbC5SZW1v
dGVBUEkgPSBuZXcgUmVtb3RlQVBJKHNlcnZlckNvbmZpZy5zZXJ2ZXIpOwpAQCAtNDAsNiArNDUs
MTQgQEAgYXN5bmMgZnVuY3Rpb24gYW5hbHlzaXNMb29wKG9wdGlvbnMpCiAKICAgICAgICAgY29u
c29sZS5sb2coYFN0YXJ0IGFuYWx5emluZyBsYXN0ICR7YW5hbHlzaXNSYW5nZUluRGF5c30gZGF5
cyBtZWFzdXJlbWVudCBzZXRzLmApOwogICAgICAgICBhd2FpdCBhbmFseXplci5hbmFseXplT25j
ZSgpOworCisgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hB
bGxXaXRoUGVuZGluZ05vdGlmaWNhdGlvbigpOworCisgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlv
blJlbW92ZUFQSSA9IG5ldyBSZW1vdGVBUEkobm90aWZpY2F0aW9uQ29uZmlnLm5vdGlmaWNhdGlv
blNlcnZlckNvbmZpZyk7CisgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblNlcnZpY2UgPSBuZXcg
Tm90aWZpY2F0aW9uU2VydmljZShub3RpZmljYXRpb25SZW1vdmVBUEksIG5vdGlmaWNhdGlvbkNv
bmZpZy5ub3RpZmljYXRpb25TZXJ2ZXJDb25maWcucGF0aCk7CisgICAgICAgIGNvbnN0IG5vdGlm
aWVyID0gbmV3IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyKG5vdGlmaWNhdGlvbkNvbmZpZy5ub3Rp
ZmljYXRpb25NZXNzYWdlQ29uZmlnLCBub3RpZmljYXRpb25TZXJ2aWNlLCBuZXcgU3VicHJvY2Vz
cyk7CisKKyAgICAgICAgYXdhaXQgbm90aWZpZXIuc2VuZE5vdGlmaWNhdGlvbnNGb3JUZXN0R3Jv
dXBzKHRlc3RHcm91cHMpOwogICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAgICAgY29uc29sZS5l
cnJvcihgRmFpbGVkIGFuYWx5emUgbWVhc3VyZW1lbnQgc2V0cyBkdWUgdG8gJHtlcnJvcn1gKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9h
bmFseXNpcy10YXNrLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVz
dHMvYW5hbHlzaXMtdGFzay10ZXN0cy5qcwppbmRleCAwMDhkZjNmOGE1YjA2NzZkYjBkMTkyNGEz
YTU1YjQ1M2UwOTM0Nzg4Li5kODQ1YzkxMGJhNzVlY2UzNDlhZjRlMzRkMTJjNDQzZjRhMjQ3MTAz
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNp
cy10YXNrLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L2FuYWx5c2lzLXRhc2stdGVzdHMuanMKQEAgLTMwNCw3ICszMDQsNyBAQCBkZXNjcmliZSgnQW5h
bHlzaXNUYXNrJywgKCkgPT4gewogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuYWx5c2lz
IHRhc2sgd2l0aCBjb25maXJtaW5nIHJlcGV0aXRpb24gY291bnQgc3BlY2lmaWVkJywgYXN5bmMg
KCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3N0YXJ0UG9pbnQsIGVuZFBvaW50XSA9IG1vY2tT
dGFydEFuZEVuZFBvaW50cygpOwotICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZSgnY29u
ZmlybScsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29uZmlybScsIDQpOworICAgICAgICAgICAg
QW5hbHlzaXNUYXNrLmNyZWF0ZSgnY29uZmlybScsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29u
ZmlybScsIDQsIHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZp
bGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYtdG9rZW4nKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBd
LnJlc29sdmUoewpAQCAtMzE1LDcgKzMxNSwyOSBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywg
KCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzaycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzFdLmRhdGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdjb25maXJtJywg
cmVwZXRpdGlvbkNvdW50OiA0LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKKyAgICAgICAgICAg
ICAgICBzdGFydFJ1bjogMSwgZW5kUnVuOiAyLCB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHRv
a2VuOiAnYWJjJywgcmV2aXNpb25TZXRzOiBbCisgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7
cmV2aXNpb246ICd3ZWJraXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNo
OiBudWxsfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICcyMic6IHtyZXZpc2lvbjogJ2lvcy1y
ZXZpc2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKKyAgICAgICAg
ICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dlYmtpdC1yZXZpc2lvbi0yJywgb3duZXJS
ZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LAorICAgICAgICAgICAgICAgICAgICAgICAgJzIy
JzogeyByZXZpc2lvbjogJ2lvcy1yZXZpc2lvbi0yJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0
Y2g6IG51bGx9fV19CisgICAgICAgICAgICApOworICAgICAgICB9KTsKKworICAgICAgICBpdCgn
c2hvdWxkIGNyZWF0ZSBhbmFseXNpcyB0YXNrIGFuZCB0ZXN0IGdyb3VwcyB3aXRoICJuZWVkc05v
dGlmaWNhdGlvbiIgc2V0IHRvIGZhbHNlIGlmIHNwZWNpZmllZCBpbiBjcmVhdGlvbicsIGFzeW5j
ICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFtzdGFydFBvaW50LCBlbmRQb2ludF0gPSBtb2Nr
U3RhcnRBbmRFbmRQb2ludHMoKTsKKyAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUoJ2Nv
bmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0LCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvZ2VuZXJhdGUtY3Ny
Zi10b2tlbicpOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAg
ICAgICAgdG9rZW46ICdhYmMnLAorICAgICAgICAgICAgICAgIGV4cGlyYXRpb246IERhdGUubm93
KCkgKyAzNjAwICogMTAwMCwKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrJyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdjb25maXJtJywg
cmVwZXRpdGlvbkNvdW50OiA0LCBuZWVkc05vdGlmaWNhdGlvbjogZmFsc2UsCiAgICAgICAgICAg
ICAgICAgc3RhcnRSdW46IDEsIGVuZFJ1bjogMiwgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLCB0
b2tlbjogJ2FiYycsIHJldmlzaW9uU2V0czogWwogICAgICAgICAgICAgICAgICAgICB7JzExJzog
e3JldmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTEnLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRj
aDogbnVsbH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAnMjInOiB7cmV2aXNpb246ICdpb3Mt
cmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX0sCkBAIC0zMjYs
NyArMzQ4LDcgQEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFzaycsICgpID0+IHsKIAogICAgICAgICBp
dCgnc2hvdWxkIHN5bmMgdGhlIG5ldyBhbmFseXNpcyB0YXNrIHN0YXR1cyBvbmNlIGl0IGlzIGNy
ZWF0ZWQnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbc3RhcnRQb2ludCwgZW5k
UG9pbnRdID0gbW9ja1N0YXJ0QW5kRW5kUG9pbnRzKCk7Ci0gICAgICAgICAgICBjb25zdCBjcmVh
dGluZ1Byb21pc2UgPSBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwg
ZW5kUG9pbnQsICdDb25maXJtJywgNCk7CisgICAgICAgICAgICBjb25zdCBjcmVhdGluZ1Byb21p
c2UgPSBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwgZW5kUG9pbnQs
ICdDb25maXJtJywgNCwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcv
cHJpdmlsZWdlZC1hcGkvZ2VuZXJhdGUtY3NyZi10b2tlbicpOwogICAgICAgICAgICAgcmVxdWVz
dHNbMF0ucmVzb2x2ZSh7CkBAIC0zMzcsNyArMzU5LDcgQEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFz
aycsICgpID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2snKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDQsCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFdLmRhdGEsIHtuYW1lOiAnY29uZmly
bScsIHJlcGV0aXRpb25Db3VudDogNCwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsCiAgICAgICAg
ICAgICAgICAgc3RhcnRSdW46IDEsIGVuZFJ1bjogMiwgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0n
LCB0b2tlbjogJ2FiYycsIHJldmlzaW9uU2V0czogWwogICAgICAgICAgICAgICAgICAgICB7JzEx
Jzoge3JldmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTEnLCBvd25lclJldmlzaW9uOiBudWxsLCBw
YXRjaDogbnVsbH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAnMjInOiB7cmV2aXNpb246ICdp
b3MtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX0sCkBAIC0z
ODcsNyArNDA5LDcgQEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFzaycsICgpID0+IHsKIAogICAgICAg
ICBpdCgnc2hvdWxkIHJldHVybiBhbiByZWplY3RlZCBwcm9taXNlIHdoZW4gYW5hbHlzaXMgdGFz
ayBjcmVhdGlvbiBmYWlsZWQnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbc3Rh
cnRQb2ludCwgZW5kUG9pbnRdID0gbW9ja1N0YXJ0QW5kRW5kUG9pbnRzKCk7Ci0gICAgICAgICAg
ICBjb25zdCBjcmVhdGluZ1Byb21pc2UgPSBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywg
c3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywgNCk7CisgICAgICAgICAgICBjb25zdCBj
cmVhdGluZ1Byb21pc2UgPSBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2lu
dCwgZW5kUG9pbnQsICdDb25maXJtJywgNCwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1swXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvZ2VuZXJhdGUtY3NyZi10b2tlbicpOwogICAgICAg
ICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7CkBAIC0zOTgsNyArNDIwLDcgQEAgZGVzY3JpYmUo
J0FuYWx5c2lzVGFzaycsICgpID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51
cmwsICcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2snKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291
bnQ6IDQsCisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFdLmRhdGEsIHtu
YW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwgbmVlZHNOb3RpZmljYXRpb246IHRy
dWUsCiAgICAgICAgICAgICAgICAgc3RhcnRSdW46IDEsIGVuZFJ1bjogMiwgdGVzdEdyb3VwTmFt
ZTogJ0NvbmZpcm0nLCB0b2tlbjogJ2FiYycsIHJldmlzaW9uU2V0czogWwogICAgICAgICAgICAg
ICAgICAgICB7JzExJzoge3JldmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTEnLCBvd25lclJldmlz
aW9uOiBudWxsLCBwYXRjaDogbnVsbH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAnMjInOiB7
cmV2aXNpb246ICdpb3MtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBu
dWxsfX0sCkBAIC00MzIsMTAgKzQ1NCwxMCBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkg
PT4gewogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuYWx5c2lzIHRhc2sgd2l0aCBjb25m
aXJtaW5nIHJlcGV0aXRpb24gY291bnQgc3BlY2lmaWVkJywgKCkgPT4gewogICAgICAgICAgICAg
Y29uc3QgW3N0YXJ0UG9pbnQsIGVuZFBvaW50XSA9IG1vY2tTdGFydEFuZEVuZFBvaW50cygpOwot
ICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZSgnY29uZmlybScsIHN0YXJ0UG9pbnQsIGVu
ZFBvaW50LCAnQ29uZmlybScsIDQpOworICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZSgn
Y29uZmlybScsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29uZmlybScsIDQsIHRydWUpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtYW5hbHlzaXMtdGFzaycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRh
dGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0YSwge25hbWU6ICdjb25maXJtJywgcmVwZXRp
dGlvbkNvdW50OiA0LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICBz
dGFydFJ1bjogMSwgZW5kUnVuOiAyLCBzbGF2ZU5hbWU6ICd3b3JrZXInLCBzbGF2ZVBhc3N3b3Jk
OiAncGFzc3dvcmQnLAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywg
cmV2aXNpb25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2aXNpb246ICd3
ZWJraXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfSwKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50
LXNldC1hbmFseXplci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL21lYXN1cmVtZW50LXNldC1hbmFseXplci10ZXN0cy5qcwppbmRleCA2YTg5ZjM1MzI0NDBk
MzI2OTM3OGEyN2I4MGEwYzNjYzRjNWRmMTNjLi5hYTUwMDgxZDBjOWZjNWY2ZWRiYWEwNjc1NTA0
YTM4NTgxNTcyNzU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10
ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLXRlc3RzLmpz
CkBAIC0xODksNiArMTg5LDcgQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0QW5hbHl6ZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgZW5kUnVuOiA2NDQzLAogICAgICAgICAgICAgICAgIHJl
cGV0aXRpb25Db3VudDogNCwKICAgICAgICAgICAgICAgICB0ZXN0R3JvdXBOYW1lOiAnQ29uZmly
bScsCisgICAgICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246IHRydWUsCiAgICAgICAgICAg
ICAgICAgcmV2aXNpb25TZXRzOiBbeycxMSc6IHtyZXZpc2lvbjogMzUsIG93bmVyUmV2aXNpb246
IG51bGwsIHBhdGNoOiBudWxsfX0sCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2aXNp
b246IDQ0LCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19XQogICAgICAgICAgICAg
fSk7CkBAIC0yNDIsNiArMjQzLDcgQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0QW5hbHl6ZXIn
LCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgZW5kUnVuOiA2NDQzLAogICAgICAgICAgICAgICAg
IHJlcGV0aXRpb25Db3VudDogNCwKICAgICAgICAgICAgICAgICB0ZXN0R3JvdXBOYW1lOiAnQ29u
ZmlybScsCisgICAgICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246IHRydWUsCiAgICAgICAg
ICAgICAgICAgcmV2aXNpb25TZXRzOiBbeycxMSc6IHtyZXZpc2lvbjogMzUsIG93bmVyUmV2aXNp
b246IG51bGwsIHBhdGNoOiBudWxsfX0sCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2
aXNpb246IDQ0LCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19XQogICAgICAgICAg
ICAgfSk7CkBAIC0zODYsNiArMzg4LDcgQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0QW5hbHl6
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgZW5kUnVuOiA2NDQ4LAogICAgICAgICAgICAg
ICAgIHJlcGV0aXRpb25Db3VudDogNCwKICAgICAgICAgICAgICAgICB0ZXN0R3JvdXBOYW1lOiAn
Q29uZmlybScsCisgICAgICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246IHRydWUsCiAgICAg
ICAgICAgICAgICAgcmV2aXNpb25TZXRzOiBbeycxMSc6IHtyZXZpc2lvbjogNDAsIG93bmVyUmV2
aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX0sCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7
cmV2aXNpb246IDQ5LCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19XQogICAgICAg
ICAgICAgfSk7CkBAIC00NzIsNiArNDc1LDcgQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0QW5h
bHl6ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgZW5kUnVuOiA2NDA3LAogICAgICAgICAg
ICAgICAgIHJlcGV0aXRpb25Db3VudDogNCwKICAgICAgICAgICAgICAgICB0ZXN0R3JvdXBOYW1l
OiAnQ29uZmlybScsCisgICAgICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246IHRydWUsCiAg
ICAgICAgICAgICAgICAgcmV2aXNpb25TZXRzOiBbeycxMSc6IHtyZXZpc2lvbjogMywgb3duZXJS
ZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKICAgICAgICAgICAgICAgICAgICAgeycxMSc6
IHtyZXZpc2lvbjogOCwgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fV0KICAgICAg
ICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVz
dHMvcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMKaW5kZXggYmU0M2ZlZWJi
YmE3MzVjZjg1NDdjMWIyNjg1ZTM2ZmMxZDk1NzY2MC4uMmY0NTFlNGFiY2EwMGFjY2ExZDdhZTIx
M2I3MmEzN2M3NDNmMWVlMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzCkBAIC02
OSwxNCArNjksMTQgQEAgdmFyIE1vY2tSZW1vdGVBUEkgPSB7CiAgICAgICAgICAgICBnbG9iYWwu
UmVtb3RlQVBJID0gTW9ja1JlbW90ZUFQSTsKICAgICAgICAgICAgIG9yaWdpbmFsUHJpdmlsZWdl
ZEFQSSA9IGdsb2JhbC5Qcml2aWxlZ2VkQVBJOwogICAgICAgICAgICAgZ2xvYmFsLlByaXZpbGVn
ZWRBUEkgPSBwcml2aWxlZ2VkQVBJOwotICAgICAgICAgICAgaWYgKHByaXZpbGVnZWRBUEkuX3Rv
a2VuKQorICAgICAgICAgICAgaWYgKHByaXZpbGVnZWRBUEkgJiYgcHJpdmlsZWdlZEFQSS5fdG9r
ZW4pCiAgICAgICAgICAgICAgICAgcHJpdmlsZWdlZEFQSS5fdG9rZW4gPSBudWxsOwogICAgICAg
ICB9KTsKIAogICAgICAgICBhZnRlckVhY2goKCkgPT4gewogICAgICAgICAgICAgZ2xvYmFsLlJl
bW90ZUFQSSA9IG9yaWdpbmFsUmVtb3RlQVBJOwogICAgICAgICAgICAgZ2xvYmFsLlByaXZpbGVn
ZWRBUEkgPSBvcmlnaW5hbFByaXZpbGVnZWRBUEk7Ci0gICAgICAgICAgICBpZiAocHJpdmlsZWdl
ZEFQSS5fdG9rZW4pCisgICAgICAgICAgICBpZiAocHJpdmlsZWdlZEFQSSAmJiBwcml2aWxlZ2Vk
QVBJLl90b2tlbikKICAgICAgICAgICAgICAgICBwcml2aWxlZ2VkQVBJLl90b2tlbiA9IG51bGw7
CiAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzCmluZGV4IGRlNTk2NTI1MTJjMzhiODk5MjNi
OTVmZWJmZTJjNWYwN2VhZDBjZWIuLjQ3ZDY5YWFkNDEzMTJjMDdlNTMxZmViZjBhYTI5MzkzMjcy
M2UwNGUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Rl
c3QtZ3JvdXBzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzCkBAIC0zLDYgKzMsNyBAQAogY29uc3QgYXNzZXJ0ID0g
cmVxdWlyZSgnYXNzZXJ0Jyk7CiByZXF1aXJlKCcuLi90b29scy9qcy92My1tb2RlbHMuanMnKTsK
IGNvbnN0IEJyb3dzZXJQcml2aWxlZ2VkQVBJID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL3ByaXZp
bGVnZWQtYXBpLmpzJykuUHJpdmlsZWdlZEFQSTsKK2NvbnN0IE5vZGVQcml2aWxlZ2VkQVBJID0g
cmVxdWlyZSgnLi4vdG9vbHMvanMvcHJpdmlsZWdlZC1hcGkuanMnKS5Qcml2aWxlZ2VkQVBJOwog
Y29uc3QgTW9ja01vZGVscyA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpz
JykuTW9ja01vZGVsczsKIGNvbnN0IE1vY2tSZW1vdGVBUEkgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy9tb2NrLXJlbW90ZS1hcGkuanMnKS5Nb2NrUmVtb3RlQVBJOwogCkBAIC0xNiw2ICsxNyw3IEBA
IGZ1bmN0aW9uIHNhbXBsZVRlc3RHcm91cCgpIHsKICAgICAgICAgICAgICJhdXRob3IiOiAicm5p
d2EiLAogICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAsCiAgICAgICAgICAg
ICAiaGlkZGVuIjogZmFsc2UsCisgICAgICAgICAgICAibmVlZHNOb3RpZmljYXRpb24iOiB0cnVl
LAogICAgICAgICAgICAgImJ1aWxkUmVxdWVzdHMiOiBbIjE2OTg1IiwgIjE2OTg2IiwgIjE2OTg3
IiwgIjE2OTg4IiwgIjE2OTg5IiwgIjE2OTkwIiwgIjE2OTkxIiwgIjE2OTkyIl0sCiAgICAgICAg
ICAgICAiY29tbWl0U2V0cyI6IFsiNDI1NSIsICI0MjU2Il0sCiAgICAgICAgIH1dLApAQCAtMTM3
LDYgKzEzOSw0MSBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KTsKICAgICB9KTsKIAorICAgIGRlc2NyaWJlKCduZWVkc05vdGlmaWNhdGlvbicsICgpID0+
IHsKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBNb2NrUmVtb3RlQVBJLmluamVjdCgnaHR0cHM6
Ly9wZXJmLndlYmtpdC5vcmcnLCBOb2RlUHJpdmlsZWdlZEFQSSk7CisgICAgICAgIGJlZm9yZUVh
Y2goKCkgPT4geworICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5jb25maWd1cmUoJ3Rlc3QnLCAn
cGFzc3dvcmQnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB1cGRhdGUgbm90
aWZpZWQgYXV0aG9yIGZsYWcnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBmZXRj
aFByb21pc2UgPSBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKDEzNzYpOworICAgICAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVUZXN0R3JvdXAoKSk7CisgICAgICAgICAgICBsZXQgdGVz
dEdyb3VwcyA9IGF3YWl0IGZldGNoUHJvbWlzZTsKKyAgICAgICAgICAgIGFzc2VydCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBsZXQgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24o
KSwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVByb21pc2UgPSB0ZXN0R3JvdXAu
ZGlkU2VuZE5vdGlmaWNhdGlvbigpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9k
LCAnUE9TVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9w
cml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1sxXS5kYXRhLCB7Z3JvdXA6ICcyMTI4JywgbmVlZHNOb3RpZmljYXRp
b246IGZhbHNlLCBzbGF2ZU5hbWU6ICd0ZXN0Jywgc2xhdmVQYXNzd29yZDogJ3Bhc3N3b3JkJ30p
OworICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSgpOworCisgICAgICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sy
XS51cmwsICcvYXBpL3Rlc3QtZ3JvdXBzLzIxMjgnKTsKKyAgICAgICAgICAgIGNvbnN0IHVwZGF0
ZWRUZXN0R3JvdXAgPSBzYW1wbGVUZXN0R3JvdXAoKTsKKyAgICAgICAgICAgIHVwZGF0ZWRUZXN0
R3JvdXAudGVzdEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbiA9IGZhbHNlOworICAgICAgICAg
ICAgcmVxdWVzdHNbMl0ucmVzb2x2ZSh1cGRhdGVkVGVzdEdyb3VwKTsKKworICAgICAgICAgICAg
dGVzdEdyb3VwcyA9IGF3YWl0IHVwZGF0ZVByb21pc2U7CisgICAgICAgICAgICB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uZWVk
c05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CisgICAgICAgIH0pOworICAgIH0pOworCiAgICAgZGVz
Y3JpYmUoJ19jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIHRlc3QgZ3JvdXBzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgdmFyIGdyb3VwcyA9IFRlc3RHcm91cC5fY3JlYXRlTW9kZWxzRnJvbUZldGNo
ZWRUZXN0R3JvdXBzKHNhbXBsZVRlc3RHcm91cCgpKTsKQEAgLTE0Nyw2ICsxODQsNyBAQCBkZXNj
cmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLmlkKCksIDIxMjgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLmNyZWF0ZWRB
dCgpIGluc3RhbmNlb2YgRGF0ZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaXNI
aWRkZW4oKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtncm91cC5jcmVh
dGVkQXQoKSwgMTQ1ODY4ODUxNDAwMCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIHNhbXBsZVRlc3RHcm91cCgpWydidWlsZFJlcXVlc3RzJ10ubGVu
Z3RoIC8gMik7CiAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuaGFzUGVuZGluZygpKTsKQEAg
LTM2MSw3ICszOTksNyBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkoTW9ja01vZGVscy53ZWJraXQs
ICcxOTE2MjMnKTsKICAgICAgICAgICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KE1v
Y2tNb2RlbHMuc2hhcmVkUmVwb3NpdG9yeSwgJzgwMjI5Jyk7CiAKLSAgICAgICAgICAgIGNvbnN0
IHByb21pc2UgPSBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ3NvbWUtdGFzaycsIE1vY2tNb2Rl
bHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0LCAnc29tZS1ncm91cCcsIDQsIFtz
ZXQxLCBzZXQyXSk7CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gVGVzdEdyb3VwLmNyZWF0
ZVdpdGhUYXNrKCdzb21lLXRhc2snLCBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVs
cy5zb21lVGVzdCwgJ3NvbWUtZ3JvdXAnLCA0LCBbc2V0MSwgc2V0Ml0sIHRydWUpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYt
dG9rZW4nKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoewpAQCAtMzcxLDYgKzQw
OSwxMCBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXF1ZXN0c1syXS5kYXRhLCB7dGFza05hbWU6ICdzb21lLXRhc2snLCBuYW1lOiAnc29tZS1ncm91
cCcsIHBsYXRmb3JtOiA2NSwgdGVzdDogMSwKKyAgICAgICAgICAgICAgICByZXBldGl0aW9uQ291
bnQ6IDQsIHJldmlzaW9uU2V0czogW3snMTEnOiB7b3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6
IG51bGwsIHJldmlzaW9uOiAiMTkxNjIyIn0sCisgICAgICAgICAgICAgICAgICAgICcxNic6IHtv
d25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbCwgcmV2aXNpb246ICI4MDIyOSJ9fSwgeycx
MSc6IHtvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbCwgcmV2aXNpb246ICIxOTE2MjMi
fSwKKyAgICAgICAgICAgICAgICAgICAgJzE2Jzoge293bmVyUmV2aXNpb246IG51bGwsIHBhdGNo
OiBudWxsLCByZXZpc2lvbjogIjgwMjI5In19XSwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHRv
a2VuOiAnYWJjJ30pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLnVybCwg
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcpOwogICAgICAgICAgICAgcmVxdWVz
dHNbMl0ucmVzb2x2ZSh7CiAgICAgICAgICAgICAgICAgdGFza0lkOiAxMjMsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341829</attachid>
            <date>2018-06-01 22:05:54 -0700</date>
            <delta_ts>2018-06-05 17:24:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184340-20180601220554.patch</filename>
            <type>text/plain</type>
            <size>136839</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMzI0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBjOTU0M2ZmMDhkY2Y5ZTNjODVhMTcwZjk1ZTJiNGVlM2U4ODYzYzA2Li40ZmI2NzcyMzEx
YTA4OTcxYzk3NzU1YTYwZGIyZDI5ZTQzZmIwNDg1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMTYgQEAKKzIwMTgtMDUtMjQgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgc2VuZGluZyBub3RpZmljYXRpb24gZmVhdHVy
ZSB3aGVuIHRlc3QgZ3JvdXAgZmluaXNoZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicg
ZmlsZWQgdG8gJ2FuYWx5c2lzX3Rlc3RfZ3JvdXAnIHRhYmxlIHRvIGluZGljYXRlIHdoZXRoZXIg
YSB0ZXN0IGdyb3VwCisgICAgICAgIGhhcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uLlNRTCBxdWVy
eSB0byB1cGRhdGUgZXhpc3RpbmcgZGF0YWJhc2UgaXM6CisgICAgICAgICAgICAnQUxURVIgVEFC
TEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgQUREIENPTFVNTiB0ZXN0Z3JvdXBfbmVlZHNfbm90aWZp
Y2F0aW9uIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRTsnCisgICAgICAgIFVwZGF0ZWQg
J3J1bi1hbmFseXNpcycgc2NyaXB0IHRvIGJlIGFibGUgdG8gc2VuZCBub3RpZmljYXRpb24gd2hl
biB0ZXN0IGdyb3VwIGZpbmlzaGVzLgorICAgICAgICBBZGRlZCAnTm90aWZ5IG9uIGNvbXBsZXRp
b24nIGNoZWNrYm94IHdoaWxlIGNyZWF0aW5nL3JldHJ5aW5nL2Jpc2VjdGluZyBhIHRlc3QgZ3Jv
dXAuCisKKyAgICAgICAgKiBicm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qczog
VXBkYXRlZCBleGlzdGluZyB0ZXN0cyBhbmQgYWRkZWQgYSBuZXcgdGVzdC4KKyAgICAgICAgKiBp
bml0LWRhdGFiYXNlLnNxbDogQWRkZWQgJ3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nIGZp
bGVkIHRvICdhbmFseXNpc190ZXN0X2dyb3VwJyB0YWJsZS4KKyAgICAgICAgKiBwdWJsaWMvYXBp
L3Rlc3QtZ3JvdXBzLnBocDogQWRkZWQgJy9hcGkvdGVzdC1ncm91cHMvbm90aWZpY2F0aW9ucy1w
ZW5kaW5nJyBBUEkgdG8gJ3Rlc3QtZ3JvdXAnIHRvIHNob3cgYWxsCisgICAgICAgIHRlc3QgZ3Jv
dXBzIHRoYXQgbmVlZCB0byBzZW5kIG5vdGlmaWNhdGlvbi4gT25seSB0aGUgb25lcyB3aXRoICdj
b21wbGV0ZWQnLCAnZmFpbGVkJyBvciAnY2FuY2VsbGVkJyBzdGF0dXMgYW5kIGl0cworICAgICAg
ICAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicgaXMgdHJ1ZSB3aWxsIGJlIHJldHVybmVk
IGJ5IHRoaXMgQVBJLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZl
dGNoZXIucGhwOiBBZGRlZCAnZmV0Y2hfcmVxdWVzdHNfZm9yX2dyb3VwcycgdG8gcmV0dXJuIHRl
c3QgZ3JvdXBzIHdpdGggZ2l2ZW4gaWRzLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2NvbW1p
dC1zZXRzLWhlbHBlcnMucGhwOiBVcGRhdGVkIHRoZSBsb2dpYyB0byBzdXBwb3J0IHNldHRpbmcg
J3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nCisgICAgICAgIHdoaWxlIGNyZWF0ZSBhbiBh
bmFseXNpc190ZXN0X2dyb3Vwcy4KKyAgICAgICAgKiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sucGhwOiBVcGRhdGVkIHRoZSBsb2dpYyB0byBzdXBwb3J0IHNldHRp
bmcgJ3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nLgorICAgICAgICAqIHB1YmxpYy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHA6IFVwZGF0ZWQgdGhlIGxvZ2ljIHRvIHN1
cHBvcnQgc2V0dGluZyAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicuCisgICAgICAgICog
cHVibGljL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocDogVXBkYXRlZCB0aGUg
bG9naWMgdG8gc3VwcG9ydCB1cGRhdGluZyAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicu
CisgICAgICAgIEV4dGVuZGVkIHRoaXMgQVBJIHRvIGFsbG93IGF1dGhlbnRpY2F0aW9uIGJvdGgg
ZnJvbSBDU1JGIHRva2VuIGFuZCBzbGF2ZS4KKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50
cy9jdXN0b20tY29uZmlndXJhdGlvbi10ZXN0LWdyb3VwLWZvcm0uanM6CisgICAgICAgIChDdXN0
b21Db25maWd1cmF0aW9uVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuc3RhcnRUZXN0aW5nKTogUGFz
cyAnbm90aWZ5T25Db21wbGV0aW9uJyBpbmZvcm1hdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAg
ICAgICd0ZXN0Z3JvdXBfbmVlZHNfbm90aWZpY2F0aW9uJyBmcm9tIEFQSSBwZXJzcGVjdGl2ZS4K
KyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1m
b3JtLmpzOgorICAgICAgICAoQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuc3Rh
cnRUZXN0aW5nKTogUGFzcyAnbm90aWZ5T25Db21wbGV0aW9uJyBpbmZvcm1hdGlvbiB3aGljaCBy
ZXByZXNlbnRzCisgICAgICAgICd0ZXN0Z3JvdXBfbmVlZHNfbm90aWZpY2F0aW9uJyBmcm9tIEFQ
SSBwZXJzcGVjdGl2ZS4KKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0uY3NzVGVt
cGxhdGUpOiBBZGRlZCBzcGFjZSBiZXR3ZWVuICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hlY2ti
b3ggYW5kIHRlc3QgZ3JvdXAgaXRlcmF0aW9uIHNlbGVjdGlvbiBsaXN0LgorICAgICAgICAqIHB1
YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qczoKKyAgICAgICAgKFRlc3RHcm91
cEZvcm0pOiBBZGRlZCAnX25vdGlmeU9uQ29tcGxldGlvbicgaW5zdGFuY2UgdmFyaWFibGUuCisg
ICAgICAgIChUZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKTog
QWRkZWQgJ29uY2hhbmdlJyBldmVudCBmb3Igbm90aWZ5IG9uIGNvbXBsZXRpb24gY2hlY2tib3gu
CisgICAgICAgIChUZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5zdGFydFRlc3RpbmcpOiBQYXNzICdu
b3RpZnlPbkNvbXBsZXRpb24nIGluZm9ybWF0aW9uIHdoaWNoIHJlcHJlc2VudHMKKyAgICAgICAg
J3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nIGZyb20gQVBJIHBlcnNwZWN0aXZlLgorICAg
ICAgICAoVGVzdEdyb3VwRm9ybS5jc3NUZW1wbGF0ZSk6IEFkZGVkIHNwYWNlIGJldHdlZW4gJ05v
dGlmeSBvbiBjb21wbGV0aW9uJyBjaGVja2JveCBhbmQgdGVzdCBncm91cCBpdGVyYXRpb24gc2Vs
ZWN0aW9uIGxpc3QuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1bHRz
LmpzOiBFeHBvcnQgJ0FuYWx5c2lzUmVzdWx0cycuCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMu
ZmV0Y2gpOiBVcGRhdGUgQVBJIHBhdGggdG8gdXNlIGFic29sdXRlIHVybC4KKyAgICAgICAgKEFu
YWx5c2lzUmVzdWx0cyk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNr
LmpzOgorICAgICAgICAoQW5hbHlzaXNUYXNrLmFzeW5jLmNyZWF0ZSk6IEV4dGVuZCB0aGlzIGZ1
bmN0aW9uIHRvIHRha2Ugbm90aWZ5T25Db21wbGV0aW9uIGFzIGFyZ3VtZW50IHdoaWNoIHdpbGwg
YmUgdXNlZCBhcworICAgICAgICAnbmVlZHNOb3RpZmljYXRpb24nIHRvIHNlbmQgdG8gc2VydmVy
LgorICAgICAgICAoQW5hbHlzaXNUYXNrKToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3Rl
c3QtZ3JvdXAuanM6CisgICAgICAgIChUZXN0R3JvdXApOiBBZGRlZCAnX25lZWRzTm90aWZpY2F0
aW9uJyBmaWVsZC4KKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5cGUudXBkYXRlU2luZ2xldG9u
KTogQWRkZWQgbG9naWMgdG8gdXBkYXRlICdfbmVlZHNOb3RpZmljYXRpb24nIGZpZWxkLgorICAg
ICAgICAoVGVzdEdyb3VwLnByb3RvdHlwZS5uZWVkc05vdGlmaWNhdGlvbik6IFJldHVybnMgJ19u
ZWVkc05vdGlmaWNhdGlvbicgZmllbGQuCisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLmF1
dGhvcik6IFJldHVybnMgYXV0aG9yIGluZm9ybWF0aW9uLgorICAgICAgICAoVGVzdEdyb3VwLnBy
b3RvdHlwZS5hc3luYy5kaWRTZW5kTm90aWZpY2F0aW9uKTogQVBJIHRoYXQgdXBkYXRlcyAndGVz
dGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicgdG8gdHJ1ZS4KKyAgICAgICAgKFRlc3RHcm91cC5j
cmVhdGVXaXRoVGFzayk6IFVwZGF0ZWQgdGhpcyBmdW5jdGlvbiB0byBhY2NlcHQgJ25vdGlmeU9u
Q29tcGxldGlvbicgd2hpY2ggd2lsbCBiZSB1c2VkIGFzCisgICAgICAgICduZWVkc05vdGlmaWNh
dGlvbicgdG8gc2VuZCB0byBzZXJ2ZXIuCisgICAgICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aEN1
c3RvbUNvbmZpZ3VyYXRpb24pOiBVcGRhdGVkIHRoaXMgZnVuY3Rpb24gdG8gYWNjZXB0ICdub3Rp
ZnlPbkNvbXBsZXRpb24nIHdoaWNoIHdpbGwgYmUgdXNlZCBhcworICAgICAgICAnbmVlZHNOb3Rp
ZmljYXRpb24nIHRvIHNlbmQgdG8gc2VydmVyLgorICAgICAgICAoVGVzdEdyb3VwLmNyZWF0ZUFu
ZFJlZmV0Y2hUZXN0R3JvdXBzKTogVXBkYXRlZCB0aGlzIGZ1bmN0aW9uIHRvIGFjY2VwdCAnbm90
aWZ5T25Db21wbGV0aW9uJyB3aGljaCB3aWxsIGJlIHVzZWQgYXMKKyAgICAgICAgJ25lZWRzTm90
aWZpY2F0aW9uJyB0byBzZW5kIHRvIHNlcnZlci4KKyAgICAgICAgKFRlc3RHcm91cC5mZXRjaEFs
bFdpdGhQZW5kaW5nTm90aWZpY2F0aW9uKTogTmV3IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyAnL2Fw
aS90ZXN0LWdyb3Vwcy9ub3RpZmljYXRpb25zLXBlbmRpbmcuCisgICAgICAgICogcHVibGljL3Yz
L3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qczogVXBkYXRlIGxvZ2ljIHRvICdub3RpZnlPbkNv
bXBsZXRpb24nIGFyb3VuZAorICAgICAgICAoQW5hbHlzaXNUYXNrQ2hhcnRQYW5lLnByb3RvdHlw
ZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1Jlc3VsdHNQ
YW5lLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKEFuYWx5c2lz
VGFza1Rlc3RHcm91cFBhbmUucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAg
ICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6
CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fcmV0cnlDdXJyZW50VGVzdEdy
b3VwKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLmFzeW5jLl9iaXNlY3RD
dXJyZW50VGVzdEdyb3VwKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9j
cmVhdGVUZXN0R3JvdXBBZnRlclZlcmlmeWluZ0NvbW1pdFNldExpc3Quc2V0IGNvbnN0KToKKyAg
ICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9jcmVhdGVUZXN0R3JvdXBBZnRlclZl
cmlmeWluZ0NvbW1pdFNldExpc3QpOgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5
cGUuX2NyZWF0ZUN1c3RvbVRlc3RHcm91cCk6CisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2No
YXJ0LXBhbmUuanM6IEFkZGVkICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hlY2tib3guCisgICAg
ICAgIChDaGFydFBhbmUucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAg
ICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5hc3luYy5fYW5hbHl6ZVJhbmdlKToKKyAgICAgICAgKiBw
dWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFnZS5qczogQWRhcHRlZCBBUEkg
Y2hhbmdlLgorICAgICAgICAoQ3JlYXRlQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuX2NyZWF0
ZUFuYWx5c2lzVGFza1dpdGhHcm91cCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS10ZXN0
LWdyb3Vwcy5qczogQWRkZWQgdGVzdHMgZm9yICcvYXBpL3Rlc3QtZ3JvdXBzL25vdGlmaWNhdGlv
bnMtcGVuZGluZycuCisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0
cy5qczogVXBkYXRlZCB0ZXN0cyB0byBhZGFwdCB0aGlzIGNoYW5nZS4KKyAgICAgICAgKiBzZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanM6IFVw
ZGF0ZWQgdGVzdHMgdG8gYWRhcHQgdGhpcyBjaGFuZ2UuCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0
cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3Jv
dXAtdGVzdHMuanM6IFVwZGF0ZWQgdGVzdHMgdG8gYWRhcHQgdGhpcyBjaGFuZ2UuCisgICAgICAg
IEFkZGVkIG5ldyB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGkt
dXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6IEFkZGVkIHVuaXQgdGVzdCBmb3IgJ3VwZGF0ZS10
ZXN0LWdyb3VwJyBBUEkuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRh
dGEuanM6IGFkZE1vY2tEYXRhIHNob3VsZCBzZXQgJ3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRp
b24nIHRvIGJlIHRydWUuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRi
b3QtaW50ZWdyYXRpb24tdGVzdHMuanM6IFVwZGF0ZWQgdGVzdHMgdG8gYWRhcHQgdGhpcyBjaGFu
Z2UuCisgICAgICAgIChhc3luYy5jcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCk6CisgICAgICAgIChj
cmVhdGVUZXN0R3JvdXBXaWhPd25lZENvbW1pdCk6CisgICAgICAgICogdG9vbHMvanMvYW5hbHlz
aXMtcmVzdWx0cy1ub3RpZmllci5qczogQWRkZWQgbm90aWZpZXIgdG8gc2VuZCBub3RpZmljYXRp
b24gZm9yIGNvbXBsZXRlZCB0ZXN0IGdyb3Vwcy4uCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNO
b3RpZmllcik6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5wcm90b3R5cGUuYXN5
bmMuc2VuZE5vdGlmaWNhdGlvbnNGb3JUZXN0R3JvdXBzKToKKyAgICAgICAgKEFuYWx5c2lzUmVz
dWx0c05vdGlmaWVyLnByb3RvdHlwZS5fY29uc3RydWN0TWVzc2FnZUJ5UnVsZXMpOgorICAgICAg
ICAoQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX2J1aWxkTWVzc2FnZUNvbnN0cnVjdGlvblJ1bGVz
KToKKyAgICAgICAgKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9hcHBseVVwZGF0ZSk6CisgICAg
ICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5hc3luYy5fbWVzc2FnZUZvclRlc3RHcm91cCk6
IEJ1aWxkIGh0bWwgYXMgbWVzc2FnZSBib2R5IGZvciBhIHRlc3QgZ3JvdXAuCisgICAgICAgIChB
bmFseXNpc1Jlc3VsdHNOb3RpZmllci5fVVJMRm9yQW5hbHlzaXNUYXNrKTogUmV0dXJucyBVUkwg
Zm9yIGFuIGFuYWx5c2lzIHRhc2suCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5f
aW5zdGFudGlhdGVOb3RpZmljYXRpb25UZW1wbGF0ZSk6CisgICAgICAgIChOb3RpZmljYXRpb25T
ZXJ2aWNlKToKKyAgICAgICAgKE5vdGlmaWNhdGlvblNlcnZpY2UucHJvdG90eXBlLmFzeW5jLnNl
bmROb3RpZmljYXRpb24pOiBJbnZva2UgZW1haWwgQVBJIHRvIHNlbmQgbm90aWZpY2F0aW9uLgor
ICAgICAgICAoVGVzdEdyb3VwUmVzdWx0UGFnZSk6CisgICAgICAgIChUZXN0R3JvdXBSZXN1bHRQ
YWdlLnByb3RvdHlwZS5jb25zdHJ1Y3RUYWJsZXMuKToKKyAgICAgICAgKFRlc3RHcm91cFJlc3Vs
dFBhZ2UucHJvdG90eXBlLmNvbnN0cnVjdFRhYmxlcyk6CisgICAgICAgIChUZXN0R3JvdXBSZXN1
bHRQYWdlLnByb3RvdHlwZS5yZW5kZXIpOgorICAgICAgICAoVGVzdEdyb3VwUmVzdWx0UGFnZS5w
cm90b3R5cGUuZ2V0IHBhZ2VDb250ZW50KToKKyAgICAgICAgKFRlc3RHcm91cFJlc3VsdFBhZ2Uu
cHJvdG90eXBlLmdldCBzdHlsZVRlbXBsYXRlKToKKyAgICAgICAgKiB0b29scy9qcy9tZWFzdXJl
bWVudC1zZXQtYW5hbHl6ZXIuanM6IEFkYXB0ZWQgJ0FuYWx5c2lzVGFzay5jcmVhdGUnIGNoYW5n
ZS4KKyAgICAgICAgKE1lYXN1cmVtZW50U2V0QW5hbHl6ZXIucHJvdG90eXBlLmFzeW5jLl9hbmFs
eXplTWVhc3VyZW1lbnRTZXQpOgorICAgICAgICAoTWVhc3VyZW1lbnRTZXRBbmFseXplcik6Cisg
ICAgICAgICogdG9vbHMvanMvdjMtbW9kZWxzLmpzOgorICAgICAgICAqIHRvb2xzL3J1bi1hbmFs
eXNpcy5qczogQWRkZWQgdGhlIGxvZ2ljIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9uIGZvciBjb21w
bGV0ZWQgdGVzdCBncm91cHMuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKGFzeW5jLmFuYWx5
c2lzTG9vcCk6CisgICAgICAgICogdW5pdC10ZXN0cy9hbmFseXNpcy10YXNrLXRlc3RzLmpzOgor
ICAgICAgICAqIHVuaXQtdGVzdHMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci10ZXN0cy5qczog
QWRkZWQgYSB1bml0IHRlc3QgZm9yICdBbmFseXNpc1Jlc3VsdHNOb3RpZmllcicgYW5kICdOb3Rp
ZmljYXRpb25TZXJ2aWNlJy4KKyAgICAgICAgKiB1bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC1h
bmFseXplci10ZXN0cy5qczogVXBkYXRlZCB1bml0IHRlc3RzIHBlciB0aGlzIGNoYW5nZS4KKyAg
ICAgICAgKiB1bml0LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzOiBBZGRlZCB1bml0IHRlc3Rz
IGZvciAnVGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uJy4KKwogMjAxOC0wNS0yMyAgRGV3ZWkg
Wmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBPU0J1aWxkRmV0Y2hlciBzaG91
bGQgcmVzcGVjdCBtYXhSZXZpc2lvbiB3aGlsZSBmaW5kaW5nIE9TIGJ1aWxkcyB0byByZXBvcnQu
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy90ZXN0
LWdyb3VwLWZvcm0tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10
ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMKaW5kZXggMjY1MzU2NzI4NDlhMTlkZGZkZmY5
MmI0NTk4Nzk1M2IwZGU4MGQ3Mi4uMTE2NDA0MDQxYjQ5ZDQxZjVmYTBhMGRhMTk4ZmU2OWIxNTFm
OWUyZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMv
dGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9i
cm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwpAQCAtMTgsNyArMTgsNyBAQCBk
ZXNjcmliZSgnVGVzdEdyb3VwRm9ybVRlc3RzJywgKCkgPT4gewogICAgICAgICAgICAgdGVzdEdy
b3VwRm9ybS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKC4uLmFyZ3MpID0+IGNhbGxz
LnB1c2goYXJncykpOwogICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoe30pOwogICAg
ICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24nKS5jbGljaygpOwot
ICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XV0pOworICAgICAgICAgICAgZXhw
ZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMjksMTIgKzI5LDMxIEBAIGRlc2NyaWJlKCdUZXN0R3JvdXBGb3JtVGVzdHMnLCAoKSA9PiB7
CiAgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmxpc3RlblRvQWN0aW9uKCdzdGFydFRlc3Rpbmcn
LCAoLi4uYXJncykgPT4gY2FsbHMucHVzaChhcmdzKSk7CiAgICAgICAgICAgICBleHBlY3QoY2Fs
bHMpLnRvLmVxbCh7fSk7CiAgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3N0YXJ0
LWJ1dHRvbicpLmNsaWNrKCk7Ci0gICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzRd
XSk7CisgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRydWVdXSk7CiAgICAg
ICAgICAgICBjb25zdCBjb3VudEZvcm0gPSB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3JlcGV0aXRp
b24tY291bnQnKTsKICAgICAgICAgICAgIGNvdW50Rm9ybS52YWx1ZSA9ICc2JzsKLSAgICAgICAg
ICAgIGNvdW50Rm9ybS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykpOyAKKyAgICAg
ICAgICAgIGNvdW50Rm9ybS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykpOwogICAg
ICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24nKS5jbGljaygpOwot
ICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XSwgWzZdXSk7CisgICAgICAgICAg
ICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRydWVdLCBbNiwgdHJ1ZV1dKTsKKyAgICAgICAg
fSk7CisgICAgfSk7CisKKyAgICBpdCgnbXVzdCB1cGRhdGUgIm5vdGlmeSBvbiBjb21wbGV0aW9u
IiB3aGVuIGl0IGlzIHVuY2hlY2tlZCcsICgpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9
IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cEZv
cm1XaXRoQ29udGV4dChjb250ZXh0KS50aGVuKCh0ZXN0R3JvdXBGb3JtKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCBjYWxscyA9IFtdOworICAgICAgICAgICAgdGVzdEdyb3VwRm9ybS5saXN0ZW5U
b0FjdGlvbignc3RhcnRUZXN0aW5nJywgKC4uLmFyZ3MpID0+IGNhbGxzLnB1c2goYXJncykpOwor
ICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoe30pOworICAgICAgICAgICAgdGVzdEdy
b3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24nKS5jbGljaygpOworICAgICAgICAgICAgZXhw
ZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOworICAgICAgICAgICAgY29uc3QgY291bnRG
b3JtID0gdGVzdEdyb3VwRm9ybS5jb250ZW50KCdyZXBldGl0aW9uLWNvdW50Jyk7CisgICAgICAg
ICAgICBjb3VudEZvcm0udmFsdWUgPSAnNic7CisgICAgICAgICAgICBjb3VudEZvcm0uZGlzcGF0
Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKKyAgICAgICAgICAgIGNvbnN0IG5vdGlmeU9u
Q29tcGxldGlvbkNoZWNrYm94ID0gdGVzdEdyb3VwRm9ybS5jb250ZW50KCdub3RpZnktb24tY29t
cGxldGlvbi1jaGVja2JveCcpOworICAgICAgICAgICAgbm90aWZ5T25Db21wbGV0aW9uQ2hlY2ti
b3guY2hlY2tlZCA9IGZhbHNlOworICAgICAgICAgICAgbm90aWZ5T25Db21wbGV0aW9uQ2hlY2ti
b3guZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKKyAgICAgICAgICAgIHRlc3RH
cm91cEZvcm0uY29udGVudCgnc3RhcnQtYnV0dG9uJykuY2xpY2soKTsKKyAgICAgICAgICAgIGV4
cGVjdChjYWxscykudG8uZXFsKFtbNCwgdHJ1ZV0sIFs2LCBmYWxzZV1dKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTU3LDEwICs3NiwxMCBAQCBkZXNjcmliZSgnVGVzdEdyb3VwRm9ybVRl
c3RzJywgKCkgPT4gewogICAgICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0ubGlzdGVuVG9BY3Rp
b24oJ3N0YXJ0VGVzdGluZycsICguLi5hcmdzKSA9PiBjYWxscy5wdXNoKGFyZ3MpKTsKICAgICAg
ICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbCh7fSk7CiAgICAgICAgICAgICAgICAgdGVz
dEdyb3VwRm9ybS5jb250ZW50KCkucXVlcnlTZWxlY3RvcignYnV0dG9uJykuY2xpY2soKTsKLSAg
ICAgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzRdXSk7CisgICAgICAgICAgICAg
ICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOwogICAgICAgICAgICAgICAgIHRl
c3RHcm91cEZvcm0uc2V0UmVwZXRpdGlvbkNvdW50KDgpOwogICAgICAgICAgICAgICAgIHRlc3RH
cm91cEZvcm0uY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLmNsaWNrKCk7Ci0gICAg
ICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XSwgWzhdXSk7CisgICAgICAgICAg
ICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXSwgWzgsIHRydWVdXSk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggYzQ3NDJlN2I2ZGMzZWE4MDViMDM5ZTBkMTg3NzVj
NTJmMmY3ZDA2Ny4uMDM4ODM1MjQ1ZWZlZGI1MmRiOGMxODMzOGIxOWQ1NzY3MDU1OWQxNyAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMjc5LDYgKzI3
OSw3IEBAIENSRUFURSBUQUJMRSBhbmFseXNpc190ZXN0X2dyb3VwcyAoCiAgICAgdGVzdGdyb3Vw
X2F1dGhvciB2YXJjaGFyKDI1NiksCiAgICAgdGVzdGdyb3VwX2NyZWF0ZWRfYXQgdGltZXN0YW1w
IE5PVCBOVUxMIERFRkFVTFQgKENVUlJFTlRfVElNRVNUQU1QIEFUIFRJTUUgWk9ORSAnVVRDJyks
CiAgICAgdGVzdGdyb3VwX2hpZGRlbiBib29sZWFuIE5PVCBOVUxMIERFRkFVTFQgRkFMU0UsCisg
ICAgdGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiBib29sZWFuIE5PVCBOVUxMIERFRkFVTFQg
RkFMU0UsCiAgICAgQ09OU1RSQUlOVCB0ZXN0Z3JvdXBfbmFtZV9tdXN0X2JlX3VuaXF1ZV9mb3Jf
ZWFjaF90YXNrIFVOSVFVRSh0ZXN0Z3JvdXBfdGFzaywgdGVzdGdyb3VwX25hbWUpKTsKIENSRUFU
RSBJTkRFWCB0ZXN0Z3JvdXBfdGFza19pbmRleCBPTiBhbmFseXNpc190ZXN0X2dyb3Vwcyh0ZXN0
Z3JvdXBfdGFzayk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvYXBpL3Rlc3QtZ3JvdXBzLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
YXBpL3Rlc3QtZ3JvdXBzLnBocAppbmRleCA0MmRkZDMwOTM1MDlkZDJmNGFkNjMwZTg0ZTRkM2Ew
NWU3YjA5NjFjLi4xMWNmYTkwYzdiMTdiZGIzMjZlNTQyYjA3ZTRhYWFhY2M5YjUzNWM3IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS90ZXN0LWdyb3Vwcy5w
aHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdGVzdC1ncm91cHMu
cGhwCkBAIC0xMyw3ICsxMywyMiBAQCBmdW5jdGlvbiBtYWluKCRwYXRoKSB7CiAKICAgICAkYnVp
bGRfcmVxdWVzdHNfZmV0Y2hlciA9IG5ldyBCdWlsZFJlcXVlc3RzRmV0Y2hlcigkZGIpOwogCi0g
ICAgaWYgKGNvdW50KCRwYXRoKSA+IDAgJiYgJHBhdGhbMF0pIHsKKyAgICBpZiAoY291bnQoJHBh
dGgpID4gMCAmJiAkcGF0aFswXSA9PSAnbm90aWZpY2F0aW9ucy1wZW5kaW5nJykgeworICAgICAg
ICAkdGVzdF9ncm91cHMgPSAkZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00g
YW5hbHlzaXNfdGVzdF9ncm91cHMKKyAgICAgICAgICAgICAgICBXSEVSRSBFWElTVFMoU0VMRUNU
IDEgRlJPTSBidWlsZF9yZXF1ZXN0cworICAgICAgICAgICAgICAgIFdIRVJFIHJlcXVlc3RfZ3Jv
dXAgPSB0ZXN0Z3JvdXBfaWQKKyAgICAgICAgICAgICAgICAgIEFORCByZXF1ZXN0X3N0YXR1cyBJ
TiAoXCdwZW5kaW5nXCcsIFwnc2NoZWR1bGVkXCcsIFwncnVubmluZ1wnLCBcJ2NhbmNlbGVkXCcp
KSBJUyBGQUxTRQorICAgICAgICAgICAgICAgICAgQU5EIHRlc3Rncm91cF9uZWVkc19ub3RpZmlj
YXRpb24gSVMgVFJVRSBhbmQgdGVzdGdyb3VwX2hpZGRlbiBJUyBGQUxTRScpOworCisgICAgICAg
IGlmICghY291bnQoJHRlc3RfZ3JvdXBzKSkgeworICAgICAgICAgICAgZXhpdF93aXRoX3N1Y2Nl
c3MoYXJyYXkoJ3Rlc3RHcm91cHMnID0+IGFycmF5KCksCisgICAgICAgICAgICAgICAgJ2J1aWxk
UmVxdWVzdHMnID0+IGFycmF5KCksCisgICAgICAgICAgICAgICAgJ2NvbW1pdFNldHMnID0+IGFy
cmF5KCksCisgICAgICAgICAgICAgICAgJ2NvbW1pdHMnID0+IGFycmF5KCksCisgICAgICAgICAg
ICAgICAgJ3VwbG9hZGVkRmlsZXMnID0+IGFycmF5KCkpKTsKKyAgICAgICAgfQorICAgICAgICAk
YnVpbGRfcmVxdWVzdHNfZmV0Y2hlci0+ZmV0Y2hfcmVxdWVzdHNfZm9yX2dyb3VwcygkdGVzdF9n
cm91cHMpOworICAgIH1lbHNlaWYgKGNvdW50KCRwYXRoKSA+IDAgJiYgJHBhdGhbMF0pIHsKICAg
ICAgICAgJGdyb3VwX2lkID0gaW50dmFsKCRwYXRoWzBdKTsKICAgICAgICAgJGdyb3VwID0gJGRi
LT5zZWxlY3RfZmlyc3Rfcm93KCdhbmFseXNpc190ZXN0X2dyb3VwcycsICd0ZXN0Z3JvdXAnLCBh
cnJheSgnaWQnID0+ICRncm91cF9pZCkpOwogICAgICAgICBpZiAoISRncm91cCkKQEAgLTY1LDYg
KzgwLDcgQEAgZnVuY3Rpb24gZm9ybWF0X3Rlc3RfZ3JvdXAoJGdyb3VwX3JvdykgewogICAgICAg
ICAnYXV0aG9yJyA9PiAkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfYXV0aG9yJ10sCiAgICAgICAgICdj
cmVhdGVkQXQnID0+IHN0cnRvdGltZSgkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfY3JlYXRlZF9hdCdd
KSAqIDEwMDAsCiAgICAgICAgICdoaWRkZW4nID0+IERhdGFiYXNlOjppc190cnVlKCRncm91cF9y
b3dbJ3Rlc3Rncm91cF9oaWRkZW4nXSksCisgICAgICAgICduZWVkc05vdGlmaWNhdGlvbicgPT4g
RGF0YWJhc2U6OmlzX3RydWUoJGdyb3VwX3Jvd1sndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlv
biddKSwKICAgICAgICAgJ2J1aWxkUmVxdWVzdHMnID0+IGFycmF5KCksCiAgICAgICAgICdjb21t
aXRTZXRzJyA9PiBhcnJheSgpLAogICAgICk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hl
ci5waHAKaW5kZXggMjdmMDI0MDdkYTc0OTE3NThkZWRhZTA4M2Y0YzM0MGMxYjM2ZGEzMS4uYjM4
ODc3OWIyN2QzZjkzMDU0Mzg4Y2Y5NWU2MmMzMTkwNzE5YWUyOCAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIu
cGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1y
ZXF1ZXN0cy1mZXRjaGVyLnBocApAQCAtMzAsNiArMzAsMTcgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0
c0ZldGNoZXIgewogICAgICAgICAgICAgJHJvd1sndGFza19pZCddID0gJHRhc2tfaWQ7CiAgICAg
fQogCisgICAgZnVuY3Rpb24gZmV0Y2hfcmVxdWVzdHNfZm9yX2dyb3VwcygkdGVzdF9ncm91cHMp
IHsKKyAgICAgICAgJHRlc3RfZ3JvdXBfaWRfbGlzdCA9IGFycmF5KCk7CisgICAgICAgIGZvcmVh
Y2goJHRlc3RfZ3JvdXBzIGFzICRncm91cCkKKyAgICAgICAgICAgIGFycmF5X3B1c2goJHRlc3Rf
Z3JvdXBfaWRfbGlzdCwgaW50dmFsKCRncm91cFsndGVzdGdyb3VwX2lkJ10pKTsKKworICAgICAg
ICAkdGhpcy0+cm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICos
IHRlc3Rncm91cF90YXNrIGFzIHRhc2tfaWQKKyAgICAgICAgICAgIEZST00gYnVpbGRfcmVxdWVz
dHMsIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzCisgICAgICAgICAgICBXSEVSRSByZXF1ZXN0X2dyb3Vw
ID0gdGVzdGdyb3VwX2lkIEFORCB0ZXN0Z3JvdXBfaWQgPSBBTlkoJDEpCisgICAgICAgICAgICBP
UkRFUiBCWSByZXF1ZXN0X2dyb3VwLCByZXF1ZXN0X29yZGVyJywgYXJyYXkoJ3snIC4gaW1wbG9k
ZSgnLCAnLCAkdGVzdF9ncm91cF9pZF9saXN0KSAuICd9JykpOworICAgIH0KKwogICAgIGZ1bmN0
aW9uIGZldGNoX2luY29tcGxldGVfcmVxdWVzdHNfZm9yX3RyaWdnZXJhYmxlKCR0cmlnZ2VyYWJs
ZV9pZCkgewogICAgICAgICAkdGhpcy0+cm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgnU0VMRUNUICosIHRlc3RfZ3JvdXBzLnRlc3Rncm91cF90YXNrIGFzIHRhc2tfaWQgRlJP
TSBidWlsZF9yZXF1ZXN0cywKICAgICAgICAgICAgIChTRUxFQ1QgdGVzdGdyb3VwX2lkLCB0ZXN0
Z3JvdXBfdGFzaywgKGNhc2Ugd2hlbiB0ZXN0Z3JvdXBfYXV0aG9yIGlzIG5vdCBudWxsIHRoZW4g
MCBlbHNlIDEgZW5kKSBhcyBhdXRob3Jfb3JkZXIsIHRlc3Rncm91cF9jcmVhdGVkX2F0CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNl
dHMtaGVscGVycy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUv
Y29tbWl0LXNldHMtaGVscGVycy5waHAKaW5kZXggYTdhZGM0ZjhhMzJkNzZmNWJlNDU3YmI3Mzdl
ZGRmMTRlZGZhOGIyMi4uYmVjN2Q0ODZmMmIwN2FlZDM2ZGQyZTJiZmUyN2I3MTA5OTQzYTY0MyAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1p
dC1zZXRzLWhlbHBlcnMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
aW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocApAQCAtNCwxMiArNCwxMiBAQCByZXF1aXJl
X29uY2UoJ3JlcG9zaXRvcnktZ3JvdXAtZmluZGVyLnBocCcpOwogcmVxdWlyZV9vbmNlKCdjb21t
aXQtbG9nLWZldGNoZXIucGhwJyk7CiAKICMgRklYTUU6IFNob3VsZCBjcmVhdGUgYSBoZWxwZXIg
Y2xhc3MgZm9yIGJlbG93IDMgaGVscGVyIGZ1bmN0aW9ucyB0byBhdm9pZCBwYXNzaW5nIGxvbmcg
YXJndW1lbnQgbGlzdC4KLWZ1bmN0aW9uIGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9yZXF1
ZXN0cygkZGIsICRjb21taXRfc2V0cywgJHRhc2tfaWQsICRuYW1lLCAkYXV0aG9yLCAkdHJpZ2dl
cmFibGVfaWQsICRwbGF0Zm9ybV9pZCwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50KSB7Citm
dW5jdGlvbiBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0
X3NldHMsICR0YXNrX2lkLCAkbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZv
cm1faWQsICR0ZXN0X2lkLCAkcmVwZXRpdGlvbl9jb3VudCwgJG5lZWRzX25vdGlmaWNhdGlvbikg
ewogCiAgICAgbGlzdCAoJGJ1aWxkX2NvbmZpZ3VyYXRpb25fbGlzdCwgJHRlc3RfY29uZmlndXJh
dGlvbl9saXN0KSA9IGluc2VydF9jb21taXRfc2V0c19hbmRfY29uc3RydWN0X2NvbmZpZ3VyYXRp
b25fbGlzdCgkZGIsICRjb21taXRfc2V0cyk7CiAKICAgICAkZ3JvdXBfaWQgPSAkZGItPmluc2Vy
dF9yb3coJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywgJ3Rlc3Rncm91cCcsCi0gICAgICAgIGFycmF5
KCd0YXNrJyA9PiAkdGFza19pZCwgJ25hbWUnID0+ICRuYW1lLCAnYXV0aG9yJyA9PiAkYXV0aG9y
KSk7CisgICAgICAgIGFycmF5KCd0YXNrJyA9PiAkdGFza19pZCwgJ25hbWUnID0+ICRuYW1lLCAn
YXV0aG9yJyA9PiAkYXV0aG9yLCAnbmVlZHNfbm90aWZpY2F0aW9uJyA9PiAkbmVlZHNfbm90aWZp
Y2F0aW9uKSk7CiAKICAgICAkYnVpbGRfY291bnQgPSBjb3VudCgkYnVpbGRfY29uZmlndXJhdGlv
bl9saXN0KTsKICAgICAkb3JkZXIgPSAtJGJ1aWxkX2NvdW50OwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMt
dGFzay5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocAppbmRleCA5NDBmODBiOTdhMDVjYmFmYTA0NTdkMzlk
MTM3MzBkMjY2ZjhmY2Y5Li40ODA0Y2M3NWIyMTVmNzE3NDNmNzY4MzgxNTgwN2I2M2I1OGViZGEx
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocApAQCAtMTAs
NiArMTAsNyBAQCBmdW5jdGlvbiBtYWluKCkgewogICAgICRhdXRob3IgPSByZW1vdGVfdXNlcl9u
YW1lKCRkYXRhKTsKICAgICAkbmFtZSA9IGFycmF5X2dldCgkZGF0YSwgJ25hbWUnKTsKICAgICAk
cmVwZXRpdGlvbl9jb3VudCA9IGFycmF5X2dldCgkZGF0YSwgJ3JlcGV0aXRpb25Db3VudCcpOwor
ICAgICRuZWVkc19ub3RpZmljYXRpb24gPSBhcnJheV9nZXQoJGRhdGEsICduZWVkc05vdGlmaWNh
dGlvbicsIEZhbHNlKTsKICAgICAkdGVzdF9ncm91cF9uYW1lID0gYXJyYXlfZ2V0KCRkYXRhLCAn
dGVzdEdyb3VwTmFtZScpOwogICAgICRyZXZpc2lvbl9zZXRfbGlzdCA9IGFycmF5X2dldCgkZGF0
YSwgJ3JldmlzaW9uU2V0cycpOwogCkBAIC04NCw3ICs4NSw3IEBAIGZ1bmN0aW9uIG1haW4oKSB7
CiAgICAgICAgICR0cmlnZ2VyYWJsZV9pZCA9ICR0cmlnZ2VyYWJsZVsnaWQnXTsKICAgICAgICAg
JHRlc3RfaWQgPSAkdHJpZ2dlcmFibGVbJ3Rlc3QnXTsKICAgICAgICAgJGNvbW1pdF9zZXRzID0g
Y29tbWl0X3NldHNfZnJvbV9yZXZpc2lvbl9zZXRzKCRkYiwgJHRyaWdnZXJhYmxlX2lkLCAkcmV2
aXNpb25fc2V0X2xpc3QpOwotICAgICAgICBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVpbGRfcmVx
dWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAkdGVzdF9ncm91cF9uYW1lLCAkYXV0
aG9yLCAkdHJpZ2dlcmFibGVfaWQsICRjb25maWdbJ2NvbmZpZ19wbGF0Zm9ybSddLCAkdGVzdF9p
ZCwgJHJlcGV0aXRpb25fY291bnQpOworICAgICAgICBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVp
bGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAkdGVzdF9ncm91cF9uYW1l
LCAkYXV0aG9yLCAkdHJpZ2dlcmFibGVfaWQsICRjb25maWdbJ2NvbmZpZ19wbGF0Zm9ybSddLCAk
dGVzdF9pZCwgJHJlcGV0aXRpb25fY291bnQsICRuZWVkc19ub3RpZmljYXRpb24pOwogICAgIH0K
IAogICAgICRkYi0+Y29tbWl0X3RyYW5zYWN0aW9uKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBo
cCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAucGhwCmluZGV4IDU2YjQ3NTU4ZjgwZDNmZWQ4ZGEyOWM5MzJhYWQ4NmQ3OTY1
ZDg5NTguLjEwMjNkNGJjYjY5MGM3ZjE4Nzk0NTE3NzM2NmNiMzQ0NGU5NmI2YWMgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwCkBAIC0xOCw2ICsxOCw3IEBAIGZ1bmN0
aW9uIG1haW4oKQogICAgICR0YXNrX2lkID0gYXJyYXlfZ2V0KCRhcmd1bWVudHMsICd0YXNrJyk7
CiAgICAgJHRhc2tfbmFtZSA9IGFycmF5X2dldCgkZGF0YSwgJ3Rhc2tOYW1lJyk7CiAgICAgJHJl
cGV0aXRpb25fY291bnQgPSAkYXJndW1lbnRzWydyZXBldGl0aW9uQ291bnQnXTsKKyAgICAkbmVl
ZHNfbm90aWZpY2F0aW9uID0gYXJyYXlfZ2V0KCRkYXRhLCAnbmVlZHNOb3RpZmljYXRpb24nLCBG
YWxzZSk7CiAgICAgJHBsYXRmb3JtX2lkID0gYXJyYXlfZ2V0KCRkYXRhLCAncGxhdGZvcm0nKTsK
ICAgICAkdGVzdF9pZCA9IGFycmF5X2dldCgkZGF0YSwgJ3Rlc3QnKTsKICAgICAkcmV2aXNpb25f
c2V0X2xpc3QgPSBhcnJheV9nZXQoJGRhdGEsICdyZXZpc2lvblNldHMnKTsKQEAgLTg1LDcgKzg2
LDcgQEAgZnVuY3Rpb24gbWFpbigpCiAgICAgaWYgKCR0YXNrX25hbWUpCiAgICAgICAgICR0YXNr
X2lkID0gJGRiLT5pbnNlcnRfcm93KCdhbmFseXNpc190YXNrcycsICd0YXNrJywgYXJyYXkoJ25h
bWUnID0+ICR0YXNrX25hbWUsICdhdXRob3InID0+ICRhdXRob3IpKTsKIAotICAgICRncm91cF9p
ZCA9IGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9yZXF1ZXN0cygkZGIsICRjb21taXRfc2V0
cywgJHRhc2tfaWQsICRuYW1lLCAkYXV0aG9yLCAkdHJpZ2dlcmFibGVfaWQsICRwbGF0Zm9ybV9p
ZCwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50KTsKKyAgICAkZ3JvdXBfaWQgPSBjcmVhdGVf
dGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lk
LCAkbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lk
LCAkcmVwZXRpdGlvbl9jb3VudCwgJG5lZWRzX25vdGlmaWNhdGlvbik7CiAKICAgICAkZGItPmNv
bW1pdF90cmFuc2FjdGlvbigpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocCBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAu
cGhwCmluZGV4IGRiMWVkMzgzOTJhNTcyMDFjYzA3NjUyOGU0OGE0OTY4ZDIwZTllZTguLjE0NjRm
NWMwYWU0ZmU5NmE1ODQwMGY5YjExMTc5ZDMwNGQ2M2RjZGQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAu
cGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkv
dXBkYXRlLXRlc3QtZ3JvdXAucGhwCkBAIC0zLDcgKzMsOCBAQAogcmVxdWlyZV9vbmNlKCcuLi9p
bmNsdWRlL2pzb24taGVhZGVyLnBocCcpOwogCiBmdW5jdGlvbiBtYWluKCkgewotICAgICRkYXRh
ID0gZW5zdXJlX3ByaXZpbGVnZWRfYXBpX2RhdGFfYW5kX3Rva2VuKCk7CisgICAgJGRiID0gY29u
bmVjdCgpOworICAgICRkYXRhID0gZW5zdXJlX3ByaXZpbGVnZWRfYXBpX2RhdGFfYW5kX3Rva2Vu
X29yX3NsYXZlKCRkYik7CiAKICAgICAkdGVzdF9ncm91cF9pZCA9IGFycmF5X2dldCgkZGF0YSwg
J2dyb3VwJyk7CiAgICAgaWYgKCEkdGVzdF9ncm91cF9pZCkKQEAgLTE3LDEwICsxOCwxMSBAQCBm
dW5jdGlvbiBtYWluKCkgewogICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdoaWRkZW4nLCAkZGF0
YSkpCiAgICAgICAgICR2YWx1ZXNbJ2hpZGRlbiddID0gRGF0YWJhc2U6OnRvX2RhdGFiYXNlX2Jv
b2xlYW4oJGRhdGFbJ2hpZGRlbiddKTsKIAorICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCduZWVk
c05vdGlmaWNhdGlvbicsICRkYXRhKSkKKyAgICAgICAgJHZhbHVlc1snbmVlZHNfbm90aWZpY2F0
aW9uJ10gPSBEYXRhYmFzZTo6dG9fZGF0YWJhc2VfYm9vbGVhbigkZGF0YVsnbmVlZHNOb3RpZmlj
YXRpb24nXSk7CisKICAgICBpZiAoISR2YWx1ZXMpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcign
Tm90aGluZ1RvVXBkYXRlJyk7Ci0KLSAgICAkZGIgPSBjb25uZWN0KCk7CiAgICAgJGRiLT5iZWdp
bl90cmFuc2FjdGlvbigpOwogCiAgICAgaWYgKCEkZGItPnVwZGF0ZV9yb3coJ2FuYWx5c2lzX3Rl
c3RfZ3JvdXBzJywgJ3Rlc3Rncm91cCcsIGFycmF5KCdpZCcgPT4gJHRlc3RfZ3JvdXBfaWQpLCAk
dmFsdWVzKSkgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmln
dXJhdGlvbi10ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggNThlYmJhYWRjOGNlNTYyN2RmMDYyNmRl
ODAzMDk5Mzk0ZTIzN2I4MC4uMmEyYjg2N2Y1ZmIzNjIyOGY1ZDhiYTYwNTAxNjg4NzAyODliMzRm
NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25l
bnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWNvbmZpZ3VyYXRp
b24tdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEN1c3RvbUNvbmZp
Z3VyYXRpb25UZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAgICAgICAgIGNv
bnN0IGNvbW1pdFNldHMgPSBjb25maWd1cmF0b3IuY29tbWl0U2V0cygpOwogICAgICAgICBjb25z
dCBwbGF0Zm9ybSA9IGNvbmZpZ3VyYXRvci5wbGF0Zm9ybSgpOwogICAgICAgICBjb25zdCB0ZXN0
ID0gY29uZmlndXJhdG9yLnRlc3RzKClbMF07IC8vIEZJWE1FOiBBZGQgdGhlIHN1cHBvcnQgZm9y
IHNwZWNpZnlpbmcgbXVsdGlwbGUgdGVzdHMuCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24o
J3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRpb25Db3VudCwgdGVzdEdyb3VwTmFtZSwgY29t
bWl0U2V0cywgcGxhdGZvcm0sIHRlc3QsIHRhc2tOYW1lKTsKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCB0ZXN0R3JvdXBO
YW1lLCBjb21taXRTZXRzLCBwbGF0Zm9ybSwgdGVzdCwgdGFza05hbWUsIHRoaXMuX25vdGlmeU9u
Q29tcGxldGlvbik7CiAgICAgfQogCiAgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpCmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3Vz
dG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzCmluZGV4
IDUzZWY3ZjdmNTc3MzgzYWRjYjJlNmMyM2FjODA2MTVjN2Y4NGNiMWQuLjIwNDQxYzExOGIzZDll
ZDE1OWFhOWQ3ZDdjZGZkOTc5ZDUyMTU5NTEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3Jt
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9j
dXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0yNSw3ICsyNSw3IEBAIGNsYXNzIEN1
c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKIAogICAgIHN0
YXJ0VGVzdGluZygpCiAgICAgewotICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzdGFydFRl
c3RpbmcnLCB0aGlzLl9yZXBldGl0aW9uQ291bnQsIHRoaXMuX25hbWUsIHRoaXMuX2NvbXB1dGVD
b21taXRTZXRNYXAoKSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGlu
ZycsIHRoaXMuX3JlcGV0aXRpb25Db3VudCwgdGhpcy5fbmFtZSwgdGhpcy5fY29tcHV0ZUNvbW1p
dFNldE1hcCgpLCB0aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24pOwogICAgIH0KIAogICAgIGRpZENv
bnN0cnVjdFNoYWRvd1RyZWUoKQpAQCAtMjg2LDYgKzI4NiwxMCBAQCBjbGFzcyBDdXN0b21pemFi
bGVUZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAgICAgICAgICAgICAgICAg
Y29sb3I6ICMzMzM7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgICNjdXN0b21pemUtbGlu
ay1jb250YWluZXIgeworICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjRyZW07CisgICAg
ICAgICAgICB9CisKICAgICAgICAgICAgICNjdXN0b20tdGFibGU6bm90KDplbXB0eSkgewogICAg
ICAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwOwogICAgICAgICAgICAgfQpAQCAtMzIwLDYgKzMy
NCwxMCBAQCBjbGFzcyBDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3Vw
Rm9ybSB7CiAgICAgICAgICAgICAjY3VzdG9tLXRhYmxlIHRoIHsKICAgICAgICAgICAgICAgICB0
ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICNub3RpZnkt
b24tY29tcGxldGlvbi1jaGVja2JveCB7CisgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAu
NHJlbTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGA7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91
cC1mb3JtLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L3Rlc3QtZ3JvdXAtZm9ybS5qcwppbmRleCBjNDRiNjZmYTA1ZDBhNjI0MjI3ZjZiYWM1MzkwMWVj
NzQ4NDBiNGQ1Li5hNDNlZGYzNTA4YmNmMDc0NjI1ZGI5OTY0ZjYwNGRlMTgwODI5NjRmIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVz
dC1ncm91cC1mb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
Y29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMKQEAgLTUsNiArNSw3IEBAIGNsYXNzIFRlc3RH
cm91cEZvcm0gZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICB7CiAgICAgICAgIHN1cGVyKG5h
bWUgfHwgJ3Rlc3QtZ3JvdXAtZm9ybScpOwogICAgICAgICB0aGlzLl9yZXBldGl0aW9uQ291bnQg
PSA0OworICAgICAgICB0aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24gPSB0cnVlOwogICAgIH0KIAog
ICAgIHNldFJlcGV0aXRpb25Db3VudChjb3VudCkKQEAgLTE4LDEzICsxOSwxNSBAQCBjbGFzcyBU
ZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIGNvbnN0IHJlcGV0
aXRpb25Db3VudFNlbGVjdCA9IHRoaXMuY29udGVudCgncmVwZXRpdGlvbi1jb3VudCcpOwogICAg
ICAgICByZXBldGl0aW9uQ291bnRTZWxlY3Qub25jaGFuZ2UgPSAoKSA9PiB7CiAgICAgICAgICAg
ICB0aGlzLl9yZXBldGl0aW9uQ291bnQgPSByZXBldGl0aW9uQ291bnRTZWxlY3QudmFsdWU7Ci0g
ICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgY29uc3Qgbm90aWZ5T25Db21wbGV0aW9uQ2hl
Y2tCb3ggPSB0aGlzLmNvbnRlbnQoJ25vdGlmeS1vbi1jb21wbGV0aW9uLWNoZWNrYm94Jyk7Cisg
ICAgICAgIG5vdGlmeU9uQ29tcGxldGlvbkNoZWNrQm94Lm9uY2hhbmdlID0gKCkgPT4gdGhpcy5f
bm90aWZ5T25Db21wbGV0aW9uID0gbm90aWZ5T25Db21wbGV0aW9uQ2hlY2tCb3guY2hlY2tlZDsK
ICAgICAgICAgdGhpcy5jb250ZW50KCdmb3JtJykub25zdWJtaXQgPSB0aGlzLmNyZWF0ZUV2ZW50
SGFuZGxlcigoKSA9PiB0aGlzLnN0YXJ0VGVzdGluZygpKTsKICAgICB9CiAKICAgICBzdGFydFRl
c3RpbmcoKQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5n
JywgdGhpcy5fcmVwZXRpdGlvbkNvdW50KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbign
c3RhcnRUZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCB0aGlzLl9ub3RpZnlPbkNvbXBs
ZXRpb24pOwogICAgIH0KIAogICAgIHN0YXRpYyBodG1sVGVtcGxhdGUoKQpAQCAtMzgsNiArNDEs
MTEgQEAgY2xhc3MgVGVzdEdyb3VwRm9ybSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAg
ICAgICAgOmhvc3QgewogICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAjbm90aWZ5LW9uLWNvbXBsZXRpb24tY2hlY2tib3ggeworICAg
ICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07CisgICAgICAgICAgICAgICAgd2lkdGg6
IDFyZW07CisgICAgICAgICAgICB9CiAgICAgICAgIGA7CiAgICAgfQogCkBAIC01OCw2ICs2Niw3
IEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAg
ICAgICAgICA8b3B0aW9uPjEwPC9vcHRpb24+CiAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAg
ICAgICAgIGl0ZXJhdGlvbnMgcGVyIHNldAorICAgICAgICAgICAgPGlucHV0IGlkPSJub3RpZnkt
b24tY29tcGxldGlvbi1jaGVja2JveCIgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQvPk5vdGlmeSBv
biBjb21wbGV0aW9uCiAgICAgICAgIGA7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1bHRzLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5q
cwppbmRleCBkMDQ4YmVlZDZkMmEwY2ZmZDkxMTZmOTJkYTkyMmQ2YTBhZjhhOTUyLi4yNTk1NTNj
Y2JiNDFlMWUxZDVlODhmM2Y1YWUwMGEzYjBlYTk0YWJhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1bHRzLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3Vs
dHMuanMKQEAgLTg0LDcgKzg0LDcgQEAgY2xhc3MgQW5hbHlzaXNSZXN1bHRzIHsKICAgICBzdGF0
aWMgZmV0Y2godGFza0lkKQogICAgIHsKICAgICAgICAgdGFza0lkID0gcGFyc2VJbnQodGFza0lk
KTsKLSAgICAgICAgcmV0dXJuIFJlbW90ZUFQSS5nZXRKU09OV2l0aFN0YXR1cyhgLi4vYXBpL21l
YXN1cmVtZW50LXNldD9hbmFseXNpc1Rhc2s9JHt0YXNrSWR9YCkudGhlbihmdW5jdGlvbiAocmVz
cG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIFJlbW90ZUFQSS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9tZWFzdXJlbWVudC1zZXQ/YW5hbHlzaXNUYXNrPSR7dGFza0lkfWApLnRoZW4oZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CiAKICAgICAgICAgICAgIEluc3RydW1lbnRhdGlvbi5zdGFydE1lYXN1cmlu
Z1RpbWUoJ0FuYWx5c2lzUmVzdWx0cycsICdmZXRjaCcpOwogCkBAIC0xMTYsMyArMTE2LDggQEAg
Y2xhc3MgQW5hbHlzaXNSZXN1bHRzVmlldyB7CiAgICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHRz
LmZpbmRSZXN1bHQoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgdGhpcy5fbWV0cmljLmlkKCkpOwog
ICAgIH0KIH0KKworCitpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHsKKyAgICBt
b2R1bGUuZXhwb3J0cy5BbmFseXNpc1Jlc3VsdHMgPSBBbmFseXNpc1Jlc3VsdHM7Cit9ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMKaW5kZXggNWRiNDUyNDI4
OTVlMmM0YTFlMTQ0YjlmYjM0MTUzYjRhODMzMTllOS4uZGJiN2MyZTA5MGE2NjA3YzUzMGY5ZGQ4
OTk4N2FiMzQ1MjIzMjgwZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzCkBAIC0zMDMsNyArMzAzLDcg
QEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHJl
dHVybiByZXN1bHRzOwogICAgIH0KIAotICAgIHN0YXRpYyBhc3luYyBjcmVhdGUobmFtZSwgc3Rh
cnRQb2ludCwgZW5kUG9pbnQsIHRlc3RHcm91cE5hbWU9bnVsbCwgcmVwZXRpdGlvbkNvdW50PTAp
CisgICAgc3RhdGljIGFzeW5jIGNyZWF0ZShuYW1lLCBzdGFydFBvaW50LCBlbmRQb2ludCwgdGVz
dEdyb3VwTmFtZT1udWxsLCByZXBldGl0aW9uQ291bnQ9MCwgbm90aWZ5T25Db21wbGV0aW9uPWZh
bHNlKQogICAgIHsKICAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHtuYW1lLCBzdGFydFJ1bjog
c3RhcnRQb2ludC5pZCwgZW5kUnVuOiBlbmRQb2ludC5pZH07CiAgICAgICAgIGlmICh0ZXN0R3Jv
dXBOYW1lKSB7CkBAIC0zMTEsNiArMzExLDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMg
TGFiZWxlZE9iamVjdCB7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzWydyZXZpc2lvblNldHMnXSA9
IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9tQ29tbWl0U2V0cyhbc3RhcnRQb2ludC5jb21taXRT
ZXQoKSwgZW5kUG9pbnQuY29tbWl0U2V0KCldKTsKICAgICAgICAgICAgIHBhcmFtZXRlcnNbJ3Jl
cGV0aXRpb25Db3VudCddID0gcmVwZXRpdGlvbkNvdW50OwogICAgICAgICAgICAgcGFyYW1ldGVy
c1sndGVzdEdyb3VwTmFtZSddID0gdGVzdEdyb3VwTmFtZTsKKyAgICAgICAgICAgIHBhcmFtZXRl
cnNbJ25lZWRzTm90aWZpY2F0aW9uJ10gPSBub3RpZnlPbkNvbXBsZXRpb247CiAgICAgICAgIH0K
ICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHBhcmFtZXRlcnMpOwogICAgICAgICByZXR1cm4gQW5h
bHlzaXNUYXNrLmZldGNoQnlJZChyZXNwb25zZS50YXNrSWQsIHRydWUpOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMK
aW5kZXggMDMxN2UwNWE5NzllYTcyY2VjMDZhMGQ4MjBmZDdlODFhYjQyMjZjNC4uNDllYzU3YmFk
Y2RiYjJlMzg5ODdkNzg4NGJjZjAzZGFlMTExNTUwZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCkBAIC05LDYg
KzksNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAg
dGhpcy5fYXV0aG9yTmFtZSA9IG9iamVjdC5hdXRob3I7CiAgICAgICAgIHRoaXMuX2NyZWF0ZWRB
dCA9IG5ldyBEYXRlKG9iamVjdC5jcmVhdGVkQXQpOwogICAgICAgICB0aGlzLl9pc0hpZGRlbiA9
IG9iamVjdC5oaWRkZW47CisgICAgICAgIHRoaXMuX25lZWRzTm90aWZpY2F0aW9uID0gb2JqZWN0
Lm5lZWRzTm90aWZpY2F0aW9uOwogICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RzID0gW107CiAg
ICAgICAgIHRoaXMuX29yZGVyQnVpbGRSZXF1ZXN0c0xhemlseSA9IG5ldyBMYXppbHlFdmFsdWF0
ZWRGdW5jdGlvbigoLi4uYnVpbGRSZXF1ZXN0cykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGJ1
aWxkUmVxdWVzdHMuc29ydCgoYSwgYikgPT4gYS5vcmRlcigpIC0gYi5vcmRlcigpKTsKQEAgLTMw
LDEyICszMSwxNSBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcGxhdGZvcm0gPT0gb2JqZWN0LnBsYXRmb3JtKTsK
IAogICAgICAgICB0aGlzLl9pc0hpZGRlbiA9IG9iamVjdC5oaWRkZW47CisgICAgICAgIHRoaXMu
X25lZWRzTm90aWZpY2F0aW9uID0gb2JqZWN0Lm5lZWRzTm90aWZpY2F0aW9uOwogICAgIH0KIAog
ICAgIHRhc2soKSB7IHJldHVybiBBbmFseXNpc1Rhc2suZmluZEJ5SWQodGhpcy5fdGFza0lkKTsg
fQogICAgIGNyZWF0ZWRBdCgpIHsgcmV0dXJuIHRoaXMuX2NyZWF0ZWRBdDsgfQogICAgIGlzSGlk
ZGVuKCkgeyByZXR1cm4gdGhpcy5faXNIaWRkZW47IH0KICAgICBidWlsZFJlcXVlc3RzKCkgeyBy
ZXR1cm4gdGhpcy5fYnVpbGRSZXF1ZXN0czsgfQorICAgIG5lZWRzTm90aWZpY2F0aW9uKCkgeyBy
ZXR1cm4gdGhpcy5fbmVlZHNOb3RpZmljYXRpb247IH0KKyAgICBhdXRob3IoKSB7IHJldHVybiB0
aGlzLl9hdXRob3JOYW1lOyB9CiAgICAgYWRkQnVpbGRSZXF1ZXN0KHJlcXVlc3QpCiAgICAgewog
ICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RzLnB1c2gocmVxdWVzdCk7CkBAIC0xODUsMTEgKzE4
OSwyMiBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAg
fSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9y
bSwgdGVzdCwgZ3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMpCisgICAgYXN5
bmMgZGlkU2VuZE5vdGlmaWNhdGlvbigpCisgICAgeworICAgICAgICBjb25zdCBpZCA9IHRoaXMu
aWQoKTsKKyAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRl
c3QtZ3JvdXAnLCB7CisgICAgICAgICAgICBncm91cDogaWQsCisgICAgICAgICAgICBuZWVkc05v
dGlmaWNhdGlvbjogZmFsc2UKKyAgICAgICAgfSk7CisgICAgICAgIGNvbnN0IGRhdGEgPSBhd2Fp
dCBUZXN0R3JvdXAuY2FjaGVkRmV0Y2goYC9hcGkvdGVzdC1ncm91cHMvJHtpZH1gLCB7fSwgdHJ1
ZSk7CisgICAgICAgIHJldHVybiBUZXN0R3JvdXAuX2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVz
dEdyb3VwcyhkYXRhKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY3JlYXRlV2l0aFRhc2sodGFza05h
bWUsIHBsYXRmb3JtLCB0ZXN0LCBncm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0
cywgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29t
bWl0U2V0cy5sZW5ndGggPT0gMik7CiAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IENvbW1p
dFNldC5yZXZpc2lvblNldHNGcm9tQ29tbWl0U2V0cyhjb21taXRTZXRzKTsKLSAgICAgICAgY29u
c3QgcGFyYW1zID0ge3Rhc2tOYW1lLCBuYW1lOiBncm91cE5hbWUsIHBsYXRmb3JtOiBwbGF0Zm9y
bS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCksIHJlcGV0aXRpb25Db3VudCwgcmV2aXNpb25TZXRzfTsK
KyAgICAgICAgY29uc3QgcGFyYW1zID0ge3Rhc2tOYW1lLCBuYW1lOiBncm91cE5hbWUsIHBsYXRm
b3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCksIHJlcGV0aXRpb25Db3VudCwgcmV2
aXNpb25TZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogISFub3RpZnlPbkNvbXBsZXRpb259OwogICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LCBwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKICAgICAgICAgICAgIHJldHVybiBBbmFseXNpc1Rh
c2suZmV0Y2hCeUlkKGRhdGFbJ3Rhc2tJZCddLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGFz
aykgPT4gewpAQCAtMTk3LDE3ICsyMTIsMTcgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFi
ZWxlZE9iamVjdCB7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHN0YXRpYyBjcmVhdGVXaXRo
Q3VzdG9tQ29uZmlndXJhdGlvbih0YXNrLCBwbGF0Zm9ybSwgdGVzdCwgZ3JvdXBOYW1lLCByZXBl
dGl0aW9uQ291bnQsIGNvbW1pdFNldHMpCisgICAgc3RhdGljIGNyZWF0ZVdpdGhDdXN0b21Db25m
aWd1cmF0aW9uKHRhc2ssIHBsYXRmb3JtLCB0ZXN0LCBncm91cE5hbWUsIHJlcGV0aXRpb25Db3Vu
dCwgY29tbWl0U2V0cywgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7CiAgICAgICAgIGNvbnN0IHJldmlzaW9u
U2V0cyA9IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9tQ29tbWl0U2V0cyhjb21taXRTZXRzKTsK
LSAgICAgICAgY29uc3QgcGFyYW1zID0ge3Rhc2s6IHRhc2suaWQoKSwgbmFtZTogZ3JvdXBOYW1l
LCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKSwgdGVzdDogdGVzdC5pZCgpLCByZXBldGl0aW9uQ291
bnQsIHJldmlzaW9uU2V0c307CisgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrOiB0YXNrLmlk
KCksIG5hbWU6IGdyb3VwTmFtZSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCksIHRlc3Q6IHRlc3Qu
aWQoKSwgcmVwZXRpdGlvbkNvdW50LCByZXZpc2lvblNldHMsIG5lZWRzTm90aWZpY2F0aW9uOiAh
IW5vdGlmeU9uQ29tcGxldGlvbn07CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBhcmFtcykudGhlbigoZGF0YSkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hGb3JUYXNrKGRhdGFbJ3Rhc2tJZCddLCB0cnVlKTsK
ICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3Jv
dXBzKHRhc2ssIG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cykKKyAgICBzdGF0aWMg
Y3JlYXRlQW5kUmVmZXRjaFRlc3RHcm91cHModGFzaywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBj
b21taXRTZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewogICAgICAgICBjb25zb2xlLmFz
c2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRz
ID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKGNvbW1pdFNldHMpOwpAQCAt
MjE2LDYgKzIzMSw3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3Qgewog
ICAgICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAgIHJlcGV0aXRpb25Db3VudDogcmVw
ZXRpdGlvbkNvdW50LAogICAgICAgICAgICAgcmV2aXNpb25TZXRzOiByZXZpc2lvblNldHMsCisg
ICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogISFub3RpZnlPbkNvbXBsZXRpb24sCiAgICAg
ICAgIH0pLnRoZW4oKGRhdGEpID0+IHRoaXMuZmV0Y2hGb3JUYXNrKGRhdGFbJ3Rhc2tJZCddLCB0
cnVlKSk7CiAgICAgfQogCkBAIC0yMjksNiArMjQ1LDExIEBAIGNsYXNzIFRlc3RHcm91cCBleHRl
bmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICByZXR1cm4gdGhpcy5jYWNoZWRGZXRjaCgnL2Fw
aS90ZXN0LWdyb3VwcycsIHt0YXNrOiB0YXNrSWR9LCBpZ25vcmVDYWNoZSkudGhlbih0aGlzLl9j
cmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMuYmluZCh0aGlzKSk7CiAgICAgfQogCisg
ICAgc3RhdGljIGZldGNoQWxsV2l0aFBlbmRpbmdOb3RpZmljYXRpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuY2FjaGVkRmV0Y2goJy9hcGkvdGVzdC1ncm91cHMvbm90aWZpY2F0aW9u
cy1wZW5kaW5nJywgbnVsbCwgdHJ1ZSkudGhlbih0aGlzLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hl
ZFRlc3RHcm91cHMuYmluZCh0aGlzKSk7CisgICAgfQorCiAgICAgc3RhdGljIF9jcmVhdGVNb2Rl
bHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMoZGF0YSkKICAgICB7CiAgICAgICAgIHZhciB0ZXN0R3Jv
dXBzID0gZGF0YVsndGVzdEdyb3VwcyddLm1hcChmdW5jdGlvbiAocm93KSB7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2st
cGFnZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlz
aXMtdGFzay1wYWdlLmpzCmluZGV4IDVhYWYwNjhmNTRiNTJkYTM5ZWJlMGEzMjczY2Q5MjEyMTNk
NmM2OWQuLjE0ZTNhNzI5YWMwMWFlZjRmMDg5OGI2MjllNTg4NmZmNTNiN2EzMTggMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFz
ay1wYWdlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMv
YW5hbHlzaXMtdGFzay1wYWdlLmpzCkBAIC0yNCw4ICsyNCw4IEBAIGNsYXNzIEFuYWx5c2lzVGFz
a0NoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogCiAgICAgZGlkQ29uc3RydWN0U2hh
ZG93VHJlZSgpCiAgICAgewotICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlv
bignc3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCwgbmFtZSwgY29tbWl0U2V0TWFwKSA9
PiB7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCduZXdUZXN0R3JvdXAnLCBuYW1l
LCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldE1hcCk7CisgICAgICAgIHRoaXMucGFydCgnZm9y
bScpLmxpc3RlblRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50LCBuYW1l
LCBjb21taXRTZXRNYXAsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4geworICAgICAgICAgICAgdGhp
cy5kaXNwYXRjaEFjdGlvbignbmV3VGVzdEdyb3VwJywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBj
b21taXRTZXRNYXAsIG5vdGlmeU9uQ29tcGxldGlvbik7CiAgICAgICAgIH0pOwogICAgIH0KIApA
QCAtMTA2LDggKzEwNiw4IEBAIGNsYXNzIEFuYWx5c2lzVGFza1Jlc3VsdHNQYW5lIGV4dGVuZHMg
Q29tcG9uZW50QmFzZSB7CiAgICAgICAgIHJlcG9zaXRvcnlQaWNrZXIuYWRkRXZlbnRMaXN0ZW5l
cignY2hhbmdlJywgKCkgPT4gdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKSk7CiAgICAgICAgIHRoaXMu
cGFydCgnY29tbWl0LXZpZXdlcicpLnNldFNob3dSZXBvc2l0b3J5TmFtZShmYWxzZSk7CiAKLSAg
ICAgICAgdGhpcy5wYXJ0KCdmb3JtJykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChy
ZXBldGl0aW9uQ291bnQsIG5hbWUsIGNvbW1pdFNldE1hcCkgPT4gewotICAgICAgICAgICAgdGhp
cy5kaXNwYXRjaEFjdGlvbignbmV3VGVzdEdyb3VwJywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBj
b21taXRTZXRNYXApOworICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlvbign
c3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCwgbmFtZSwgY29tbWl0U2V0TWFwLCBub3Rp
ZnlPbkNvbXBsZXRpb24pID0+IHsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ25l
d1Rlc3RHcm91cCcsIG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFwLCBub3RpZnlP
bkNvbXBsZXRpb24pOwogICAgICAgICB9KTsKICAgICB9CiAKQEAgLTI2NywxNCArMjY3LDE0IEBA
IGNsYXNzIEFuYWx5c2lzVGFza1Rlc3RHcm91cFBhbmUgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsK
ICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKICAgICB7CiAgICAgICAgIHRoaXMuY29udGVu
dCgnaGlkZS1idXR0b24nKS5vbmNsaWNrID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndG9n
Z2xlVGVzdEdyb3VwVmlzaWJpbGl0eScsIHRoaXMuX2N1cnJlbnRUZXN0R3JvdXApOwotICAgICAg
ICB0aGlzLnBhcnQoJ3JldHJ5LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywg
KHJlcGV0aXRpb25Db3VudCkgPT4gewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbign
cmV0cnlUZXN0R3JvdXAnLCB0aGlzLl9jdXJyZW50VGVzdEdyb3VwLCByZXBldGl0aW9uQ291bnQp
OworICAgICAgICB0aGlzLnBhcnQoJ3JldHJ5LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRU
ZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKSA9PiB7CisgICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXRyeVRlc3RHcm91cCcsIHRoaXMuX2N1cnJl
bnRUZXN0R3JvdXAsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICAg
ICAgfSk7Ci0gICAgICAgIHRoaXMucGFydCgnYmlzZWN0LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbign
c3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCkgPT4geworICAgICAgICB0aGlzLnBhcnQo
J2Jpc2VjdC1mb3JtJykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9u
Q291bnQsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4gewogICAgICAgICAgICAgY29uc3QgYmlzZWN0
aW5nQ29tbWl0U2V0ID0gdGhpcy5fYmlzZWN0aW5nQ29tbWl0U2V0QnlUZXN0R3JvdXAuZ2V0KHRo
aXMuX2N1cnJlbnRUZXN0R3JvdXApOwogICAgICAgICAgICAgY29uc3QgW29uZUNvbW1pdFNldCwg
YW5vdGhlckNvbW1pdFNldF0gPSB0aGlzLl9jdXJyZW50VGVzdEdyb3VwLnJlcXVlc3RlZENvbW1p
dFNldHMoKTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldHMgPSBbb25lQ29tbWl0U2V0LCBi
aXNlY3RpbmdDb21taXRTZXQsIGFub3RoZXJDb21taXRTZXRdOwotICAgICAgICAgICAgdGhpcy5k
aXNwYXRjaEFjdGlvbignYmlzZWN0VGVzdEdyb3VwJywgdGhpcy5fY3VycmVudFRlc3RHcm91cCwg
Y29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50KTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hB
Y3Rpb24oJ2Jpc2VjdFRlc3RHcm91cCcsIHRoaXMuX2N1cnJlbnRUZXN0R3JvdXAsIGNvbW1pdFNl
dHMsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICAgICAgfSk7CiAg
ICAgfQogCkBAIC01NDMsOCArNTQzLDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRz
IFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgIGdyb3VwUGFuZS5saXN0ZW5Ub0FjdGlvbignc2hv
d0hpZGRlblRlc3RHcm91cHMnLCAoKSA9PiB0aGlzLl9zaG93QWxsVGVzdEdyb3VwcygpKTsKICAg
ICAgICAgZ3JvdXBQYW5lLmxpc3RlblRvQWN0aW9uKCdyZW5hbWVUZXN0R3JvdXAnLCAodGVzdEdy
b3VwLCBuZXdOYW1lKSA9PiB0aGlzLl91cGRhdGVUZXN0R3JvdXBOYW1lKHRlc3RHcm91cCwgbmV3
TmFtZSkpOwogICAgICAgICBncm91cFBhbmUubGlzdGVuVG9BY3Rpb24oJ3RvZ2dsZVRlc3RHcm91
cFZpc2liaWxpdHknLCAodGVzdEdyb3VwKSA9PiB0aGlzLl9oaWRlQ3VycmVudFRlc3RHcm91cCh0
ZXN0R3JvdXApKTsKLSAgICAgICAgZ3JvdXBQYW5lLmxpc3RlblRvQWN0aW9uKCdyZXRyeVRlc3RH
cm91cCcsICh0ZXN0R3JvdXAsIHJlcGV0aXRpb25Db3VudCkgPT4gdGhpcy5fcmV0cnlDdXJyZW50
VGVzdEdyb3VwKHRlc3RHcm91cCwgcmVwZXRpdGlvbkNvdW50KSk7Ci0gICAgICAgIGdyb3VwUGFu
ZS5saXN0ZW5Ub0FjdGlvbignYmlzZWN0VGVzdEdyb3VwJywgKHRlc3RHcm91cCwgY29tbWl0U2V0
cywgcmVwZXRpdGlvbkNvdW50KSA9PiB0aGlzLl9iaXNlY3RDdXJyZW50VGVzdEdyb3VwKHRlc3RH
cm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50KSk7CisgICAgICAgIGdyb3VwUGFuZS5s
aXN0ZW5Ub0FjdGlvbigncmV0cnlUZXN0R3JvdXAnLCAodGVzdEdyb3VwLCByZXBldGl0aW9uQ291
bnQsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4gdGhpcy5fcmV0cnlDdXJyZW50VGVzdEdyb3VwKHRl
c3RHcm91cCwgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRpb24pKTsKKyAgICAgICAg
Z3JvdXBQYW5lLmxpc3RlblRvQWN0aW9uKCdiaXNlY3RUZXN0R3JvdXAnLCAodGVzdEdyb3VwLCBj
b21taXRTZXRzLCByZXBldGl0aW9uQ291bnQsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4gdGhpcy5f
YmlzZWN0Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25D
b3VudCwgbm90aWZ5T25Db21wbGV0aW9uKSk7CiAKICAgICAgICAgdGhpcy5wYXJ0KCdjYXVzZS1s
aXN0JykubGlzdGVuVG9BY3Rpb24oJ2FkZEl0ZW0nLCAocmVwb3NpdG9yeSwgcmV2aXNpb24pID0+
IHsKICAgICAgICAgICAgIHRoaXMuX2Fzc29jaWF0ZUNvbW1pdCgnY2F1c2UnLCByZXBvc2l0b3J5
LCByZXZpc2lvbik7CkBAIC04MTksMTkgKzgxOSwxOSBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdl
IGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgX3Jl
dHJ5Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIHJlcGV0aXRpb25Db3VudCkKKyAgICBfcmV0
cnlDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNv
bXBsZXRpb24pCiAgICAgewogICAgICAgICBjb25zdCBleGlzdGluZ05hbWVzID0gKHRoaXMuX3Rl
c3RHcm91cHMgfHwgW10pLm1hcCgoZ3JvdXApID0+IGdyb3VwLm5hbWUoKSk7CiAgICAgICAgIGNv
bnN0IG5ld05hbWUgPSBDb21taXRTZXQuY3JlYXRlTmFtZVdpdGhvdXRDb2xsaXNpb24odGVzdEdy
b3VwLm5hbWUoKSwgbmV3IFNldChleGlzdGluZ05hbWVzKSk7CiAgICAgICAgIGNvbnN0IGNvbW1p
dFNldExpc3QgPSB0ZXN0R3JvdXAucmVxdWVzdGVkQ29tbWl0U2V0cygpOwogICAgICAgICBjb25z
dCBwbGF0Zm9ybSA9IHRoaXMuX3Rhc2sucGxhdGZvcm0oKSB8fCB0ZXN0R3JvdXAucGxhdGZvcm0o
KTsKLSAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlv
bih0aGlzLl90YXNrLCBwbGF0Zm9ybSwgdGVzdEdyb3VwLnRlc3QoKSwgbmV3TmFtZSwgcmVwZXRp
dGlvbkNvdW50LCBjb21taXRTZXRMaXN0KQorICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0
ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKHRoaXMuX3Rhc2ssIHBsYXRmb3JtLCB0ZXN0R3JvdXAu
dGVzdCgpLCBuZXdOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldExpc3QsIG5vdGlmeU9u
Q29tcGxldGlvbikKICAgICAgICAgICAgIC50aGVuKHRoaXMuX2RpZEZldGNoVGVzdEdyb3Vwcy5i
aW5kKHRoaXMpLCBmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQg
dG8gY3JlYXRlIGEgbmV3IHRlc3QgZ3JvdXA6ICcgKyBlcnJvcik7CiAgICAgICAgIH0pOwogICAg
IH0KIAotICAgIGFzeW5jIF9iaXNlY3RDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgY29tbWl0
U2V0cywgcmVwZXRpdGlvbkNvdW50KQorICAgIGFzeW5jIF9iaXNlY3RDdXJyZW50VGVzdEdyb3Vw
KHRlc3RHcm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRp
b24pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0ZXN0R3JvdXAudGFzaygpKTsKICAg
ICAgICAgY29uc3QgZXhpc3RpbmdUZXN0R3JvdXBOYW1lcyA9IG5ldyBTZXQoKHRoaXMuX3Rlc3RH
cm91cHMgfHwgW10pLm1hcCgodGVzdEdyb3VwKSA9PiB0ZXN0R3JvdXAubmFtZSgpKSk7CkBAIC04
NDEsNyArODQxLDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVh
ZGluZyB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50Q29tbWl0U2V0ID0gY29tbWl0U2V0c1tp
XTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cE5hbWUgPSBDb21taXRTZXQuY3JlYXRlTmFt
ZVdpdGhvdXRDb2xsaXNpb24oQ29tbWl0U2V0LmRpZmYocHJldmlvdXNDb21taXRTZXQsIGN1cnJl
bnRDb21taXRTZXQpLCBleGlzdGluZ1Rlc3RHcm91cE5hbWVzKTsKICAgICAgICAgICAgIHRyeSB7
Ci0gICAgICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5jcmVh
dGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0ZXN0R3JvdXAudGFzaygpLCB0ZXN0R3JvdXBOYW1lLCBy
ZXBldGl0aW9uQ291bnQsIFtwcmV2aW91c0NvbW1pdFNldCwgY3VycmVudENvbW1pdFNldF0pOwor
ICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuY3JlYXRl
QW5kUmVmZXRjaFRlc3RHcm91cHModGVzdEdyb3VwLnRhc2soKSwgdGVzdEdyb3VwTmFtZSwgcmVw
ZXRpdGlvbkNvdW50LCBbcHJldmlvdXNDb21taXRTZXQsIGN1cnJlbnRDb21taXRTZXRdLCBub3Rp
ZnlPbkNvbXBsZXRpb24pOwogICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2RpZEZldGNoVGVz
dEdyb3Vwcyh0ZXN0R3JvdXBzKTsKICAgICAgICAgICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAg
ICAgICAgICAgICBhbGVydCgnRmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyB0ZXN0IGdyb3VwOiAnICsg
ZXJyb3IpOwpAQCAtODUwLDcgKzg1MCw3IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5k
cyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICB9CiAgICAgfQogCi0gICAgX2NyZWF0ZVRlc3RH
cm91cEFmdGVyVmVyaWZ5aW5nQ29tbWl0U2V0TGlzdCh0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9u
Q291bnQsIGNvbW1pdFNldE1hcCkKKyAgICBfY3JlYXRlVGVzdEdyb3VwQWZ0ZXJWZXJpZnlpbmdD
b21taXRTZXRMaXN0KHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFw
LCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewogICAgICAgICBpZiAodGhpcy5faGFzRHVwbGlj
YXRlVGVzdEdyb3VwTmFtZSh0ZXN0R3JvdXBOYW1lKSkgewogICAgICAgICAgICAgYWxlcnQoYFRo
ZXJlIGlzIGFscmVhZHkgYSB0ZXN0IGdyb3VwIG5hbWVkICIke3Rlc3RHcm91cE5hbWV9ImApOwpA
QCAtODc2LDEzICs4NzYsMTMgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VX
aXRoSGVhZGluZyB7CiAgICAgICAgIGZvciAobGV0IGxhYmVsIGluIGNvbW1pdFNldE1hcCkKICAg
ICAgICAgICAgIGNvbW1pdFNldHMucHVzaChjb21taXRTZXRNYXBbbGFiZWxdKTsKIAotICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRoaXMuX3Rhc2ss
IHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cykKKyAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5jcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0aGlzLl90YXNrLCB0ZXN0
R3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlv
bikKICAgICAgICAgICAgIC50aGVuKHRoaXMuX2RpZEZldGNoVGVzdEdyb3Vwcy5iaW5kKHRoaXMp
LCBmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gY3JlYXRl
IGEgbmV3IHRlc3QgZ3JvdXA6ICcgKyBlcnJvcik7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAg
IF9jcmVhdGVDdXN0b21UZXN0R3JvdXAocmVwZXRpdGlvbkNvdW50LCB0ZXN0R3JvdXBOYW1lLCBj
b21taXRTZXRzLCBwbGF0Zm9ybSwgdGVzdCkKKyAgICBfY3JlYXRlQ3VzdG9tVGVzdEdyb3VwKHJl
cGV0aXRpb25Db3VudCwgdGVzdEdyb3VwTmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRlc3Qs
IG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X3Rhc2suaXNDdXN0b20oKSk7CiAgICAgICAgIGlmICh0aGlzLl9oYXNEdXBsaWNhdGVUZXN0R3Jv
dXBOYW1lKHRlc3RHcm91cE5hbWUpKSB7CkBAIC04OTAsNyArODkwLDcgQEAgY2xhc3MgQW5hbHlz
aXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBUZXN0R3JvdXAuY3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3Vy
YXRpb24odGhpcy5fdGFzaywgcGxhdGZvcm0sIHRlc3QsIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRp
b25Db3VudCwgY29tbWl0U2V0cykKKyAgICAgICAgVGVzdEdyb3VwLmNyZWF0ZVdpdGhDdXN0b21D
b25maWd1cmF0aW9uKHRoaXMuX3Rhc2ssIHBsYXRmb3JtLCB0ZXN0LCB0ZXN0R3JvdXBOYW1lLCBy
ZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICAgICAg
ICAgIC50aGVuKHRoaXMuX2RpZEZldGNoVGVzdEdyb3Vwcy5iaW5kKHRoaXMpLCBmdW5jdGlvbiAo
ZXJyb3IpIHsKICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IHRlc3Qg
Z3JvdXA6ICcgKyBlcnJvcik7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLmpzCmluZGV4IDhjZDdhYTAw
NDdmN2FkZmNjZDZiZmY0MDRmODc0Y2UxMzdmZTMwNzAuLmNkNzQ4ZGViNDljZWUwOThiM2Y0OTZj
YWM4OGQzNTIzZjczZmVmMzAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMKQEAgLTExOSw3ICsxMTksOCBAQCBjbGFz
cyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgfSk7CiAgICAgICAg
IGNvbnN0IGNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2JveCA9IHRoaXMuY29udGVudCgnY3JlYXRl
LXdpdGgtdGVzdC1ncm91cCcpOwogICAgICAgICBjb25zdCByZXBldGl0aW9uQ291bnQgPSB0aGlz
LmNvbnRlbnQoJ2NvbmZpcm0tcmVwZXRpdGlvbicpOwotICAgICAgICBjcmVhdGVXaXRoVGVzdEdy
b3VwQ2hlY2tib3gub25jaGFuZ2UgPSAoKSA9PiByZXBldGl0aW9uQ291bnQuZGlzYWJsZWQgPSAh
Y3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94LmNoZWNrZWQ7CisgICAgICAgIGNvbnN0IG5vdGlm
eU9uQ29tcGxldGlvbiA9IHRoaXMuY29udGVudCgnbm90aWZ5LW9uLWNvbXBsZXRpb24nKTsKKyAg
ICAgICAgY3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94Lm9uY2hhbmdlID0gKCkgPT4gcmVwZXRp
dGlvbkNvdW50LmRpc2FibGVkID0gbm90aWZ5T25Db21wbGV0aW9uLmRpc2FibGVkID0gIWNyZWF0
ZVdpdGhUZXN0R3JvdXBDaGVja2JveC5jaGVja2VkOwogICAgIH0KIAogICAgIHNlcmlhbGl6ZVN0
YXRlKCkKQEAgLTIzNywxMCArMjM4LDExIEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0
UGFuZUJhc2UgewogICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5jb250ZW50KCd0YXNrLW5hbWUn
KS52YWx1ZTsKICAgICAgICAgY29uc3QgY3JlYXRlV2l0aFRlc3RHcm91cCA9IHRoaXMuY29udGVu
dCgnY3JlYXRlLXdpdGgtdGVzdC1ncm91cCcpLmNoZWNrZWQ7CiAgICAgICAgIGNvbnN0IHJlcGV0
aXRpb25Db3VudCA9IHRoaXMuY29udGVudCgnY29uZmlybS1yZXBldGl0aW9uJykudmFsdWU7Cisg
ICAgICAgIGNvbnN0IG5vdGlmeU9uQ29tcGxldGlvbiA9IHRoaXMuY29udGVudCgnbm90aWZ5LW9u
LWNvbXBsZXRpb24nKS5jaGVja2VkOwogCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBjb25z
dCBhbmFseXNpc1Rhc2sgPSBhd2FpdCAoY3JlYXRlV2l0aFRlc3RHcm91cCA/Ci0gICAgICAgICAg
ICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0Nv
bmZpcm0nLCByZXBldGl0aW9uQ291bnQpIDogQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFy
dFBvaW50LCBlbmRQb2ludCkpOworICAgICAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUo
bmFtZSwgc3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywgcmVwZXRpdGlvbkNvdW50LCBu
b3RpZnlPbkNvbXBsZXRpb24pIDogQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFydFBvaW50
LCBlbmRQb2ludCkpOwogICAgICAgICAgICAgbmV3V2luZG93LmxvY2F0aW9uLmhyZWYgPSByb3V0
ZXIudXJsKCdhbmFseXNpcy90YXNrLycgKyBhbmFseXNpc1Rhc2suaWQoKSk7CiAgICAgICAgICAg
ICB0aGlzLmZldGNoQW5hbHlzaXNUYXNrcyh0cnVlKTsKICAgICAgICAgfSBjYXRjaChlcnJvcikg
ewpAQCAtNTgzLDYgKzU4NSw3IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJh
c2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj4xMDwvb3B0
aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGFiZWw+aXRlcmF0aW9uczwvbGFiZWw+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im5vdGlm
eS1vbi1jb21wbGV0aW9uIiBjaGVja2VkPiBOb3RpZnkgb24gY29tcGxldGlvbjwvbGFiZWw+CiAg
ICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+
CiAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY2hhcnQtcGFuZS1maWx0ZXJpbmctb3B0
aW9ucyBwb3BvdmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFn
ZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFu
YWx5c2lzLXRhc2stcGFnZS5qcwppbmRleCBhOWYwODkwYzE5YmVmYjYzMGJmMDdkYmJiNWU1Y2Uz
ZWUyYjM2NWFjLi4zMDFmZDJhMjkwNjUxZDUxMjhjMzUyM2FmNDk4MjBmMjAzYmM2NmEzIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NyZWF0ZS1h
bmFseXNpcy10YXNrLXBhZ2UuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9wYWdlcy9jcmVhdGUtYW5hbHlzaXMtdGFzay1wYWdlLmpzCkBAIC0yMiw5ICsyMiw5IEBA
IGNsYXNzIENyZWF0ZUFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewog
ICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywg
dGhpcy5fY3JlYXRlQW5hbHlzaXNUYXNrV2l0aEdyb3VwLmJpbmQodGhpcykpOwogICAgIH0KIAot
ICAgIF9jcmVhdGVBbmFseXNpc1Rhc2tXaXRoR3JvdXAocmVwZXRpdGlvbkNvdW50LCB0ZXN0R3Jv
dXBOYW1lLCBjb21taXRTZXRzLCBwbGF0Zm9ybSwgdGVzdCwgdGFza05hbWUpCisgICAgX2NyZWF0
ZUFuYWx5c2lzVGFza1dpdGhHcm91cChyZXBldGl0aW9uQ291bnQsIHRlc3RHcm91cE5hbWUsIGNv
bW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0LCB0YXNrTmFtZSwgbm90aWZ5T25Db21wbGV0aW9uKQog
ICAgIHsKLSAgICAgICAgVGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9y
bSwgdGVzdCwgdGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzKS50aGVu
KCh0YXNrKSA9PiB7CisgICAgICAgIFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzayh0YXNrTmFtZSwg
cGxhdGZvcm0sIHRlc3QsIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0
cywgbm90aWZ5T25Db21wbGV0aW9uKS50aGVuKCh0YXNrKSA9PiB7CiAgICAgICAgICAgICBjb25z
dCB1cmwgPSB0aGlzLnJvdXRlcigpLnVybChgYW5hbHlzaXMvdGFzay8ke3Rhc2suaWQoKX1gKTsK
ICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLnJvdXRlcigpLnVybChgYW5hbHlzaXMv
dGFzay8ke3Rhc2suaWQoKX1gKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk0MWZhNzE5MzU5ZTRhMWNhZDQxN2UyZjA3NDFlNmQ1NDNkM2IxMDgK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS10ZXN0LWdyb3Vwcy5qcwpAQCAtMCwwICsxLDg4IEBACisndXNlIHN0cmljdCc7CisKK2Nv
bnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOworY29uc3QgTW9ja0RhdGEgPSByZXF1aXJl
KCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKK2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJl
KCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgcHJlcGFyZVNlcnZlclRlc3Qg
PSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2
ZXJUZXN0OworCitkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKKyAg
ICBwcmVwYXJlU2VydmVyVGVzdCh0aGlzKTsKKworICAgIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3Jv
dXBzL25vdGlmaWNhdGlvbnMtcGVuZGluZycsICgpID0+IHsKKworICAgICAgICBpdCgnc2hvdWxk
IGdpdmUgYW4gZW1wdHkgbGlzdCBpZiB0aGVyZSBpcyBub3QgZXhpc3RpbmcgdGVzdCBncm91cCBh
dCBhbGwnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL25vdGlmaWNh
dGlvbnMtcGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVz
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10p
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG5vdCBpbmNsdWRlIGEgdGVzdCBn
cm91cCB3aXRoICJjYW5jZWxlZCIgc3RhdGUgaW4gYXQgbGVhc3Qgb25lIGJ1aWxkIHJlcXVlc3Qn
LCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShU
ZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0
ZWQnLCAnY2FuY2VsZWQnXSk7CisgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL25vdGlmaWNhdGlv
bnMtcGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywg
W10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOwor
ICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGxpc3QgYWxsIHRlc3QgZ3JvdXBzIHdp
dGggcGVuZGluZyBub3RpZmljYXRpb24nLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVk
JywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOworICAgICAgICAgICAg
Y29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS90ZXN0LWdyb3Vwcy9ub3RpZmljYXRpb25zLXBlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdyb3Vwc1swXTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXAuaWQsIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLnRhc2ssIDUwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUs
ICdzb21lIHRlc3QgZ3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YXV0aG9yLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaGlkZGVu
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAucGxhdGZv
cm0sIDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQw
MiddKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3QgbGlzdCBoaWRkZW4g
dGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlID0g
VGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9j
a0RhdGEoZGF0YWJhc2UsIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAn
Y29tcGxldGVkJ10pOworICAgICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBh
bmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX2hpZGRlbiA9IFRSVUUgV0hFUkUgdGVz
dGdyb3VwX2lkID0gNjAwJyk7CisgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL25vdGlmaWNhdGlv
bnMtcGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywg
W10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOwor
ICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IHRlc3QgZ3JvdXBzIHRo
YXQgaGF2ZSBhdXRob3Igbm90aWZpZWQgYmVmb3JlJywgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBh
d2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFzZSwgWydjb21wbGV0ZWQnLCAnY29tcGxl
dGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnXSk7CisgICAgICAgICAgICBhd2FpdCBkYXRh
YmFzZS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbmVl
ZHNfbm90aWZpY2F0aW9uID0gRkFMU0UgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7CisgICAg
ICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL3Rlc3QtZ3JvdXBzL25vdGlmaWNhdGlvbnMtcGVuZGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICB9KTsKKworICAgICAgICBp
dCgnc2hvdWxkIG5vdCBsaXN0IGEgdGVzdCBncm91cCB0aGF0IGhhcyBzb21lIGluY29tcGxldGVk
IGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZGF0YWJh
c2UgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5h
ZGRNb2NrRGF0YShkYXRhYmFzZSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRl
ZCcsICdydW5uaW5nJ10pOworICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9ub3RpZmljYXRpb25z
LXBlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQt
cm9vdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXVwbG9hZC1yb290LXRlc3RzLmpzCmluZGV4IGFiODM0MGViY2MxYTllZjNkYzE0NmZlZTUyMjI3
MTJkNmEwZGU4NmEuLjZmNjhiMGY5MTZjMmNlNDYzNGVjNzVhYzZjMzNiZDQ5OTAzYmMzZTAgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9h
ZC1yb290LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzCkBAIC02NSw3ICs2NSw3IEBAIGZ1bmN0aW9uIGNy
ZWF0ZVRlc3RHcm91cFdpaFBhdGNoKCkKICAgICAgICAgY29uc3Qgc2V0MiA9IG5ldyBDdXN0b21D
b21taXRTZXQ7CiAgICAgICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwg
JzE5MTYyMicpOwogICAgICAgICBzZXQyLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQs
ICc4MDIyOScpOwotICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNrKCdjdXN0
b20gdGFzaycsIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpLCBz
b21lVGVzdCwgJ3NvbWUgZ3JvdXAnLCAyLCBbc2V0MSwgc2V0Ml0pOworICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNrKCdjdXN0b20gdGFzaycsIFBsYXRmb3JtLmZpbmRCeUlk
KE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpLCBzb21lVGVzdCwgJ3NvbWUgZ3JvdXAnLCAyLCBb
c2V0MSwgc2V0Ml0sIHRydWUpOwogICAgIH0pLnRoZW4oKHRhc2spID0+IHsKICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5maW5kQWxsQnlUYXNrKHRhc2suaWQoKSlbMF07CiAgICAgfSkudGhlbigo
Z3JvdXApID0+IHsKQEAgLTEwNyw3ICsxMDcsNyBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBX
aXRoUGF0Y2hBbmRPd25lZENvbW1pdHMoKQogICAgICAgICBzZXQyLnNldFJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQsICcxOTI3MzYnKTsKICAgICAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRTSkMsICdvd25lZC1qc2MtOTE5MScsIG51bGwsICcxOTI3MzYnKTsKIAot
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNrKCdjdXN0b20gdGFzaycsIFBs
YXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpLCBzb21lVGVzdCwgJ3Nv
bWUgZ3JvdXAnLCAyLCBbc2V0MSwgc2V0Ml0pOworICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNy
ZWF0ZVdpdGhUYXNrKCdjdXN0b20gdGFzaycsIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVQbGF0Zm9ybUlkKCkpLCBzb21lVGVzdCwgJ3NvbWUgZ3JvdXAnLCAyLCBbc2V0MSwgc2V0Ml0s
IHRydWUpOwogICAgIH0pLnRoZW4oKHRhc2spID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5maW5kQWxsQnlUYXNrKHRhc2suaWQoKSlbMF07CiAgICAgfSkudGhlbigoZ3JvdXApID0+IHsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmls
ZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNr
LXRlc3RzLmpzCmluZGV4IGM3YTZkMTc3MWY5YjQyYzRhMmZkMDdmNjcyYTIzZGEyNGRjN2NkODku
LjIwNmRiZjZjYzk3NzNhMWI0ZGRiYmViN2M5NzA4ZWVkZWNlYmFkNGYgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRl
LWFuYWx5c2lzLXRhc2stdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwpA
QCAtNiw2ICs2LDcgQEAgbGV0IE1vY2tEYXRhID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1k
YXRhLmpzJyk7CiBsZXQgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2Vy
dmVyLmpzJyk7CiBjb25zdCBhZGRCdWlsZGVyRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJj
ZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRCdWlsZGVyRm9yUmVwb3J0OwogY29uc3QgcHJl
cGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5q
cycpLnByZXBhcmVTZXJ2ZXJUZXN0OworY29uc3QgYXNzZXJ0VGhyb3dzID0gcmVxdWlyZSgnLi9y
ZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hc3NlcnRUaHJvd3M7CiAKIGNvbnN0IHJl
cG9ydFdpdGhSZXZpc2lvbiA9IFt7CiAgICAgImJ1aWxkTnVtYmVyIjogIjEyNCIsCkBAIC0zNTMs
MTcgKzM1NCwxMCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10
YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICBjb25zdCBvbmVS
ZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAg
IGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2
MjMnfX07CiAKLSAgICAgICAgbGV0IHJhaXNlRXhjZXB0aW9uID0gZmFsc2U7Ci0KLSAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAot
ICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90aGVyUmV2
aXNpb25TZXRdLAotICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwg
ZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwotICAgICAgICB9IGNhdGNoIChlcnJvcikgewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnVHJpZ2dlcmFibGVOb3RGb3VuZEZvclRh
c2snKTsKLSAgICAgICAgICAgIHJhaXNlRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgfQotICAg
ICAgICBhc3NlcnQub2socmFpc2VFeGNlcHRpb24pOworICAgICAgICBhd2FpdCBhc3NlcnRUaHJv
d3MoJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJywgKCkgPT4KKyAgICAgICAgICAgIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdjb25m
aXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAorICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czog
W29uZVJldmlzaW9uU2V0LCBhbm90aGVyUmV2aXNpb25TZXRdLCBuZWVkc05vdGlmaWNhdGlvbjog
dHJ1ZSwKKyAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1
bjogdGVzdFJ1bnNbMV1bJ2lkJ119KSk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0
ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggbm8gdGVzdCBncm91cCB3aGVuIHJlcGV0aXRpb24gY291
bnQgaXMgMCcsIGFzeW5jICgpID0+IHsKQEAgLTQzOSw3ICs0MzMsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2Vk
IGFwaScsIGZ1bgogCiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJl
cGV0aXRpb25Db3VudDogMSwKICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywg
cmV2aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJSZXZpc2lvblNldF0sCi0gICAg
ICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1b
J2lkJ119KTsKKyAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVu
OiB0ZXN0UnVuc1sxXVsnaWQnXSwgbmVlZHNOb3RpZmljYXRpb246IHRydWV9KTsKIAogICAgICAg
ICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNr
SWQnXSk7CiAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKQEAg
LTQ1Niw2ICs0NTAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0Nv
bmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlv
bigpLCB0cnVlKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCk7CiAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwg
Mik7CiAKQEAgLTUxMywxNyArNTA4LDEwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAg
ICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYy
Mid9fTsKICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHty
ZXZpc2lvbjogJzE5MTYyMyd9fTsKIAotICAgICAgICBsZXQgcmFpc2VFeGNlcHRpb24gPSBmYWxz
ZTsKLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0
aW9uQ291bnQ6IDEsCisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnU2xhdmVOb3RGb3VuZCcs
ICgpID0+CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5h
bHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMSwKICAgICAg
ICAgICAgICAgICByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlzaW9u
U2V0XSwKLSAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1
bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKLSAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1NsYXZlTm90Rm91bmQnKTsKLSAgICAgICAgICAg
IHJhaXNlRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBhc3NlcnQub2socmFp
c2VFeGNlcHRpb24pOworICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQn
XSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pKTsKIAogICAgICAgICBjb25zdCBhbGxBbmFs
eXNpc1Rhc2tzID0gYXdhaXQgZGIuc2VsZWN0Um93cygnYW5hbHlzaXNfdGFza3MnKTsKICAgICAg
ICAgYXNzZXJ0Lm9rKCFhbGxBbmFseXNpc1Rhc2tzLmxlbmd0aCk7CkBAIC01NjcsNyArNTU1LDg3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBu
b2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25h
bWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAogICAgICAgICAgICAgdGVzdEdyb3Vw
TmFtZTogJ0NvbmZpcm0nLCByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJl
dmlzaW9uU2V0XSwKLSAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5k
UnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOworICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5z
WzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddLCBuZWVkc05vdGlmaWNhdGlvbjog
dHJ1ZX0pOworCisgICAgICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hC
eUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgp
LCAnY29uZmlybScpOworICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKKyAgICAg
ICAgYXNzZXJ0KHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOworICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5j
YXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10p
OworICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7
CisgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVz
dDEnKTsKKworICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVlKTsKKyAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7CisgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlk
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5p
ZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9y
bSgpKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rh
c2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sx
XS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworCisgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKworICAgICAgICBhc3NlcnQub2soIWJ1aWxk
UmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzFdLmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmlzVGVz
dCgpKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uaXNUZXN0KCkpOworCisg
ICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKKyAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21t
aXRTZXQoKTsKKyAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQod2Via2l0SWQpOworICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29t
bWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7
CisgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9y
eSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgfSk7CisKKyAg
ICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91cCBhbmQg
cmVzcGVjdCB0aGUgIm5lZWRzTm90aWZpY2F0aW9uIiBmbGFnIGluIHRoZSBodHRwIHJlcXVlc3Qn
LCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHdlYmtpdElkID0gMTsKKyAgICAgICAgY29u
c3QgcGxhdGZvcm1JZCA9IDE7CisgICAgICAgIGNvbnN0IHRlc3QxSWQgPSAyOworICAgICAgICBj
b25zdCB0cmlnZ2VyYWJsZUlkID0gMTIzNDsKKworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0ZXN0cycsIHtpZDogMSwg
bmFtZTogJ1N1aXRlJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Rlc3RzJywge2lkOiB0
ZXN0MUlkLCBuYW1lOiAndGVzdDEnLCBwYXJlbnQ6IDF9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IHdlYmtpdElkLCBuYW1lOiAnV2ViS2l0J30pOworICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ3BsYXRmb3JtcycsIHtpZDogcGxhdGZvcm1JZCwgbmFtZTog
J3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJpZ2dl
cmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKKyAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDogMjM0
NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAg
ICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3Np
dG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
dHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBs
YXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGFk
ZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKKworICAgICAgICBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRX
aXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAgICAg
YXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKworICAgICAgICBsZXQgdGVzdDEgPSBUZXN0LmZpbmRC
eUlkKHRlc3QxSWQpOworICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5
SWQocGxhdGZvcm1JZCk7CisgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVj
dEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygp
WzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOworICAgICAgICBjb25zdCB0
ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZp
Z1Jvd1snaWQnXX0pOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsK
KworICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246
ICcxOTE2MjInfX07CisgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0
SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CisKKyAgICAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25h
bWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAorICAgICAgICAgICAgdGVzdEdyb3Vw
TmFtZTogJ0NvbmZpcm0nLCByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJl
dmlzaW9uU2V0XSwKKyAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5k
UnVuOiB0ZXN0UnVuc1sxXVsnaWQnXSwgbmVlZHNOb3RpZmljYXRpb246IGZhbHNlfSk7CiAKICAg
ICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsn
dGFza0lkJ10pOwogICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7
CkBAIC01ODQsNiArNjUyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5h
bHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lKCks
ICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmlj
YXRpb24oKSwgZmFsc2UpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVu
Z3RoLCAyKTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3Qt
Z3JvdXAtdGVzdHMuanMKaW5kZXggMmYzYjI5NzY4YTYyNmQ0ZTE2YWZlOTMzZWQ4MjE5NWZmY2M3
ODA5YS4uMjYzZTE1NTQ4ZDMyYWU4NWRjNTFjZjZhMjBhMTgyMmNmMmRkYjQwMiAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1j
cmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCkBA
IC0zMzksOSArMzM5LDkgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICBpdCgnc2hvdWxkIHJldHVybiAiRHVwbGljYXRlVGVz
dEdyb3VwTmFtZSIgd2hlbiB0aGVyZSBpcyBhbHJlYWR5IGEgdGVzdCBncm91cCBvZiB0aGUgc2Ft
ZSBuYW1lJywgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVU
YXNrKCdzb21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdFNldHMgPSB7J1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMyddfTsKLSAgICAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtu
YW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0c30pLnRoZW4oKGNvbnRlbnQpID0+
IHsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
dGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0cywgbmVl
ZHNOb3RpZmljYXRpb246IHRydWV9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0KGNvbnRlbnRbJ3Rlc3RHcm91cElkJ10pOwotICAgICAgICAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0c30pOworICAgICAgICAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0cywgbmVlZHNOb3RpZmljYXRpb246IHRydWV9
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKQEAgLTM5MSw3ICszOTEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0Mg
PSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1l
KCkgPT0gJ0phdmFTY3JpcHRDb3JlJyAmJiByZXBvc2l0b3J5Lm93bmVySWQoKSlbMF07CiAgICAg
ICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjog
JzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbb3duZWRKU0Mu
aWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgb3duZXJSZXZpc2lvbjogJzE5MTYy
Mid9fSwKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIy
J30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtvd25lZEpTQy5pZCgpXTog
e3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlzaW9uOiAnMTkyNzM2J319XTsK
LSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAx
LCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwg
cmVwZXRpdGlvbkNvdW50OiAxLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRz
fSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBncm91cElkID0gY29u
dGVudFsndGVzdEdyb3VwSWQnXTsKQEAgLTQwMSw2ICs0MDEsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
Y29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLmlkKCksIGdyb3VwSWQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5uZWVkc05vdGlm
aWNhdGlvbigpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1
ZXN0cygpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAg
ICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKQEAgLTQzNyw3ICs0Mzgs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgY29uc3QganNjID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIo
KHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdKYXZhU2NyaXB0Q29yZScgJiYg
cmVwb3NpdG9yeS5vd25lcklkKCkpWzBdOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRz
ID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7
cmV2aXNpb246ICcxNUEyODQnfSwgW2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTYx
NjEnLCBvd25lclJldmlzaW9uOiAnMTkxNjIyJ319LAogICAgICAgICAgICAgICAgIHtbbWFjb3Mu
aWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbanNjLmlkKCldOiB7cmV2aXNpb246ICdvd25l
ZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1dOwotICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6
ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDEsIHJldmlzaW9uU2V0c30p
OworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10
ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6
IDEsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSku
dGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJ
ZCddOwpAQCAtNDQ3LDYgKzQ0OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRl
c3RHcm91cHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJ
ZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAg
ICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2Vy
dChyZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwpAQCAtNDc2LDcgKzQ3OCw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgaXQo
J3Nob3VsZCBjcmVhdGUgYSB0ZXN0IGdyb3VwIGZyb20gY29tbWl0U2V0cyB3aXRoIHRoZSByZXBl
dGl0aW9uIGNvdW50IG9mIG9uZSB3aGVuIHJlcGV0aXRpb25Db3VudCBpcyBvbWl0dGVkJywgKCkg
PT4gewogICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRh
c2snKS50aGVuKCh0YXNrSWQpID0+IHsKICAgICAgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7
Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnbWFj
T1MnOiBbJzE1QTI4NCcsICcxNUEyODQnXSwgJ1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMydd
fX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRh
c2tJZCwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIGNvbW1pdFNldHM6IHsnbWFjT1MnOiBbJzE1
QTI4NCcsICcxNUEyODQnXSwgJ1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMyddfX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50
Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7CkBAIC00ODQsNiArNDg2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9
IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91
cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMik7CiAKQEAgLTUxMiw3ICs1MTUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
VHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsK
ICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEu
d2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0g
W3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7
cmV2aXNpb246ICcxOTE2MjMnfX1dOwotICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge25hbWU6
ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9OworICAgICAgICAgICAgY29uc3Qg
cGFyYW1zID0ge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBuZWVkc05vdGlmaWNhdGlvbjog
dHJ1ZSwgcmV2aXNpb25TZXRzfTsKICAgICAgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7CiAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBwYXJhbXMpLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBpbnNl
cnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwpAQCAtNTIyLDYgKzUyNSw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCkBAIC01NDUs
NyArNTQ5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFz
aygnc29tZSB0YXNrJykudGhlbigodGFza0lkKSA9PiB7CiAgICAgICAgICAgICBsZXQgaW5zZXJ0
ZWRHcm91cElkOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0
aW9uQ291bnQ6IDIsCi0gICAgICAgICAgICAgICAgY29tbWl0U2V0czogeydXZWJLaXQnOiBbJzE5
MTYyMicsICcxOTE2MjMnXSwgJ21hY09TJzogWycxNUEyODQnLCAnMTVBMjg0J119fSkudGhlbigo
Y29udGVudCkgPT4geworICAgICAgICAgICAgICAgIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogWycx
OTE2MjInLCAnMTkxNjIzJ10sICdtYWNPUyc6IFsnMTVBMjg0JywgJzE1QTI4NCddfSwgbmVlZHNO
b3RpZmljYXRpb246IHRydWV9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAg
aW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewpAQCAtNTUzLDYgKzU1Nyw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBv
c2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07CkBAIC01ODksNyArNTk0LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5tYWNvc1JlcG9z
aXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W21hY29zLmlk
KCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMmNl
ZGEnfX0sCiAgICAgICAgICAgICAgICAge1ttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0
J30sIFt3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzU0NzFhJ319XTsKLSAgICAgICAgICAgIGNv
bnN0IHBhcmFtcyA9IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50
OiAyLCByZXZpc2lvblNldHN9OworICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge25hbWU6ICd0
ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9u
OiB0cnVlLCByZXZpc2lvblNldHN9OwogICAgICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsK
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHBhcmFtcykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGlu
c2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CkBAIC01OTksNiArNjA0LDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKQEAgLTYz
MCw3ICs2MzYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3QgcmV2aXNp
b25TZXRzID0gW3tbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sCiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQo
KV06IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07Ci0gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgcmV2aXNpb25T
ZXRzfTsKKyAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRh
c2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNp
b25TZXRzfTsKICAgICAgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7CiAgICAgICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCBwYXJh
bXMpLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQg
PSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwpAQCAtNjQwLDYgKzY0Niw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogCkBAIC02NzksNyArNjg2LDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxl
J107CiAgICAgICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCld
OiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQn
fX0sCiAgICAgICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2
MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgJ2N1c3RvbVJvb3RzJzog
W3VwbG9hZGVkRmlsZVsnaWQnXV19XTsKLSAgICAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNr
OiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVu
dCkgPT4geworICAgICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRp
dGlvbkNvdW50OiAyLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRzfSkudGhl
bigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBj
b250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgICAgIH0pOwpAQCAt
Njg4LDYgKzY5NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRl
ZEdyb3VwSWQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRS
ZXF1ZXN0cygpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDQpOwogCkBAIC03MjcsNyArNzM1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9
IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24ocmF3RmlsZS5pZCwgcmF3RmlsZSk7CiAgICAg
ICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjog
JzE5MTYyMicsIHBhdGNoOiB1cGxvYWRlZEZpbGUuaWQoKX0sIFttYWNvcy5pZCgpXToge3Jldmlz
aW9uOiAnMTVBMjg0J319LAogICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNp
b246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX1dOwotICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdy
b3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJl
dmlzaW9uU2V0c30pOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBl
dGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsK
ICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91
cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC03MzYsNiArNzQ0LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQo
TW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7CkBAIC03OTEsNyArODAwLDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGpzYyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0
b3J5Lm5hbWUoKSA9PSAnSmF2YVNjcmlwdENvcmUnKVswXTsKICAgICAgICAgICAgIGNvbnN0IHJl
dmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNv
cy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J319LAogICAgICAgICAgICAgICAgIHtbd2Via2l0
LmlkKCldOiB7cmV2aXNpb246ICcxOTI3MzYnfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcx
NUEyODQnfSwgW2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJl
dmlzaW9uOiAnMTkyNzM2J319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJ
ZCwgcmVwZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCBuZWVkc05vdGlmaWNhdGlv
bjogdHJ1ZSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
ICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpA
QCAtODAwLDYgKzgwOSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91
cHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwg
Mik7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tE
YXRhLnNvbWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRm
b3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwpAQCAtODY1
LDcgKzg3NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBqc2MgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRl
cigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ0phdmFTY3JpcHRDb3JlJylb
MF07CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHty
ZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBb
anNjLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtNjE2MScsIG93bmVyUmV2aXNpb246ICcx
OTE2MjInfX0sCiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5
MjczNid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbanNjLmlkKCldOiB7
cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1dOwot
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIs
IHJldmlzaW9uU2V0c30pOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBy
ZXBldGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9
KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgaW5zZXJ0ZWRH
cm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC04NzQsNiArODg0LDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CkBAIC05NDcsNyArOTU4LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHVwbG9hZGVkRmlsZSA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24ocmF3Rmls
ZS5pZCwgcmF3RmlsZSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJr
aXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjog
JzE1QTI4NCd9LCBbanNjLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtNjE2MScsIG93bmVy
UmV2aXNpb246ICcxOTE2MjInfX0sCiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHty
ZXZpc2lvbjogJzE5MjczNicsIHBhdGNoOiB1cGxvYWRlZEZpbGUuaWQoKX0sIFttYWNvcy5pZCgp
XToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpz
Yy05MTkxJywgb3duZXJSZXZpc2lvbjogJzE5MjczNid9fV07Ci0gICAgICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rl
c3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfSk7Cisg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwg
bmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVu
KChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0
ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKQEAgLTk1Niw2ICs5NjcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qg
Z3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVz
dC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVx
dWVzdHMoKTsKQEAgLTEwNDAsNyArMTA1Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZp
bGUgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHJhd0ZpbGUuaWQsIHJhd0ZpbGUpOwog
ICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbanNjLmlkKCldOiB7cmV2aXNpb246
ICdqc2MtNjE2MSd9LCBbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29z
LmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW293bmVkSlNDLmlkKCldOiB7cmV2aXNpb246
ICdvd25lZC1qc2MtNjE2MScsIG93bmVyUmV2aXNpb246ICcxOTE2MjInfX0sCiAgICAgICAgICAg
ICAgICAge1tqc2MuaWQoKV06IHtyZXZpc2lvbjogJ2pzYy05MTkxJ30sIFt3ZWJraXQuaWQoKV06
IHtyZXZpc2lvbjogJzE5MjczNicsIHBhdGNoOiB1cGxvYWRlZEZpbGUuaWQoKX0sIFttYWNvcy5p
ZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtvd25lZEpTQy5pZCgpXToge3JldmlzaW9uOiAn
b3duZWQtanNjLTkxOTEnLCBvd25lclJldmlzaW9uOiAnMTkyNzM2J319XTsKLSAgICAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtu
YW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNl
dHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNv
dW50OiAyLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNv
bnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTA1MCw2ICsxMDYyLDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRl
c3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24o
KSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0u
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKQEAgLTExMzYsNyArMTE0OSw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICB1cGxvYWRlZEZpbGUgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHJhd0ZpbGUu
aWQsIHJhd0ZpbGUpOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbbWFjb3Mu
aWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9fSwKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5p
ZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJywgcGF0Y2g6IHVwbG9hZGVkRmlsZS5pZCgpfSwgW21h
Y29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX1dOwotICAgICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0
JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0c30pOworICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdy
b3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIG5l
ZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigo
Y29udGVudCkgPT4gewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVz
dEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CkBAIC0xMTQ1LDYgKzExNTgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qg
Z3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVz
dC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVx
dWVzdHMoKTsKQEAgLTExOTksNyArMTIxMyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZp
bGUgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHJhd0ZpbGUuaWQsIHJhd0ZpbGUpOwog
ICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNp
b246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnLCBwYXRjaDog
dXBsb2FkZWRGaWxlLmlkKCl9fSwKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgpXToge3Jl
dmlzaW9uOiAnMTkyNzM2J30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J319XTsK
LSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAy
LCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwg
cmVwZXRpdGlvbkNvdW50OiAyLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRz
fSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7CkBAIC0x
MjE0LDcgKzEyMjgsNDIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxs
KCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0Jylb
MF07CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHty
ZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMyd9
fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LXRlc3QtZ3JvdXAnLAotICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdCcsIHRhc2tOYW1lOiAn
b3RoZXIgdGFzaycsIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCB0ZXN0OiBN
b2NrRGF0YS5zb21lVGVzdElkKCksIHJldmlzaW9uU2V0c30pOworICAgICAgICAgICAgICAgIHtu
YW1lOiAndGVzdCcsIHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsIHBsYXRmb3JtOiBNb2NrRGF0YS5z
b21lUGxhdGZvcm1JZCgpLCB0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIG5lZWRzTm90aWZp
Y2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKKyAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7CisgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107
CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQo
cmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQn
XSwgdHJ1ZSldKTsKKyAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgICAgICBj
b25zdCBbYW5hbHlzaXNUYXNrLCB0ZXN0R3JvdXBzXSA9IHJlc3VsdDsKKworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBj
b25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7CisgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1
aWxkUmVxdWVzdHMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDIpOworCisgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7
CisgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisK
KyAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIG5vIHBl
bmRpbmcgbm90aWZpY2F0aW9uJywgKCkgPT4geworICAgICAgICBsZXQgaW5zZXJ0ZWRHcm91cElk
OworICAgICAgICBsZXQgd2Via2l0OworICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRD
cmVhdGVUYXNrKCdzb21lIHRhc2snKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHdlYmtpdCA9
IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUo
KSA9PSAnV2ViS2l0JylbMF07CisgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3
ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZp
c2lvbjogJzE5MTYyMyd9fV07CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLAorICAgICAgICAgICAgICAgIHtuYW1lOiAndGVz
dCcsIHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpLCB0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIG5lZWRzTm90aWZpY2F0aW9uOiBm
YWxzZSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAg
ICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogICAgICAg
ICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHJlc3VsdFsn
dGFza0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUp
XSk7CkBAIC0xMjI3LDYgKzEyNzYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNv
dW50KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlv
bigpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKQEAgLTEy
NTAsMTIgKzEzMDAsMTIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxs
KCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0Jylb
MF07CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHty
ZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMyd9
fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LXRlc3QtZ3JvdXAnLAotICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdDEnLCB0YXNrTmFtZTog
J290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgdGVzdCwg
cmV2aXNpb25TZXRzfSk7CisgICAgICAgICAgICAgICAge25hbWU6ICd0ZXN0MScsIHRhc2tOYW1l
OiAnb3RoZXIgdGFzaycsIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBuZWVk
c05vdGlmaWNhdGlvbjogdHJ1ZSwgdGVzdCwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgZmlyc3RSZXN1bHQgPSByZXN1bHQ7CiAgICAg
ICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjog
JzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MjczNid9fV07CiAgICAg
ICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3Jv
dXAnLAotICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdDInLCB0YXNrOiByZXN1bHRbJ3Rhc2tJ
ZCddLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCksIHRlc3QsIHJldmlzaW9u
U2V0cywgcmVwZXRpdGlvbkNvdW50OiAyfSk7CisgICAgICAgICAgICAgICAge25hbWU6ICd0ZXN0
MicsIHRhc2s6IHJlc3VsdFsndGFza0lkJ10sIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRm
b3JtSWQoKSwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHRlc3QsIHJldmlzaW9uU2V0cywgcmVw
ZXRpdGlvbkNvdW50OiAyfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAg
ICAgICAgc2Vjb25kUmVzdWx0ID0gcmVzdWx0OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZp
cnN0UmVzdWx0Wyd0YXNrSWQnXSwgc2Vjb25kUmVzdWx0Wyd0YXNrSWQnXSk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVw
ZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNzUyYjVlZTM5ZGViODllZmIxZjdjMDU3Mzg0ZjM4MmE4ODQ4YmExCi0tLSAvZGV2L251
bGwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtMCwwICsxLDE2NiBAQAorJ3VzZSBz
dHJpY3QnOworCitjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKKworY29uc3QgTW9j
a0RhdGEgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKK2NvbnN0IFRlc3RT
ZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgYWRk
U2xhdmVGb3JSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5q
cycpLmFkZFNsYXZlRm9yUmVwb3J0OworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJl
KCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0Owor
Y29uc3QgYXNzZXJ0VGhyb3dzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMnKS5hc3NlcnRUaHJvd3M7CisKK2FzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFz
ayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKK3sKKyAgICBj
b25zdCByZXBvcnRXaXRoUmV2aXNpb24gPSBbeworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTI0
IiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDE1LTEwLTI3VDE1OjM0OjUxIiwKKyAgICAgICAg
InJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogd2Via2l0UmV2aXNpb25zWzBdLAorICAgICAgICAgICAgICAgICJ0aW1lc3Rh
bXAiOiAnMjAxNS0xMC0yN1QxMTozNjo1Ni44Nzg0NzNaJywKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE1QTI4NCIs
CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21l
QnVpbGRlciIsCisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNs
YXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3JtIjogInNvbWUg
cGxhdGZvcm0iLAorICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAic29tZSB0ZXN0Ijog
eworICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeworICAgICAgICAgICAgICAgICAgICAiVGlt
ZSI6IFsiQXJpdGhtZXRpYyJdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
InRlc3RzIjogeworICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTFdIH19LAorICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAg
ICAgICAgfX1dOworCisgICAgY29uc3QgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbiA9IFt7Cisg
ICAgICAgICJidWlsZE51bWJlciI6ICIxMjUiLAorICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTUt
MTAtMjdUMTc6Mjc6NDEiLAorICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAgICAgIldl
YktpdCI6IHsKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiB3ZWJraXRSZXZpc2lvbnNbMV0s
CisgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICcyMDE1LTEwLTI3VDE2OjM4OjEwLjc2ODk5
NVonLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJtYWNPUyI6IHsKKyAgICAgICAgICAg
ICAgICAicmV2aXNpb24iOiAiMTVBMjg0IiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAg
ICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgInNsYXZlTmFtZSI6
ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAor
ICAgICAgICAicGxhdGZvcm0iOiAic29tZSBwbGF0Zm9ybSIsCisgICAgICAgICJ0ZXN0cyI6IHsK
KyAgICAgICAgICAgICJzb21lIHRlc3QiOiB7CisgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7
CisgICAgICAgICAgICAgICAgICAgICJUaW1lIjogWyJBcml0aG1ldGljIl0sCisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgICAg
ICJ0ZXN0MSI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjog
eyAiY3VycmVudCI6IFsxMl0gfX0sCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICB9fV07CisKKyAgICBjb25zdCBkYiA9IFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpOworICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblsw
XSk7CisgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
UmV2aXNpb24pOworICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgYW5v
dGhlclJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAg
ICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlQYXRoKFsnc29tZSB0ZXN0JywgJ3Rlc3QxJ10pOwor
ICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScp
OworICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2Nv
bmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06
IHBsYXRmb3JtLmlkKCl9KTsKKyAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJv
d3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOworCisgICAgYXNzZXJ0
LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgeworICAgICAg
ICBuYW1lOiBuYW1lLAorICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCisgICAg
ICAgIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sCisgICAgICAgIG5lZWRzTm90aWZpY2F0aW9u
OiB0cnVlLAorICAgIH0pOworICAgIHJldHVybiBjb250ZW50Wyd0YXNrSWQnXTsKK30KKworYXN5
bmMgZnVuY3Rpb24gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKG5hbWUsIHdlYmtpdFJldmlz
aW9ucykKK3sKKyAgICBjb25zdCByZXBvcnQgPSB7CisgICAgICAgICdzbGF2ZU5hbWUnOiAnYW5v
dGhlclNsYXZlJywKKyAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAnYW5vdGhlclBhc3N3b3JkJywK
KyAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCisgICAgICAgICdjb25maWd1
cmF0aW9ucyc6IFsKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBs
YXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBN
b2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQo
KX0sCisgICAgICAgIF0sCisgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWworICAgICAgICAg
ICAge25hbWU6ICdvcy1vbmx5JywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWwor
ICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgp
LCBhY2NlcHRzUGF0Y2g6IGZhbHNlfSwKKyAgICAgICAgICAgIF19LAorICAgICAgICAgICAge25h
bWU6ICd3ZWJraXQtb25seScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6IFsKKyAg
ICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCks
IGFjY2VwdHNQYXRjaDogdHJ1ZX0sCisgICAgICAgICAgICBdfSwKKyAgICAgICAgICAgIHtuYW1l
OiAnc3lzdGVtLWFuZC13ZWJraXQnLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVzOiBb
CisgICAgICAgICAgICAgICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlk
KCksIGFjY2VwdHNQYXRjaDogZmFsc2V9LAorICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiB0cnVlfQorICAgICAg
ICAgICAgXX0sCisgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS13ZWJraXQtc2pjJywgYWNjZXB0
c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWworICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5
OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6IGZhbHNlfSwKKyAg
ICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEuanNjUmVwb3NpdG9yeUlkKCksIGFj
Y2VwdHNQYXRjaDogZmFsc2V9LAorICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0
YS53ZWJraXRSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiB0cnVlfQorICAgICAgICAgICAg
XX0sCisgICAgICAgIF0KKyAgICB9OworICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CisgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQocmVwb3J0
KTsKKyAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCByZXBvcnQpOworICAgIGF3YWl0IGNyZWF0ZUFuYWx5c2lzVGFzayhu
YW1lLCB3ZWJraXRSZXZpc2lvbnMpOworfQorCitkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3Vw
ZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKKyAgICBwcmVwYXJlU2VydmVyVGVzdCh0aGlz
LCAnbm9kZScpOworICAgIGJlZm9yZUVhY2goKCkgPT4geworICAgICAgICBQcml2aWxlZ2VkQVBJ
LmNvbmZpZ3VyZSgndGVzdCcsICdwYXNzd29yZCcpOworICAgIH0pOworCisgICAgaXQoJ3Nob3Vs
ZCB0aHJvdyAiU2xhdmVOb3RGb3VuZCIgaWYgaW52YWxpZCBzbGF2ZSBuYW1lIGFuZCBwYXNzd29y
ZCBjb21iaW5hdGlvbiBpcyBwcm92aWRlZCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQg
YWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKTsKKworICAgICAgICBQcml2
aWxlZ2VkQVBJLmNvbmZpZ3VyZSgndGVzdCcsICd3cm9uZ3Bhc3N3b3JkJyk7CisgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBv
c2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07CisgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0
cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKKworICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3Mo
J1NsYXZlTm90Rm91bmQnLCAoKSA9PgorICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVy
IHRhc2snLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpLCB0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHJldmlzaW9uU2V0c30pKTsKKyAgICB9
KTsKKworICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGRhdGUgaGFzIHBlbmRpbmcgbm90aWZp
Y2F0aW9uIGZsYWcnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxl
QW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJyk7CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAn
V2ViS2l0JylbMF07CisgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkx
NjIzJ319XTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywKKyAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3Qn
LCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3Jt
SWQoKSwgdGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1
ZSwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3Vs
dFsndGVzdEdyb3VwSWQnXTsKKyAgICAgICAgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5hbGwoW0Fu
YWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRjaEZv
clRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKKworICAgICAgICBjb25zdCBbYW5hbHlz
aXNUYXNrLCB0ZXN0R3JvdXBzXSA9IHJlc3VsdDsKKworICAgICAgICBhc3NlcnQuZXF1YWwoYW5h
bHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNb
MF07CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7CisgICAgICAg
IGF3YWl0IGdyb3VwLmRpZFNlbmROb3RpZmljYXRpb24oKTsKKyAgICAgICAgY29uc3QgdXBkYXRl
ZEdyb3VwID0gVGVzdEdyb3VwLmZpbmRCeUlkKGdyb3VwLmlkKCkpOworICAgICAgICBhc3NlcnQu
ZXF1YWwodXBkYXRlZEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKKyAgICB9KTsK
K30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwpp
bmRleCA5NGEzOTNmMWU5Njk1NmU1OWQ4NTIwZGI5MDQ3YjYxZTgzNGJjN2E1Li42NDUyMGE1ZWY1
NTVkYTMxZjc5YTY1MWJmMDBiNTM4ZDIzN2MzYmM0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpz
CkBAIC03OSw3ICs3OSw3IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgZGIuaW5zZXJ0KCdh
bmFseXNpc190YXNrcycsIHtpZDogNTAwLCBwbGF0Zm9ybTogNjUsIG1ldHJpYzogMzAwLCBuYW1l
OiAnc29tZSB0YXNrJywKICAgICAgICAgICAgICAgICBzdGFydF9ydW46IDgwMSwgc3RhcnRfcnVu
X3RpbWU6ICcyMDE1LTEwLTI3VDEyOjA1OjI3LjFaJywKICAgICAgICAgICAgICAgICBlbmRfcnVu
OiA4MDEsIGVuZF9ydW5fdGltZTogJzIwMTUtMTAtMjdUMTI6MDU6MjcuMVonfSksCi0gICAgICAg
ICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lkOiA2MDAsIHRhc2s6IDUw
MCwgbmFtZTogJ3NvbWUgdGVzdCBncm91cCd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYW5h
bHlzaXNfdGVzdF9ncm91cHMnLCB7aWQ6IDYwMCwgdGFzazogNTAwLCBuYW1lOiAnc29tZSB0ZXN0
IGdyb3VwJywgbmVlZHNfbm90aWZpY2F0aW9uOiB0cnVlfSksCiAgICAgICAgICAgICBkYi5pbnNl
cnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDAsIHN0YXR1czogc3RhdHVzTGlzdFswXSwgdHJp
Z2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVz
dDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMCwgY29tbWl0X3NldDogNDAxfSksCiAgICAgICAg
ICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDEsIHN0YXR1czogc3RhdHVz
TGlzdFsxXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRm
b3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMSwgY29tbWl0X3NldDogNDAy
fSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDIsIHN0
YXR1czogc3RhdHVzTGlzdFsyXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6
IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMiwgY29t
bWl0X3NldDogNDAxfSksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50
ZWdyYXRpb24tdGVzdHMuanMKaW5kZXggZTYxMjU4MjY2Y2Q4ZTBjNTRkNGMwMzZlNTRkOWI3ZDEw
Zjg2ZTE1ZS4uN2UwNGU1ZWU1NWU3NzkzNGMyMmZkNDMzZWEzYzkxODA3MzE3ZDU4ZCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1
aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpA
QCAtMTczLDcgKzE3Myw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cCh0YXNrX25hbWU9J2N1
c3RvbSB0YXNrJykgewogICAgIHNldDEuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwg
JzE5MTYyMicpOwogICAgIGNvbnN0IHNldDIgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwogICAgIHNl
dDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MjczNicpOwotICAgIHJldHVy
biBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIs
IFtzZXQxLCBzZXQyXSkudGhlbigodGFzaykgPT4geworICAgIHJldHVybiBUZXN0R3JvdXAuY3Jl
YXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIsIFtzZXQxLCBzZXQyXSwg
dHJ1ZSkudGhlbigodGFzaykgPT4gewogICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZpbmRBbGxC
eVRhc2sodGFzay5pZCgpKVswXTsKICAgICB9KTsKIH0KQEAgLTE5Myw3ICsxOTMsNyBAQCBhc3lu
YyBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpCiAgICAgc2V0MS5zZXRSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0LCAnMTkxNjIyJywgdXBsb2FkZWRQYXRjaEZpbGUpOwogICAg
IGNvbnN0IHNldDIgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwogICAgIHNldDIuc2V0UmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MTYyMicpOwotICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBU
ZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5SWQo
TW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIsIFtz
ZXQxLCBzZXQyXSk7CisgICAgY29uc3QgdGFzayA9IGF3YWl0IFRlc3RHcm91cC5jcmVhdGVXaXRo
VGFzaygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgW3NldDEsIHNldDJdLCB0cnVlKTsK
IAogICAgIHJldHVybiBUZXN0R3JvdXAuZmluZEFsbEJ5VGFzayh0YXNrLmlkKCkpWzBdOwogfQpA
QCAtMjA5LDcgKzIwOSw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cFdpaE93bmVkQ29tbWl0
KCkKICAgICBjb25zdCBzZXQyID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKICAgICBzZXQyLnNldFJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQsICcxOTI3MzYnKTsKICAgICBzZXQyLnNldFJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZFNKQywgJ293bmVkLWpzYy05MTkxJywgbnVsbCwgJzE5Mjcz
NicpOwotICAgIHJldHVybiBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywg
UGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAn
c29tZSBncm91cCcsIDIsIFtzZXQxLCBzZXQyXSkudGhlbigodGFzaykgPT4geworICAgIHJldHVy
biBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcsIDIs
IFtzZXQxLCBzZXQyXSwgdHJ1ZSkudGhlbigodGFzaykgPT4gewogICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZpbmRBbGxCeVRhc2sodGFzay5pZCgpKVswXTsKICAgICB9KTsKIH0KZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1yZXN1bHRzLW5v
dGlmaWVyLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2FuYWx5c2lzLXJl
c3VsdHMtbm90aWZpZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIzNDA1NzFjZDdmNTFkNTAyZGIxMjYyZDVl
MjA4MWNlY2RjMjVlOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLmpzCkBAIC0wLDAgKzEsMzI0IEBA
Citjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7Citjb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcp
OworY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpOworCitjb25zdCBSZW1vdGVBUEkgPSByZXF1aXJl
KCcuL3JlbW90ZS5qcycpLlJlbW90ZUFQSTsKK2NvbnN0IE1hcmt1cFBhZ2UgPSByZXF1aXJlKCcu
L2NvbXBvbmVudC5qcycpLk1hcmt1cFBhZ2U7Citjb25zdCBNYXJrdXBDb21wb25lbnRCYXNlID0g
cmVxdWlyZSgnLi9jb21wb25lbnQuanMnKS5NYXJrdXBDb21wb25lbnRCYXNlOworCitjbGFzcyBB
bmFseXNpc1Jlc3VsdHNOb3RpZmllciB7CisgICAgY29uc3RydWN0b3IobWVzc2FnZVRlbXBsYXRl
LCBmaW5hbGl6ZVNjcmlwdCwgbWVzc2FnZUNvbnN0cnVjdGlvblJ1bGVzLCBub3RpZmljYXRpb25T
ZXJ2aWNlLCBTdWJwcm9jZXNzKQorICAgIHsKKyAgICAgICAgdGhpcy5fbWVzc2FnZVRlbXBsYXRl
ID0gbWVzc2FnZVRlbXBsYXRlOworICAgICAgICB0aGlzLl9ub3RpZmNhdGlvblNlcnZpY2UgPSBu
b3RpZmljYXRpb25TZXJ2aWNlOworICAgICAgICB0aGlzLl9zdWJwcm9jZXNzID0gU3VicHJvY2Vz
czsKKyAgICAgICAgdGhpcy5fZmluYWxpemVTY3JpcHQgPSBmaW5hbGl6ZVNjcmlwdDsKKyAgICAg
ICAgdGhpcy5fbWVzc2FnZUNvbnN0cnVjdGlvblJ1bGVzID0gQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX2J1aWxkTWVzc2FnZUNvbnN0cnVjdGlvblJ1bGVzKG1lc3NhZ2VDb25zdHJ1Y3Rpb25SdWxl
cyk7CisgICAgfQorCisgICAgYXN5bmMgc2VuZE5vdGlmaWNhdGlvbnNGb3JUZXN0R3JvdXBzKHRl
c3RHcm91cHMpCisgICAgeworICAgICAgICBjb25zdCB0ZW1wRGlyID0gZnMubWtkdGVtcFN5bmMo
b3MudG1wZGlyKCkpOworICAgICAgICBjb25zdCB0ZW1wRmlsZVBhdGggPSBwYXRoLmpvaW4odGVt
cERpciwgJ3RlbXAtY29udGVudC5qc29uJyk7CisgICAgICAgIGZvciAoY29uc3QgdGVzdEdyb3Vw
IG9mIHRlc3RHcm91cHMpIHsKKyAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBBbmFs
eXNpc1Jlc3VsdHNOb3RpZmllci5fbWVzc2FnZUZvclRlc3RHcm91cCh0ZXN0R3JvdXApOworICAg
ICAgICAgICAgY29uc3QgdGl0bGUgPSBgVGVzdCBncm91cDogIiR7dGVzdEdyb3VwLm5hbWUoKX0i
IGZyb20gQW5hbHlzaXMgdGFzayAiJHt0ZXN0R3JvdXAudGFzaygpLm5hbWUoKX0iIGhhcyBmaW5p
c2hlZCBhbGwgYnVpbGQgcmVxdWVzdHNgOworICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSBBbmFs
eXNpc1Jlc3VsdHNOb3RpZmllci5faW5zdGFudGlhdGVOb3RpZmljYXRpb25UZW1wbGF0ZSh0aGlz
Ll9tZXNzYWdlVGVtcGxhdGUsIHRpdGxlLCBtZXNzYWdlKTsKKworICAgICAgICAgICAgY29udGVu
dCA9IHRoaXMuX2NvbnN0cnVjdE1lc3NhZ2VCeVJ1bGVzKHRlc3RHcm91cC5wbGF0Zm9ybSgpLm5h
bWUoKSwgdGVzdEdyb3VwLnRlc3QoKS5wYXRoKClbMF0ubmFtZSgpLCBjb250ZW50KTsKKyAgICAg
ICAgICAgIGNvbnN0IHRlc3RHcm91cEluZm8gPSB7YXV0aG9yOiB0ZXN0R3JvdXAuYXV0aG9yKCl9
OworICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0ZW1wRmlsZVBhdGgsIEpTT04uc3RyaW5n
aWZ5KHtjb250ZW50LCB0ZXN0R3JvdXBJbmZvfSkpOworICAgICAgICAgICAgY29udGVudCA9IEpT
T04ucGFyc2UoYXdhaXQgdGhpcy5fc3VicHJvY2Vzcy5leGVjdXRlKFsuLi50aGlzLl9maW5hbGl6
ZVNjcmlwdCwgdGVtcEZpbGVQYXRoXSkpOworCisgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3Rp
ZmNhdGlvblNlcnZpY2Uuc2VuZE5vdGlmaWNhdGlvbihjb250ZW50KTsKKyAgICAgICAgICAgIGF3
YWl0IHRlc3RHcm91cC5kaWRTZW5kTm90aWZpY2F0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAg
ZnMudW5saW5rU3luYyh0ZW1wRmlsZVBhdGgpOworICAgICAgICBmcy5ybWRpclN5bmModGVtcERp
cik7CisgICAgfQorCisgICAgX2NvbnN0cnVjdE1lc3NhZ2VCeVJ1bGVzKHBsYXRmb3JtTmFtZSwg
dGVzdE5hbWUsIG1lc3NhZ2UpCisgICAgeworICAgICAgICBmb3IgKGNvbnN0IFttYXRjaGluZ0Z1
bmN0aW9uLCBwYXJhbWV0ZXJzXSBvZiB0aGlzLl9tZXNzYWdlQ29uc3RydWN0aW9uUnVsZXMpIHsK
KyAgICAgICAgICAgIGlmIChtYXRjaGluZ0Z1bmN0aW9uKHBsYXRmb3JtTmFtZSwgdGVzdE5hbWUp
KQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fYXBw
bHlVcGRhdGUobWVzc2FnZSwgcGFyYW1ldGVycykKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
bWVzc2FnZTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2J1aWxkTWVzc2FnZUNvbnN0cnVjdGlvblJ1
bGVzKG1lc3NhZ2VDb25zdHJ1Y3Rpb25SdWxlVGVtcGxhdGUpCisgICAgeworICAgICAgICBjb25z
dCBtZXNzYWdlQ29uc3RydWN0aW9uUnVsZXMgPSBbXTsKKyAgICAgICAgZm9yIChjb25zdCBydWxl
IG9mIG1lc3NhZ2VDb25zdHJ1Y3Rpb25SdWxlVGVtcGxhdGUpIHsKKyAgICAgICAgICAgIGNvbnN0
IG1hdGNoRnVuY3Rpb24gPSAocGxhdGZvcm0sIHRlc3QpID0+IHsKKyAgICAgICAgICAgICAgICBs
ZXQgaGFzTWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZS50ZXN0cykgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXJ1bGUudGVzdHMuaW5jbHVkZXModGVzdCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGhh
c01hdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJ1
bGUucGxhdGZvcm1zKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghcnVsZS5wbGF0Zm9ybXMu
aW5jbHVkZXMocGxhdGZvcm0pKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgICAgICAgICBoYXNNYXRjaCA9IHRydWU7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIHJldHVybiBoYXNNYXRjaDsKKyAgICAgICAgICAgIH07CisgICAg
ICAgICAgICBtZXNzYWdlQ29uc3RydWN0aW9uUnVsZXMucHVzaChbbWF0Y2hGdW5jdGlvbiwgcnVs
ZS5wYXJhbWV0ZXJzXSkKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWVzc2FnZUNvbnN0cnVj
dGlvblJ1bGVzOworICAgIH0KKworICAgIHN0YXRpYyBfYXBwbHlVcGRhdGUobWVzc2FnZSwgdXBk
YXRlKSB7CisgICAgICAgIGNvbnN0IG1lc3NhZ2VUeXBlID0gdHlwZW9mIG1lc3NhZ2U7CisgICAg
ICAgIGNvbnN0IHVwZGF0ZVR5cGUgPSB0eXBlb2YgdXBkYXRlOworICAgICAgICBjb25zdCBzdXBw
b3J0ZWRQcmltaXRpdmVUeXBlcyA9IFsic3RyaW5nIiwgIm51bWJlciIsICJib29sZWFuIl07Cisg
ICAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUHJpbWl0aXZlVHlwZXMgPSBbInN5bWJvbCIsICJmdW5j
dGlvbiIsICJ1bmRlZmluZWQiXTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXVuc3VwcG9ydGVk
UHJpbWl0aXZlVHlwZXMuaW5jbHVkZXMobWVzc2FnZVR5cGUpICYmICF1bnN1cHBvcnRlZFByaW1p
dGl2ZVR5cGVzLmluY2x1ZGVzKHVwZGF0ZVR5cGUpKTsKKworICAgICAgICBpZiAoc3VwcG9ydGVk
UHJpbWl0aXZlVHlwZXMuaW5jbHVkZXMobWVzc2FnZVR5cGUpIHx8IHN1cHBvcnRlZFByaW1pdGl2
ZVR5cGVzLmluY2x1ZGVzKHVwZGF0ZVR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIFttZXNzYWdl
LCB1cGRhdGVdOworCisgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5l
bnRyaWVzKHVwZGF0ZSkpIHsKKyAgICAgICAgICAgIGxldCBtZXJnZWRWYWx1ZSA9IG51bGw7Cisg
ICAgICAgICAgICBjb25zdCB2YWx1ZVRvTWVyZ2UgPSBtZXNzYWdlW2tleV07CisKKyAgICAgICAg
ICAgIGlmICghbWVzc2FnZS5oYXNPd25Qcm9wZXJ0eShrZXkpKQorICAgICAgICAgICAgICAgIG1l
cmdlZFZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZh
bHVlKSAmJiBBcnJheS5pc0FycmF5KHZhbHVlVG9NZXJnZSkpCisgICAgICAgICAgICAgICAgbWVy
Z2VkVmFsdWUgPSBbLi4udmFsdWVUb01lcmdlLCAuLi52YWx1ZV07CisgICAgICAgICAgICBlbHNl
IGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZVRvTWVyZ2Up
KQorICAgICAgICAgICAgICAgIG1lcmdlZFZhbHVlID0gW3ZhbHVlVG9NZXJnZSwgLi4udmFsdWVd
OworICAgICAgICAgICAgZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpICYmIEFycmF5Lmlz
QXJyYXkodmFsdWVUb01lcmdlKSkKKyAgICAgICAgICAgICAgICBtZXJnZWRWYWx1ZSA9IFsuLi52
YWx1ZVRvTWVyZ2UsIHZhbHVlXTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBt
ZXJnZWRWYWx1ZSA9IHRoaXMuX2FwcGx5VXBkYXRlKHZhbHVlVG9NZXJnZSwgdmFsdWUpOworCisg
ICAgICAgICAgICBtZXNzYWdlW2tleV0gPSBtZXJnZWRWYWx1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbWVzc2FnZTsKKyAgICB9CisKKyAgICBzdGF0aWMgYXN5bmMgX21lc3NhZ2VGb3JU
ZXN0R3JvdXAodGVzdEdyb3VwKQorICAgIHsKKyAgICAgICAgY29uc3QgYW5hbHlzaXNUYXNrID0g
dGVzdEdyb3VwLnRhc2soKSB8fCBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHRlc3RHcm91
cC5fdGFza0lkKTsKKyAgICAgICAgY29uc3QgYW5hbHlzaXNSZXN1bHRzID0gYXdhaXQgQW5hbHlz
aXNSZXN1bHRzLmZldGNoKGFuYWx5c2lzVGFzay5pZCgpKTsKKworICAgICAgICByZXR1cm4gKG5l
dyBUZXN0R3JvdXBSZXN1bHRQYWdlKCd0ZXN0JywgdGVzdEdyb3VwLCBhbmFseXNpc1Jlc3VsdHMs
IGFuYWx5c2lzVGFzaywgQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX1VSTEZvckFuYWx5c2lzVGFz
ayhhbmFseXNpc1Rhc2spKSkuZ2VuZXJhdGVNYXJrdXAoKTsKKyAgICB9CisKKyAgICBzdGF0aWMg
X1VSTEZvckFuYWx5c2lzVGFzayhhbmFseXNpc1Rhc2spCisgICAgeworICAgICAgICByZXR1cm4g
Z2xvYmFsLlJlbW90ZUFQSS51cmwoYC92My8jL2FuYWx5c2lzL3Rhc2svJHthbmFseXNpc1Rhc2su
aWQoKX1gKTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2luc3RhbnRpYXRlTm90aWZpY2F0aW9uVGVt
cGxhdGUodGVtcGxhdGUsIHRpdGxlLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgY29uc3QgaW5z
dGFuY2UgPSB7fTsKKyAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRlbXBsYXRlKSB7CisgICAg
ICAgICAgICBjb25zdCB2YWx1ZSA9IHRlbXBsYXRlW25hbWVdOworICAgICAgICAgICAgaWYgKHR5
cGVvZih2YWx1ZSkgPT09ICdzdHJpbmcnKQorICAgICAgICAgICAgICAgIGluc3RhbmNlW25hbWVd
ID0gdmFsdWUucmVwbGFjZSgvXCR0aXRsZS9nLCB0aXRsZSkucmVwbGFjZSgvXCRtZXNzYWdlL2cs
IG1lc3NhZ2UpOworICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mKHRlbXBsYXRlW25hbWVdKSA9
PT0gJ29iamVjdCcpCisgICAgICAgICAgICAgICAgaW5zdGFuY2VbbmFtZV0gPSB0aGlzLl9pbnN0
YW50aWF0ZU5vdGlmaWNhdGlvblRlbXBsYXRlKHZhbHVlLCB0aXRsZSwgbWVzc2FnZSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaW5zdGFuY2VbbmFtZV0gPSB2YWx1ZTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQorfQorCisKK2NsYXNzIE5v
dGlmaWNhdGlvblNlcnZpY2UgeworICAgIGNvbnN0cnVjdG9yKG5vdGlmaWNhdGlvblNlcnZlclJl
bW90ZUFQSSwgbm90aWZpY2F0aW9uU2VydmljUGF0aCkKKyAgICB7CisgICAgICAgIHRoaXMuX25v
dGlmaWNhdGlvblNlcnZlclJlbW90ZUFQSSA9IG5vdGlmaWNhdGlvblNlcnZlclJlbW90ZUFQSTsK
KyAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZVBhdGggPSBub3RpZmljYXRpb25TZXJ2
aWNQYXRoOworICAgIH0KKyAgICBhc3luYyBzZW5kTm90aWZpY2F0aW9uKG1lc3NhZ2UpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9uU2VydmVyUmVtb3RlQVBJLnBvc3RK
U09OKHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2VQYXRoLCBtZXNzYWdlKTsKKyAgICB9Cit9CisK
KworY2xhc3MgVGVzdEdyb3VwUmVzdWx0UGFnZSBleHRlbmRzIE1hcmt1cFBhZ2UgeworICAgIGNv
bnN0cnVjdG9yKHRpdGxlLCB0ZXN0R3JvdXAsIGFuYWx5c2lzUmVzdWx0cywgYW5hbHlzaXNUYXNr
LCBhbmFseXNpc1VSTCkKKyAgICB7CisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAgdGhp
cy5fdGVzdEdyb3VwID0gdGVzdEdyb3VwOworICAgICAgICB0aGlzLl9hbmFseXNpc1Jlc3VsdHMg
PSBhbmFseXNpc1Jlc3VsdHM7CisgICAgICAgIHRoaXMuX2FuYWx5c2lzVVJMID0gYW5hbHlzaXNV
Ukw7CisgICAgICAgIHRoaXMuX2FuYWx5c2lzVGFzayA9IGFuYWx5c2lzVGFzazsKKyAgICAgICAg
dGhpcy5fY29uc3RydWN0VGFibGVzTGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9u
KHRoaXMuY29uc3RydWN0VGFibGVzLmJpbmQodGhpcykpOworICAgIH0KKworICAgIGNvbnN0cnVj
dFRhYmxlcyh0ZXN0R3JvdXAsIGFuYWx5c2lzUmVzdWx0cywgYW5hbHlzaXNVUkwsIGFuYWx5c2lz
VGFzaykKKyAgICB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBNYXJrdXBDb21wb25lbnRCYXNl
LmNyZWF0ZUVsZW1lbnQuYmluZChNYXJrdXBDb21wb25lbnRCYXNlKTsKKyAgICAgICAgY29uc3Qg
bGluayA9IE1hcmt1cENvbXBvbmVudEJhc2UuY3JlYXRlTGluay5iaW5kKE1hcmt1cENvbXBvbmVu
dEJhc2UpOworCisgICAgICAgIGNvbnN0IHJlcXVlc3RlZENvbW1pdFNldHMgPSB0ZXN0R3JvdXAu
cmVxdWVzdGVkQ29tbWl0U2V0cygpOworICAgICAgICBjb25zb2xlLmFzc2VydChyZXF1ZXN0ZWRD
b21taXRTZXRzLmxlbmd0aCwgMik7CisKKyAgICAgICAgY29uc3QgdGVzdCA9IHRlc3RHcm91cC50
ZXN0KCk7CisgICAgICAgIGNvbnN0IG1ldHJpY3MgPSBhbmFseXNpc1Rhc2subWV0cmljKCkgPyBb
YW5hbHlzaXNUYXNrLm1ldHJpYygpXSA6IHRlc3QubWV0cmljcygpOworCisKKyAgICAgICAgY29u
c3QgdGFibGVzV2l0aFN1bW1hcnkgPSBbXTsKKyAgICAgICAgbGV0IHRvdGFsUm93czsKKworICAg
ICAgICBmb3IgKGNvbnN0IG1ldHJpYyBvZiBtZXRyaWNzKSB7CisgICAgICAgICAgICB0b3RhbFJv
d3MgPSAwOworICAgICAgICAgICAgY29uc3QgdGFibGVIZWFkID0gZWxlbWVudCgndGhlYWQnLCBb
J0xhYmVsJywgJ1Jlc3VsdCcsICdBdmVyYWdlJ10ubWFwKChuYW1lKSA9PiBlbGVtZW50KCd0aCcs
IG5hbWUpKSk7CisgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBtZXRyaWMubWFrZUZvcm1h
dHRlcig0KTsKKyAgICAgICAgICAgIGNvbnN0IGRlbHRhRm9ybWF0dGVyID0gbWV0cmljLm1ha2VG
b3JtYXR0ZXIoMiwgZmFsc2UpOworICAgICAgICAgICAgY29uc3QgZm9ybWF0VmFsdWUgPSAodmFs
dWUsIGludGVydmFsKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBpbnRlcnZh
bCA/IChpbnRlcnZhbFsxXSAtIGludGVydmFsWzBdKSAvIDIgOiBudWxsOworICAgICAgICAgICAg
ICAgIGxldCByZXN1bHQgPSB2YWx1ZSA9PSBudWxsIHx8IGlzTmFOKHZhbHVlKSA/ICctJyA6IGZv
cm1hdHRlcih2YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhICE9IG51bGwgJiYgIWlz
TmFOKGRlbHRhKSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGAgXHUwMGIxICR7ZGVs
dGFGb3JtYXR0ZXIoZGVsdGEpfWA7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGNvbnN0IGFuYWx5c2lzUmVzdWx0c1ZpZXcgPSBh
bmFseXNpc1Jlc3VsdHMudmlld0Zvck1ldHJpYyhtZXRyaWMpOworICAgICAgICAgICAgY29uc3Qg
dGFibGVSb3dzID0gW107CisgICAgICAgICAgICBjb25zdCBhcnJheU9mVmFsdWVzID0gW107Cisg
ICAgICAgICAgICBjb25zdCBiYXJHcmFwaFBsYWNlaG9sZGVycyA9IFtdOworICAgICAgICAgICAg
bGV0IG1heFZhbHVlID0gbnVsbDsKKyAgICAgICAgICAgIGxldCBtaW5WYWx1ZSA9IG51bGw7CisK
KyAgICAgICAgICAgIGZvciAoY29uc3QgY29tbWl0U2V0IG9mIHJlcXVlc3RlZENvbW1pdFNldHMp
IHsKKyAgICAgICAgICAgICAgICBsZXQgZmlyc3RSb3cgPSB0cnVlOworICAgICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdHNGb3JDb21taXRTZXQgPSB0ZXN0R3JvdXAucmVxdWVzdHNGb3JD
b21taXRTZXQoY29tbWl0U2V0KTsKKyAgICAgICAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudFNl
dHMgPSBidWlsZFJlcXVlc3RzRm9yQ29tbWl0U2V0Lm1hcCgoYnVpbGRSZXF1ZXN0KSA9PiBhbmFs
eXNpc1Jlc3VsdHNWaWV3LnJlc3VsdEZvclJlcXVlc3QoYnVpbGRSZXF1ZXN0KSk7CisgICAgICAg
ICAgICAgICAgdG90YWxSb3dzICs9IG1lYXN1cmVtZW50U2V0cy5sZW5ndGg7CisKKyAgICAgICAg
ICAgICAgICBjb25zdCB2YWx1ZXMgPSBtZWFzdXJlbWVudFNldHMuZmlsdGVyKChyZXN1bHQpID0+
ICEhcmVzdWx0KS5tYXAoKHJlc3VsdCkgPT4gcmVzdWx0LnZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBhcnJheU9mVmFsdWVzLnB1c2godmFsdWVzKTsKKworICAgICAgICAgICAgICAgIGZvcihjb25z
dCBtZWFzdXJlbWVudCBvZiBtZWFzdXJlbWVudFNldHMpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y29uc3QgYmFyR3JhcGhQbGFjZWhvbGRlciA9IGVsZW1lbnQoJ2Rpdicse2NsYXNzOiAnYmFyLWdy
YXBoLXBsYWNlaG9sZGVyJ30pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBiYXJHcmFwaENv
bnRhaW5lciA9IGVsZW1lbnQoJ2RpdicsIHtjbGFzczogJ2Jhci1ncmFwaC1jb250YWluZXInfSwg
YmFyR3JhcGhQbGFjZWhvbGRlcik7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxFbGVt
ZW50ID0gZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdyZXN1bHQtY2VsbCd9LCBbbWVhc3VyZW1lbnQg
PyBmb3JtYXRWYWx1ZShtZWFzdXJlbWVudC52YWx1ZSwgbWVhc3VyZW1lbnQuaW50ZXJ2YWwpIDog
J0ZhaWxlZCcsIGJhckdyYXBoQ29udGFpbmVyXSk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYg
KG1lYXN1cmVtZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IG1heFZh
bHVlID09PSBudWxsID8gbWVhc3VyZW1lbnQudmFsdWUgOiBNYXRoLm1heChtYXhWYWx1ZSwgbWVh
c3VyZW1lbnQudmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgbWluVmFsdWUgPSBtaW5W
YWx1ZSA9PT0gbnVsbCA/IG1lYXN1cmVtZW50LnZhbHVlIDogTWF0aC5taW4obWluVmFsdWUsIG1l
YXN1cmVtZW50LnZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhckdyYXBoUGxhY2Vo
b2xkZXJzLnB1c2goW21lYXN1cmVtZW50LnZhbHVlLCBiYXJHcmFwaFBsYWNlaG9sZGVyXSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RSb3cp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Um93ID0gZmFsc2U7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0YWJsZVJvd3MucHVzaChlbGVtZW50KCd0cicsIFsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50KCd0ZCcsIHtyb3dzcGFuOiBidWlsZFJlcXVlc3RzRm9y
Q29tbWl0U2V0Lmxlbmd0aH0sIHRlc3RHcm91cC5sYWJlbEZvckNvbW1pdFNldChjb21taXRTZXQp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50KCd0ZCcsIHtyb3dzcGFuOiBidWlsZFJlcXVlc3RzRm9y
Q29tbWl0U2V0Lmxlbmd0aH0sIGZvcm1hdFZhbHVlKFN0YXRpc3RpY3MubWVhbih2YWx1ZXMpLCBT
dGF0aXN0aWNzLmNvbmZpZGVuY2VJbnRlcnZhbCh2YWx1ZXMpKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIF0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvd3MucHVzaChlbGVtZW50KCd0cics
IGNlbGxFbGVtZW50KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmb3IgKGNvbnN0IFt2YWx1ZSwgYmFyR3JhcGhQbGFjZWhvbGRlcl0gb2YgYmFyR3Jh
cGhQbGFjZWhvbGRlcnMpCisgICAgICAgICAgICAgICAgYmFyR3JhcGhQbGFjZWhvbGRlci5zdHls
ZS53aWR0aCA9IDIwICsgKHZhbHVlIC0gbWluVmFsdWUpIC8gKG1heFZhbHVlIC0gbWluVmFsdWUp
ICogMjgwICsgJ3B4JzsKKworICAgICAgICAgICAgY29uc3QgY29tcGFyaXNvbiA9IHRlc3RHcm91
cC5jb21wYXJlVGVzdFJlc3VsdHMobWV0cmljLCAuLi5hcnJheU9mVmFsdWVzKTsKKyAgICAgICAg
ICAgIGNvbnN0IGNoYW5nZVN0eWxlQ2xhc3MgPSAgYCR7Y29tcGFyaXNvbi5pc1N0YXRpc3RpY2Fs
bHlTaWduaWZpY2FudCA/IGNvbXBhcmlzb24uY2hhbmdlVHlwZSA6ICdpbnNpZ25pZmljYW50J30t
cmVzdWx0YDsKKyAgICAgICAgICAgIGNvbnN0IGNhcHRpb24gPSBlbGVtZW50KCdjYXB0aW9uJywg
W2Ake3Rlc3QubmFtZSgpfSAtICR7bWV0cmljLmFnZ3JlZ2F0b3JMYWJlbCgpfTogYCwKKyAgICAg
ICAgICAgICAgICBlbGVtZW50KCdsYWJlbCcsIHtjbGFzczogYGVtcGhhc2lzLWNvbnRlbnQgJHtj
aGFuZ2VTdHlsZUNsYXNzfWB9LCBjb21wYXJpc29uLmZ1bGxMYWJlbCldKTsKKworICAgICAgICAg
ICAgdGFibGVzV2l0aFN1bW1hcnkucHVzaChbZWxlbWVudCgndGFibGUnLCB7Y2xhc3M6ICdyZXN1
bHQtdGFibGUgJ30sIFtjYXB0aW9uLCB0YWJsZUhlYWQsIGVsZW1lbnQoJ3Rib2R5JywgdGFibGVS
b3dzKV0pXSk7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBjb21wbGV0ZWRDb3VudCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkuZmlsdGVyKChidWlsZFJlcXVlc3QpID0+IGJ1aWxkUmVx
dWVzdC5oYXNDb21wbGV0ZWQoKSkubGVuZ3RoOworICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9
IGVsZW1lbnQoJ2RpdicsIHtjbGFzczogJ2Rlc2NyaXB0aW9uJ30sIFtlbGVtZW50KCdsYWJlbCcs
IHtjbGFzczogJ2VtcGhhc2lzLWNvbnRlbnQnfSwgdGVzdEdyb3VwLm5hbWUoKSksICcgZnJvbSAn
LAorICAgICAgICAgICAgZWxlbWVudCgnbGFiZWwnLCB7Y2xhc3M6ICdlbXBoYXNpcy1jb250ZW50
J30sIGxpbmsoYW5hbHlzaXNUYXNrLm5hbWUoKSwgYW5hbHlzaXNVUkwpKSwgJyBoYXMgZmluaXNo
ZWQuIFN1Y2Nlc3MgcmF0ZTogJywKKyAgICAgICAgICAgIGVsZW1lbnQoJ2xhYmVsJywge2NsYXNz
OiAnZW1waGFzaXMtY29udGVudCd9LCBgJHtjb21wbGV0ZWRDb3VudH0gLyAke3RvdGFsUm93c30u
YCldKTsKKworICAgICAgICByZXR1cm4gZWxlbWVudCgnZGl2Jywge2lkOiAnbWVzc2FnZS1ib2R5
J30sIFtkZXNjcmlwdGlvbiwgdGFibGVzV2l0aFN1bW1hcnldKTsKKyAgICB9CisKKworICAgIHJl
bmRlcigpCisgICAgeworICAgICAgICBzdXBlci5yZW5kZXIoKTsKKyAgICAgICAgdGhpcy5yZW5k
ZXJSZXBsYWNlKHRoaXMuY29udGVudCgnbWVzc2FnZS1ib2R5JyksIHRoaXMuX2NvbnN0cnVjdFRh
Ymxlc0xhemlseS5ldmFsdWF0ZSh0aGlzLl90ZXN0R3JvdXAsIHRoaXMuX2FuYWx5c2lzUmVzdWx0
cywgdGhpcy5fYW5hbHlzaXNVUkwsIHRoaXMuX2FuYWx5c2lzVGFzaykpOworICAgIH0KKworCisg
ICAgc3RhdGljIGdldCBwYWdlQ29udGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gWydkaXYn
LCB7aWQ6ICdtZXNzYWdlLWJvZHknfV07CisgICAgfQorCisKKyAgICBzdGF0aWMgZ2V0IHN0eWxl
VGVtcGxhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICdib2R5Jzog
eworICAgICAgICAgICAgICAgICdkaXNwbGF5JzogJ2ZsZXgnLAorICAgICAgICAgICAgICAgICdq
dXN0aWZ5LWNvbnRlbnQnOiAnY2VudGVyJywKKyAgICAgICAgICAgICAgICAnZm9udCc6ICdTZXJp
ZicsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJy5kZXNjcmlwdGlvbic6IHsKKyAgICAg
ICAgICAgICAgICAnZm9udC1zaXplJzogJzE0cHQnLAorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICcuZW1waGFzaXMtY29udGVudCc6IHsKKyAgICAgICAgICAgICAgICAnZm9udC13ZWlnaHQn
OiAnYm9sZCcsCisgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcxNHB0JywKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAnY2FwdGlvbic6IHsKKyAgICAgICAgICAgICAgICAnYm9yZGVy
JzogJzFweCBzb2xpZCBncmF5JywKKyAgICAgICAgICAgICAgICAnZm9udC1zaXplJzogJzE0cHQn
LAorICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tJzogJzJweCcsCisgICAgICAgICAgICAg
ICAgJ21pbi13aWR0aCc6ICc2MDBweCcsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3Rk
JzogeworICAgICAgICAgICAgICAgICdib3JkZXInOiAnMXB4IHNvbGlkIGdyYXknLAorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICd0aCc6IHsKKyAgICAgICAgICAgICAgICAnYm9yZGVyJzog
JzFweCBzb2xpZCBncmF5JywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLnJlc3VsdC10
YWJsZSc6IHsKKyAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcCc6ICcyMHB4JywKKyAgICAgICAg
ICAgICAgICAnYm9yZGVyLXdpZHRoJzogJzFweCcsCisgICAgICAgICAgICAgICAgJ3RleHQtYWxp
Z24nOiAnY2VudGVyJywKKyAgICAgICAgICAgICAgICAnYm9yZGVyLWNvbGxhcHNlJzogJ2NvbGxh
cHNlJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLnJlc3VsdC1jZWxsJzogeworICAg
ICAgICAgICAgICAgICd3aWR0aCc6ICczMDBweCcsCisgICAgICAgICAgICAgICAgJ3Bvc2l0aW9u
JzogJ3JlbGF0aXZlJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLndvcnNlLXJlc3Vs
dCc6IHsKKyAgICAgICAgICAgICAgICAnY29sb3InOiAnI2MzMycsCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgJy5iZXR0ZXItcmVzdWx0JzogeworICAgICAgICAgICAgICAgICdjb2xvcic6
ICcjMzNjJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLmluc2lnbmlmaWNhbnQtcmVz
dWx0JzogeworICAgICAgICAgICAgICAgICdjb2xvcic6ICdncmF5JywKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAnLmJhci1ncmFwaC1jb250YWluZXInOiB7CisgICAgICAgICAgICAgICAg
J3Bvc2l0aW9uJzogJ2Fic29sdXRlJywKKyAgICAgICAgICAgICAgICAnbGVmdCc6IDAsCisgICAg
ICAgICAgICAgICAgJ3RvcCc6IDAsCisgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzEwMCUnLAor
ICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMTAwJScsCisgICAgICAgICAgICAgICAgJ3otaW5k
ZXgnOiAtMSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLmJhci1ncmFwaC1wbGFjZWhv
bGRlcic6IHsKKyAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICdnYWluc2Jvcm8n
LAorICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMTAwJScsCisgICAgICAgICAgICAgICAgJ3dp
ZHRoJzogJzBweCcsCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKworaWYg
KHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7CisgICAgbW9kdWxlLmV4cG9ydHMuQW5h
bHlzaXNSZXN1bHRzTm90aWZpZXIgPSBBbmFseXNpc1Jlc3VsdHNOb3RpZmllcjsKKyAgICBtb2R1
bGUuZXhwb3J0cy5Ob3RpZmljYXRpb25TZXJ2aWNlID0gTm90aWZpY2F0aW9uU2VydmljZTsKK30K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdG9vbHMvanMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21lYXN1cmVtZW50LXNldC1hbmFseXplci5qcwppbmRl
eCAyZGIwNDdhNGJkMTQ4YTEzODg0ZGQ0ZGZmYTZhNGQ3ODA3NGRlNDY5Li5jOTNiOTBiZWNmOGI5
ZDY3MGY0NTNmOWJjM2U0NzM5ZmY5Y2NjODU2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdG9vbHMvanMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXIuanMK
QEAgLTEwNCw3ICsxMDQsNyBAQCBjbGFzcyBNZWFzdXJlbWVudFNldEFuYWx5emVyIHsKIAogICAg
ICAgICAvLyBGSVhNRTogVGhlIGl0ZXJhdGlvbiBjb3VudCBzaG91bGQgYmUgc21hcnRlciB0aGFu
IGhhcmQtY29kaW5nLgogICAgICAgICBjb25zdCBhbmFseXNpc1Rhc2sgPSBhd2FpdCBBbmFseXNp
c1Rhc2suY3JlYXRlKHN1bW1hcnksIHJhbmdlV2l0aE1vc3RTaWduaWZpY2FudENoYW5nZS5zdGFy
dFBvaW50LAotICAgICAgICAgICAgcmFuZ2VXaXRoTW9zdFNpZ25pZmljYW50Q2hhbmdlLmVuZFBv
aW50LCAnQ29uZmlybScsIDQpOworICAgICAgICAgICAgcmFuZ2VXaXRoTW9zdFNpZ25pZmljYW50
Q2hhbmdlLmVuZFBvaW50LCAnQ29uZmlybScsIDQsIHRydWUpOwogCiAgICAgICAgIHRoaXMuX2xv
Z2dlci5pbmZvKGBDcmVhdGVkIGFuYWx5c2lzIHRhc2sgd2l0aCBpZCAiJHthbmFseXNpc1Rhc2su
aWQoKX0iIHRvIGNvbmZpcm06ICIke3N1bW1hcnl9Ii5gKTsKICAgICB9CmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwppbmRleCBlMWIyNDljNGYxNzQ1
NDlhZDA2ODliZTYwZTlmNzliNzlmN2ViZTg0Li5mMjA4ZTg0OGYwNTYzMzUwYzNhY2I1NTFmZjg5
ODJhM2M4ZmY0MjgwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvdjMtbW9kZWxzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92
My1tb2RlbHMuanMKQEAgLTExLDYgKzExLDcgQEAgaW1wb3J0RnJvbVYzKCdtb2RlbHMvZGF0YS1t
b2RlbC5qcycsICdEYXRhTW9kZWxPYmplY3QnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL2RhdGEt
bW9kZWwuanMnLCAnTGFiZWxlZE9iamVjdCcpOwogCiBpbXBvcnRGcm9tVjMoJ21vZGVscy9hbmFs
eXNpcy10YXNrLmpzJywgJ0FuYWx5c2lzVGFzaycpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMvYW5h
bHlzaXMtcmVzdWx0cy5qcycsICdBbmFseXNpc1Jlc3VsdHMnKTsKIGltcG9ydEZyb21WMygnbW9k
ZWxzL2J1Zy5qcycsICdCdWcnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL2J1Zy10cmFja2VyLmpz
JywgJ0J1Z1RyYWNrZXInKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMn
LCAnQnVpbGRSZXF1ZXN0Jyk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvcnVuLWFuYWx5c2lzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3J1
bi1hbmFseXNpcy5qcwppbmRleCAwODFhMGQxMDRjYmQ0MjE1MDEyYjhiNmEzZGVkYmE4OTliODkz
ZDllLi43OGRlYjI2NTQxOTAwYTJhNzExOWMyOWYxMWQ0MjA4NzI0MzFmYjM0IDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvcnVuLWFuYWx5c2lzLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9ydW4tYW5hbHlzaXMuanMKQEAgLTMsNyArMywx
MCBAQAogY29uc3QgZnMgPSByZXF1aXJlKCdmcycpOwogY29uc3QgcGFyc2VBcmd1bWVudHMgPSBy
ZXF1aXJlKCcuL2pzL3BhcnNlLWFyZ3VtZW50cy5qcycpLnBhcnNlQXJndW1lbnRzOwogY29uc3Qg
UmVtb3RlQVBJID0gcmVxdWlyZSgnLi9qcy9yZW1vdGUuanMnKS5SZW1vdGVBUEk7Ci1jb25zdCBN
ZWFzdXJlbWVudFNldEFuYWx5emVyID0gcmVxdWlyZSgnLi9qcy9tZWFzdXJlbWVudC1zZXQtYW5h
bHl6ZXInKS5NZWFzdXJlbWVudFNldEFuYWx5emVyOworY29uc3QgTWVhc3VyZW1lbnRTZXRBbmFs
eXplciA9IHJlcXVpcmUoJy4vanMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLmpzJykuTWVhc3Vy
ZW1lbnRTZXRBbmFseXplcjsKK2NvbnN0IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyID0gcmVxdWly
ZSgnLi9qcy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLmpzJykuQW5hbHlzaXNSZXN1bHRzTm90
aWZpZXI7Citjb25zdCBOb3RpZmljYXRpb25TZXJ2aWNlID0gcmVxdWlyZSgnLi9qcy9hbmFseXNp
cy1yZXN1bHRzLW5vdGlmaWVyLmpzJykuTm90aWZpY2F0aW9uU2VydmljZTsKK2NvbnN0IFN1YnBy
b2Nlc3MgPSByZXF1aXJlKCcuL2pzL3N1YnByb2Nlc3MuanMnKS5TdWJwcm9jZXNzOwogcmVxdWly
ZSgnLi9qcy92My1tb2RlbHMuanMnKTsKIGdsb2JhbC5Qcml2aWxlZ2VkQVBJID0gcmVxdWlyZSgn
Li9qcy9wcml2aWxlZ2VkLWFwaS5qcycpLlByaXZpbGVnZWRBUEk7CiAKQEAgLTExLDYgKzE0LDcg
QEAgZnVuY3Rpb24gbWFpbihhcmd2KQogewogICAgIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3Vt
ZW50cyhhcmd2LCBbCiAgICAgICAgIHtuYW1lOiAnLS1zZXJ2ZXItY29uZmlnLWpzb24nLCByZXF1
aXJlZDogdHJ1ZX0sCisgICAgICAgIHtuYW1lOiAnLS1ub3RpZmljYXRpb24tY29uZmlnLWpzb24n
LCByZXF1aXJlZDogdHJ1ZX0sCiAgICAgICAgIHtuYW1lOiAnLS1hbmFseXNpcy1yYW5nZS1pbi1k
YXlzJywgdHlwZTogcGFyc2VGbG9hdCwgZGVmYXVsdDogMTB9LAogICAgICAgICB7bmFtZTogJy0t
c2Vjb25kcy10by1zbGVlcCcsIHR5cGU6IHBhcnNlRmxvYXQsIGRlZmF1bHQ6IDEyMDB9LAogICAg
IF0pOwpAQCAtMjYsNiArMzAsNyBAQCBhc3luYyBmdW5jdGlvbiBhbmFseXNpc0xvb3Aob3B0aW9u
cykKICAgICBsZXQgc2Vjb25kc1RvU2xlZXA7CiAgICAgdHJ5IHsKICAgICAgICAgY29uc3Qgc2Vy
dmVyQ29uZmlnID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMob3B0aW9uc1snLS1zZXJ2ZXIt
Y29uZmlnLWpzb24nXSwgJ3V0Zi04JykpOworICAgICAgICBjb25zdCBub3RpZmljYXRpb25Db25m
aWcgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhvcHRpb25zWyctLW5vdGlmaWNhdGlvbi1j
b25maWctanNvbiddLCAndXRmLTgnKSk7CiAgICAgICAgIGNvbnN0IGFuYWx5c2lzUmFuZ2VJbkRh
eXMgPSBvcHRpb25zWyctLWFuYWx5c2lzLXJhbmdlLWluLWRheXMnXTsKICAgICAgICAgc2Vjb25k
c1RvU2xlZXAgPSBvcHRpb25zWyctLXNlY29uZHMtdG8tc2xlZXAnXTsKICAgICAgICAgZ2xvYmFs
LlJlbW90ZUFQSSA9IG5ldyBSZW1vdGVBUEkoc2VydmVyQ29uZmlnLnNlcnZlcik7CkBAIC00MCw2
ICs0NSwxNyBAQCBhc3luYyBmdW5jdGlvbiBhbmFseXNpc0xvb3Aob3B0aW9ucykKIAogICAgICAg
ICBjb25zb2xlLmxvZyhgU3RhcnQgYW5hbHl6aW5nIGxhc3QgJHthbmFseXNpc1JhbmdlSW5EYXlz
fSBkYXlzIG1lYXN1cmVtZW50IHNldHMuYCk7CiAgICAgICAgIGF3YWl0IGFuYWx5emVyLmFuYWx5
emVPbmNlKCk7CisKKyAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5m
ZXRjaEFsbFdpdGhQZW5kaW5nTm90aWZpY2F0aW9uKCk7CisKKyAgICAgICAgY29uc3Qgbm90aWZp
Y2F0aW9uUmVtb3ZlQVBJID0gbmV3IFJlbW90ZUFQSShub3RpZmljYXRpb25Db25maWcubm90aWZp
Y2F0aW9uU2VydmVyQ29uZmlnKTsKKyAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uU2VydmljZSA9
IG5ldyBOb3RpZmljYXRpb25TZXJ2aWNlKG5vdGlmaWNhdGlvblJlbW92ZUFQSSwgbm90aWZpY2F0
aW9uQ29uZmlnLm5vdGlmaWNhdGlvblNlcnZlckNvbmZpZy5wYXRoKTsKKworICAgICAgICBjb25z
dCBub3RpZmljYXRpb25NZXNzYWdlQ29uZmlnID0gbm90aWZpY2F0aW9uQ29uZmlnLm5vdGlmaWNh
dGlvbk1lc3NhZ2VDb25maWc7CisgICAgICAgIGNvbnN0IG5vdGlmaWVyID0gbmV3IEFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyKG5vdGlmaWNhdGlvbk1lc3NhZ2VDb25maWcubWVzc2FnZVRlbXBsYXRl
LCBub3RpZmljYXRpb25NZXNzYWdlQ29uZmlnLmZpbmFsaXplU2NyaXB0LAorICAgICAgICAgICAg
bm90aWZpY2F0aW9uTWVzc2FnZUNvbmZpZy5tZXNzYWdlQ29uc3RydWN0aW9uUnVsZXMsIG5vdGlm
aWNhdGlvblNlcnZpY2UsIG5ldyBTdWJwcm9jZXNzKTsKKworICAgICAgICBhd2FpdCBub3RpZmll
ci5zZW5kTm90aWZpY2F0aW9uc0ZvclRlc3RHcm91cHModGVzdEdyb3Vwcyk7CiAgICAgfSBjYXRj
aChlcnJvcikgewogICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgYW5hbHl6ZSBtZWFzdXJl
bWVudCBzZXRzIGR1ZSB0byAke2Vycm9yfWApOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXItdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1
bHRzLW5vdGlmaWVyLXRlc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYTQwZGVmZDhkODE4M2VjNWZkYzVj
MTFiN2FkMTk0YjJkOGIyNmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLXRlc3RzLmpzCkBAIC0w
LDAgKzEsMTA2IEBACisndXNlIHN0cmljdCc7CisKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fz
c2VydCcpOworY29uc3QgTW9ja1JlbW90ZUFQSSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2st
cmVtb3RlLWFwaS5qcycpLk1vY2tSZW1vdGVBUEk7Citjb25zdCBBbmFseXNpc1Jlc3VsdHNOb3Rp
ZmllciA9IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXIuanMn
KS5BbmFseXNpc1Jlc3VsdHNOb3RpZmllcjsKK2NvbnN0IE5vdGlmaWNhdGlvblNlcnZpY2UgPSBy
ZXF1aXJlKCcuLi90b29scy9qcy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLmpzJykuTm90aWZp
Y2F0aW9uU2VydmljZTsKK2NvbnN0IGFzc2VydFRocm93cyA9IHJlcXVpcmUoJy4uL3NlcnZlci10
ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMnKS5hc3NlcnRUaHJvd3M7CisKK2Rlc2Ny
aWJlKCdBbmFseXNpc1Jlc3VsdHNOb3RpZmllcicsICgpID0+IHsKKyAgICBkZXNjcmliZSgnX2J1
aWxkTWF0Y2hpbmdDcml0ZXJpYUJ5RW1haWxHcm91cCcsICgpID0+IHsKKworICAgICAgICBjb25z
dCB0cnVua01hY0Jvb2sgPSAnVHJ1bmsgTWFjQm9vayc7CisgICAgICAgIGNvbnN0IHRydW5rTWFj
Qm9va1BybyA9ICdUcnVuayBNYWNCb29rIFBybyc7CisgICAgICAgIGNvbnN0IHRydW5rTWFjQm9v
a0FpciA9ICdUcnVuayBNYWNCb29rIEFpcic7CisgICAgICAgIGNvbnN0IHNwZWVkb21ldGVyID0g
J3NwZWVkb21ldGVyJzsKKyAgICAgICAgY29uc3Qgc3BlZWRvbWV0ZXIyID0gJ3NwZWVkb21ldGVy
LTInOworICAgICAgICBjb25zdCBqZXRTdHJlYW0gPSAnSmV0U3RyZWFtJzsKKworICAgICAgICBp
dCgnc2hvdWxkIHJldHVybiBhIGdyb3VwIG9mIG1hdGNoaW5nIGZ1bmN0aW9uIGJhc2VkIG9uIGNv
bmZpZ3VyYXRpb24nLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBydWxlcyA9IEFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyLl9idWlsZE1lc3NhZ2VDb25zdHJ1Y3Rpb25SdWxlcyhbCisgICAgICAg
ICAgICAgICAge3Rlc3RzOiBbc3BlZWRvbWV0ZXIsIHNwZWVkb21ldGVyMl0sIHBsYXRmb3Jtczog
W3RydW5rTWFjQm9vaywgdHJ1bmtNYWNCb29rUHJvXSwgcGFyYW1ldGVyczoge319LAorICAgICAg
ICAgICAgICAgIHt0ZXN0czogW2pldFN0cmVhbV0sIHBhcmFtZXRlcnM6IHt9fSwKKyAgICAgICAg
ICAgIF0pOworICAgICAgICAgICAgbGV0IG1hdGNoaW5nRnVuY3Rpb24gPSBydWxlc1swXVswXTsK
KyAgICAgICAgICAgIGFzc2VydC5vayhtYXRjaGluZ0Z1bmN0aW9uKHRydW5rTWFjQm9vaywgc3Bl
ZWRvbWV0ZXIpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhtYXRjaGluZ0Z1bmN0aW9uKHRydW5r
TWFjQm9vaywgc3BlZWRvbWV0ZXIyKSk7CisgICAgICAgICAgICBhc3NlcnQub2sobWF0Y2hpbmdG
dW5jdGlvbih0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyKSk7CisgICAgICAgICAgICBhc3Nl
cnQub2sobWF0Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMikpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFtYXRjaGluZ0Z1bmN0aW9uKHRydW5rTWFjQm9vaywgamV0
U3RyZWFtKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIW1hdGNoaW5nRnVuY3Rpb24odHJ1bmtN
YWNCb29rQWlyLCBzcGVlZG9tZXRlcikpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFtYXRjaGlu
Z0Z1bmN0aW9uKHRydW5rTWFjQm9va0FpciwgamV0U3RyZWFtKSk7CisKKyAgICAgICAgICAgIG1h
dGNoaW5nRnVuY3Rpb24gPSBydWxlc1sxXVswXTsKKyAgICAgICAgICAgIGFzc2VydC5vayghbWF0
Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyKSk7CisgICAgICAgICAgICBh
c3NlcnQub2soIW1hdGNoaW5nRnVuY3Rpb24odHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIpKTsK
KyAgICAgICAgICAgIGFzc2VydC5vayghbWF0Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jvb2tQcm8s
IHNwZWVkb21ldGVyKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIW1hdGNoaW5nRnVuY3Rpb24o
dHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayht
YXRjaGluZ0Z1bmN0aW9uKHRydW5rTWFjQm9vaywgamV0U3RyZWFtKSk7CisgICAgICAgICAgICBh
c3NlcnQub2sobWF0Y2hpbmdGdW5jdGlvbih0cnVua01hY0Jvb2tQcm8sIGpldFN0cmVhbSkpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKG1hdGNoaW5nRnVuY3Rpb24odHJ1bmtNYWNCb29rQWlyLCBq
ZXRTdHJlYW0pKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgnX2FwcGx5
VXBkYXRlJywgKCkgPT4geworICAgICAgICBpdCgnc2hvdWxkIHNldCB2YWx1ZSBkaXJlY3RseSBp
ZiBrZXkgZG9lcyBub3QgZXhpc3QgaW4gYW5vdGhlciBvYmplY3QnLCAoKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCBtZXJnZWQgPSBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fYXBwbHlVcGRhdGUo
e2E6IDF9LCB7YjogMn0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChtZXJnZWQsIHth
OiAxLCBiOiAyfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgY29uY2F0ZW5h
dGUgYXJyYXlzIGlmIGJvdGggYXJlIGFycmF5JywgKCkgPT4geworICAgICAgICAgICAgY29uc3Qg
bWVyZ2VkID0gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX2FwcGx5VXBkYXRlKHthOiBbMV19LCB7
YTogWzJdfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG1lcmdlZCwge2E6IFsxLCAy
XX0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGFkZCB0byB0aGUgYXJyYXkg
aWYgb25seSBvbmUgc2lkZSBpcyBhcnJheScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG1l
cmdlZCA9IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9hcHBseVVwZGF0ZSh7YTogWzFdLCBiOiAx
fSwge2E6IDIsIGI6IFsyXX0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChtZXJnZWQs
IHthOiBbMSwgMl0sIGI6IFsxLCAyXX0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hv
dWxkIG1lcmdlIHJlY3Vyc2l2ZWx5JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgbWVyZ2Vk
ID0gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX2FwcGx5VXBkYXRlKHthOiB7YjogMX19LCB7YTog
e2I6IFsyXX19KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkLCB7YToge2I6
IFsxLCAyXX19KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtZXJnZSB2YWx1
ZXMgaW50byBhcnJheSBpZiBvbmUgb2YgdmFsdWUgd2l0aCBzYW1lIGtleSBpcyBvbmUgb2YgZm9s
bG93IHByaW1pdGl2ZSB0eXBlczogbnVtYmVyLCBzdHJpbmcgYW5kIGJvb2xlYW4nLCAoKSA9PiB7
CisgICAgICAgICAgICBjb25zdCBtZXJnZWQgPSBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fYXBw
bHlVcGRhdGUoe2E6IDEsIGI6ICJhIiwgYzogMSwgZDogdHJ1ZSwgZToge319LCB7YTogMiwgYjog
ImIiLCBjOiAiYiIsIGQ6IDIsIGU6IDF9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
bWVyZ2VkLCB7YTogWzEsIDJdLCBiOiBbImEiLCAiYiJdLCBjOiBbMSwgImIiXSwgZDogW3RydWUs
IDJdLCBlOiBbe30sIDFdfSk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKK2Rlc2NyaWJl
KCdOb3RpZmljYXRpb25TZXJ2aWNlJywgKCkgPT4geworCisgICAgZGVzY3JpYmUoJ3NlbmROb3Rp
ZmljYXRpb24nLCAoKSA9PiB7CisgICAgICAgIGJlZm9yZUVhY2goKCkgPT4geworICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgnaHR0cDovL3NlbmQtbm90aWZpY2F0aW9uLndlYmtpdC5v
cmcvJyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzZW5kIGEgbm90aWZpY2F0aW9uIHN1
Y2Nlc3NmdWxseScsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlv
blNlcnZpY2UgPSBuZXcgTm90aWZpY2F0aW9uU2VydmljZShNb2NrUmVtb3RlQVBJLCAnc2VuZC1u
b3RpZmljYXRpb24nKTsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBub3RpZmljYXRpb25T
ZXJ2aWNlLnNlbmROb3RpZmljYXRpb24oJ3Rlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0ID0gTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0LmRhdGEsICd0ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdC51cmwsICdzZW5kLW5vdGlmaWNhdGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3QubWV0aG9kLCAnUE9TVCcpOworCisgICAgICAgICAgICByZXF1ZXN0LnJlc29sdmUo
J29rJyk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNlOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdCwgJ29rJyk7CisgICAgICAgIH0pOworCisgICAgICAg
IGl0KCdzaG91bGQgZmFpbCBpZiBub3RpZmljYXRpb24gcmVxdWVzdCBnZXRzIHJlamVjdGVkJywg
YXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uU2VydmljZSA9IG5l
dyBOb3RpZmljYXRpb25TZXJ2aWNlKE1vY2tSZW1vdGVBUEksICdzZW5kLW5vdGlmaWNhdGlvbicp
OworICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IG5vdGlmaWNhdGlvblNlcnZpY2Uuc2VuZE5v
dGlmaWNhdGlvbigndGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Qu
ZGF0YSwgJ3Rlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgJ3Nl
bmQtbm90aWZpY2F0aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5tZXRo
b2QsICdQT1NUJyk7CisKKyAgICAgICAgICAgIHJlcXVlc3QucmVqZWN0KCd1bmF2YWlsYWJsZScp
OworICAgICAgICAgICAgYXNzZXJ0VGhyb3dzKCd1bmF2YWlsYWJsZScsICgpID0+IHByb21pc2Up
OworICAgICAgICB9KTsKKyAgICB9KTsKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lz
LXRhc2stdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFs
eXNpcy10YXNrLXRlc3RzLmpzCmluZGV4IDAwOGRmM2Y4YTViMDY3NmRiMGQxOTI0YTNhNTViNDUz
ZTA5MzQ3ODguLmQ4NDVjOTEwYmE3NWVjZTM0OWFmNGUzNGQxMmM0NDNmNGEyNDcxMDMgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXRhc2st
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlz
aXMtdGFzay10ZXN0cy5qcwpAQCAtMzA0LDcgKzMwNCw3IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rh
c2snLCAoKSA9PiB7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYW5hbHlzaXMgdGFzayB3
aXRoIGNvbmZpcm1pbmcgcmVwZXRpdGlvbiBjb3VudCBzcGVjaWZpZWQnLCBhc3luYyAoKSA9PiB7
CiAgICAgICAgICAgICBjb25zdCBbc3RhcnRQb2ludCwgZW5kUG9pbnRdID0gbW9ja1N0YXJ0QW5k
RW5kUG9pbnRzKCk7Ci0gICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywg
c3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywgNCk7CisgICAgICAgICAgICBBbmFseXNp
c1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywg
NCwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvcHJpdmlsZWdlZC1h
cGkvZ2VuZXJhdGUtY3NyZi10b2tlbicpOwogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2
ZSh7CkBAIC0zMTUsNyArMzE1LDI5IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCAoKSA9PiB7
CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS1hbmFseXNpcy10YXNrJyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0
YSwge25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiA0LAorICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0
aW9uQ291bnQ6IDQsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLAorICAgICAgICAgICAgICAgIHN0
YXJ0UnVuOiAxLCBlbmRSdW46IDIsIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgdG9rZW46ICdh
YmMnLCByZXZpc2lvblNldHM6IFsKKyAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lv
bjogJ3dlYmtpdC1yZXZpc2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9
LAorICAgICAgICAgICAgICAgICAgICAgICAgJzIyJzoge3JldmlzaW9uOiAnaW9zLXJldmlzaW9u
LTEnLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19LAorICAgICAgICAgICAgICAg
ICAgICB7JzExJzoge3JldmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTInLCBvd25lclJldmlzaW9u
OiBudWxsLCBwYXRjaDogbnVsbH0sCisgICAgICAgICAgICAgICAgICAgICAgICAnMjInOiB7IHJl
dmlzaW9uOiAnaW9zLXJldmlzaW9uLTInLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVs
bH19XX0KKyAgICAgICAgICAgICk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
Y3JlYXRlIGFuYWx5c2lzIHRhc2sgYW5kIHRlc3QgZ3JvdXBzIHdpdGggIm5lZWRzTm90aWZpY2F0
aW9uIiBzZXQgdG8gZmFsc2UgaWYgc3BlY2lmaWVkIGluIGNyZWF0aW9uJywgYXN5bmMgKCkgPT4g
eworICAgICAgICAgICAgY29uc3QgW3N0YXJ0UG9pbnQsIGVuZFBvaW50XSA9IG1vY2tTdGFydEFu
ZEVuZFBvaW50cygpOworICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZSgnY29uZmlybScs
IHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29uZmlybScsIDQsIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2Vu
Jyk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICAgICB0
b2tlbjogJ2FiYycsCisgICAgICAgICAgICAgICAgZXhwaXJhdGlvbjogRGF0ZS5ub3coKSArIDM2
MDAgKiAxMDAwLAorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1sxXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0
aW9uQ291bnQ6IDQsIG5lZWRzTm90aWZpY2F0aW9uOiBmYWxzZSwKICAgICAgICAgICAgICAgICBz
dGFydFJ1bjogMSwgZW5kUnVuOiAyLCB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHRva2VuOiAn
YWJjJywgcmV2aXNpb25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2aXNp
b246ICd3ZWJraXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxs
fSwKICAgICAgICAgICAgICAgICAgICAgICAgICcyMic6IHtyZXZpc2lvbjogJ2lvcy1yZXZpc2lv
bi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKQEAgLTMyNiw3ICszNDgs
NyBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4gewogCiAgICAgICAgIGl0KCdzaG91
bGQgc3luYyB0aGUgbmV3IGFuYWx5c2lzIHRhc2sgc3RhdHVzIG9uY2UgaXQgaXMgY3JlYXRlZCcs
IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtzdGFydFBvaW50LCBlbmRQb2ludF0g
PSBtb2NrU3RhcnRBbmRFbmRQb2ludHMoKTsKLSAgICAgICAgICAgIGNvbnN0IGNyZWF0aW5nUHJv
bWlzZSA9IEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2lu
dCwgJ0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIGNvbnN0IGNyZWF0aW5nUHJvbWlzZSA9IEFu
YWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZp
cm0nLCA0LCB0cnVlKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9wcml2aWxl
Z2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5y
ZXNvbHZlKHsKQEAgLTMzNyw3ICszNTksNyBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkg
PT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzaycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFd
LmRhdGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdjb25maXJtJywgcmVw
ZXRpdGlvbkNvdW50OiA0LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAg
ICBzdGFydFJ1bjogMSwgZW5kUnVuOiAyLCB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHRva2Vu
OiAnYWJjJywgcmV2aXNpb25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2
aXNpb246ICd3ZWJraXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBu
dWxsfSwKICAgICAgICAgICAgICAgICAgICAgICAgICcyMic6IHtyZXZpc2lvbjogJ2lvcy1yZXZp
c2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKQEAgLTM4Nyw3ICs0
MDksNyBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4gewogCiAgICAgICAgIGl0KCdz
aG91bGQgcmV0dXJuIGFuIHJlamVjdGVkIHByb21pc2Ugd2hlbiBhbmFseXNpcyB0YXNrIGNyZWF0
aW9uIGZhaWxlZCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtzdGFydFBvaW50
LCBlbmRQb2ludF0gPSBtb2NrU3RhcnRBbmRFbmRQb2ludHMoKTsKLSAgICAgICAgICAgIGNvbnN0
IGNyZWF0aW5nUHJvbWlzZSA9IEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBv
aW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIGNvbnN0IGNyZWF0aW5n
UHJvbWlzZSA9IEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQ
b2ludCwgJ0NvbmZpcm0nLCA0LCB0cnVlKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVy
bCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7CiAgICAgICAgICAgICBy
ZXF1ZXN0c1swXS5yZXNvbHZlKHsKQEAgLTM5OCw3ICs0MjAsNyBAQCBkZXNjcmliZSgnQW5hbHlz
aXNUYXNrJywgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzaycpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcXVlc3RzWzFdLmRhdGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdj
b25maXJtJywgcmVwZXRpdGlvbkNvdW50OiA0LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAg
ICAgICAgICAgICAgICBzdGFydFJ1bjogMSwgZW5kUnVuOiAyLCB0ZXN0R3JvdXBOYW1lOiAnQ29u
ZmlybScsIHRva2VuOiAnYWJjJywgcmV2aXNpb25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAg
IHsnMTEnOiB7cmV2aXNpb246ICd3ZWJraXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51
bGwsIHBhdGNoOiBudWxsfSwKICAgICAgICAgICAgICAgICAgICAgICAgICcyMic6IHtyZXZpc2lv
bjogJ2lvcy1yZXZpc2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwK
QEAgLTQzMiwxMCArNDU0LDEwIEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCAoKSA9PiB7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYW5hbHlzaXMgdGFzayB3aXRoIGNvbmZpcm1pbmcg
cmVwZXRpdGlvbiBjb3VudCBzcGVjaWZpZWQnLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBb
c3RhcnRQb2ludCwgZW5kUG9pbnRdID0gbW9ja1N0YXJ0QW5kRW5kUG9pbnRzKCk7Ci0gICAgICAg
ICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwgZW5kUG9pbnQs
ICdDb25maXJtJywgNCk7CisgICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJt
Jywgc3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywgNCwgdHJ1ZSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1h
bmFseXNpcy10YXNrJyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0YSwge25h
bWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiA0LAorICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291
bnQ6IDQsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHN0YXJ0UnVu
OiAxLCBlbmRSdW46IDIsIHNsYXZlTmFtZTogJ3dvcmtlcicsIHNsYXZlUGFzc3dvcmQ6ICdwYXNz
d29yZCcsCiAgICAgICAgICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLCByZXZpc2lv
blNldHM6IFsKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dlYmtpdC1y
ZXZpc2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LApkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFu
YWx5emVyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVh
c3VyZW1lbnQtc2V0LWFuYWx5emVyLXRlc3RzLmpzCmluZGV4IDZhODlmMzUzMjQ0MGQzMjY5Mzc4
YTI3YjgwYTBjM2NjNGM1ZGYxM2MuLmFhNTAwODFkMGM5ZmM1ZjZlZGJhYTA2NzU1MDRhMzg1ODE1
NzI3NTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21l
YXN1cmVtZW50LXNldC1hbmFseXplci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMKQEAgLTE4
OSw2ICsxODksNyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsK
ICAgICAgICAgICAgICAgICBlbmRSdW46IDY0NDMsCiAgICAgICAgICAgICAgICAgcmVwZXRpdGlv
bkNvdW50OiA0LAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAg
ICAgICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICBy
ZXZpc2lvblNldHM6IFt7JzExJzoge3JldmlzaW9uOiAzNSwgb3duZXJSZXZpc2lvbjogbnVsbCwg
cGF0Y2g6IG51bGx9fSwKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogNDQs
IG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX1dCiAgICAgICAgICAgICB9KTsKQEAg
LTI0Miw2ICsyNDMsNyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+
IHsKICAgICAgICAgICAgICAgICBlbmRSdW46IDY0NDMsCiAgICAgICAgICAgICAgICAgcmVwZXRp
dGlvbkNvdW50OiA0LAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywK
KyAgICAgICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAg
ICByZXZpc2lvblNldHM6IFt7JzExJzoge3JldmlzaW9uOiAzNSwgb3duZXJSZXZpc2lvbjogbnVs
bCwgcGF0Y2g6IG51bGx9fSwKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjog
NDQsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX1dCiAgICAgICAgICAgICB9KTsK
QEAgLTM4Niw2ICszODgsNyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgp
ID0+IHsKICAgICAgICAgICAgICAgICBlbmRSdW46IDY0NDgsCiAgICAgICAgICAgICAgICAgcmVw
ZXRpdGlvbkNvdW50OiA0LAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJt
JywKKyAgICAgICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAg
ICAgICByZXZpc2lvblNldHM6IFt7JzExJzoge3JldmlzaW9uOiA0MCwgb3duZXJSZXZpc2lvbjog
bnVsbCwgcGF0Y2g6IG51bGx9fSwKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lv
bjogNDksIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX1dCiAgICAgICAgICAgICB9
KTsKQEAgLTQ3Miw2ICs0NzUsNyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcics
ICgpID0+IHsKICAgICAgICAgICAgICAgICBlbmRSdW46IDY0MDcsCiAgICAgICAgICAgICAgICAg
cmVwZXRpdGlvbkNvdW50OiA0LAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25m
aXJtJywKKyAgICAgICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAg
ICAgICAgICByZXZpc2lvblNldHM6IFt7JzExJzoge3JldmlzaW9uOiAzLCBvd25lclJldmlzaW9u
OiBudWxsLCBwYXRjaDogbnVsbH19LAogICAgICAgICAgICAgICAgICAgICB7JzExJzoge3Jldmlz
aW9uOiA4LCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19XQogICAgICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNv
dXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qcwppbmRleCBiZTQzZmVlYmJiYTczNWNm
ODU0N2MxYjI2ODVlMzZmYzFkOTU3NjYwLi4yZjQ1MWU0YWJjYTAwYWNjYTFkN2FlMjEzYjcyYTM3
Yzc0M2YxZWUxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0
cy9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMKQEAgLTY5LDE0ICs2
OSwxNCBAQCB2YXIgTW9ja1JlbW90ZUFQSSA9IHsKICAgICAgICAgICAgIGdsb2JhbC5SZW1vdGVB
UEkgPSBNb2NrUmVtb3RlQVBJOwogICAgICAgICAgICAgb3JpZ2luYWxQcml2aWxlZ2VkQVBJID0g
Z2xvYmFsLlByaXZpbGVnZWRBUEk7CiAgICAgICAgICAgICBnbG9iYWwuUHJpdmlsZWdlZEFQSSA9
IHByaXZpbGVnZWRBUEk7Ci0gICAgICAgICAgICBpZiAocHJpdmlsZWdlZEFQSS5fdG9rZW4pCisg
ICAgICAgICAgICBpZiAocHJpdmlsZWdlZEFQSSAmJiBwcml2aWxlZ2VkQVBJLl90b2tlbikKICAg
ICAgICAgICAgICAgICBwcml2aWxlZ2VkQVBJLl90b2tlbiA9IG51bGw7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIGFmdGVyRWFjaCgoKSA9PiB7CiAgICAgICAgICAgICBnbG9iYWwuUmVtb3RlQVBJ
ID0gb3JpZ2luYWxSZW1vdGVBUEk7CiAgICAgICAgICAgICBnbG9iYWwuUHJpdmlsZWdlZEFQSSA9
IG9yaWdpbmFsUHJpdmlsZWdlZEFQSTsKLSAgICAgICAgICAgIGlmIChwcml2aWxlZ2VkQVBJLl90
b2tlbikKKyAgICAgICAgICAgIGlmIChwcml2aWxlZ2VkQVBJICYmIHByaXZpbGVnZWRBUEkuX3Rv
a2VuKQogICAgICAgICAgICAgICAgIHByaXZpbGVnZWRBUEkuX3Rva2VuID0gbnVsbDsKICAgICAg
ICAgfSk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L3Rlc3QtZ3JvdXBzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVz
dHMvdGVzdC1ncm91cHMtdGVzdHMuanMKaW5kZXggZGU1OTY1MjUxMmMzOGI4OTkyM2I5NWZlYmZl
MmM1ZjA3ZWFkMGNlYi4uNDdkNjlhYWQ0MTMxMmMwN2U1MzFmZWJmMGFhMjkzOTMyNzIzZTA0ZSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91
cHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVz
dC1ncm91cHMtdGVzdHMuanMKQEAgLTMsNiArMyw3IEBACiBjb25zdCBhc3NlcnQgPSByZXF1aXJl
KCdhc3NlcnQnKTsKIHJlcXVpcmUoJy4uL3Rvb2xzL2pzL3YzLW1vZGVscy5qcycpOwogY29uc3Qg
QnJvd3NlclByaXZpbGVnZWRBUEkgPSByZXF1aXJlKCcuLi9wdWJsaWMvdjMvcHJpdmlsZWdlZC1h
cGkuanMnKS5Qcml2aWxlZ2VkQVBJOworY29uc3QgTm9kZVByaXZpbGVnZWRBUEkgPSByZXF1aXJl
KCcuLi90b29scy9qcy9wcml2aWxlZ2VkLWFwaS5qcycpLlByaXZpbGVnZWRBUEk7CiBjb25zdCBN
b2NrTW9kZWxzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMnKS5Nb2Nr
TW9kZWxzOwogY29uc3QgTW9ja1JlbW90ZUFQSSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2st
cmVtb3RlLWFwaS5qcycpLk1vY2tSZW1vdGVBUEk7CiAKQEAgLTE2LDYgKzE3LDcgQEAgZnVuY3Rp
b24gc2FtcGxlVGVzdEdyb3VwKCkgewogICAgICAgICAgICAgImF1dGhvciI6ICJybml3YSIsCiAg
ICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMCwKICAgICAgICAgICAgICJoaWRk
ZW4iOiBmYWxzZSwKKyAgICAgICAgICAgICJuZWVkc05vdGlmaWNhdGlvbiI6IHRydWUsCiAgICAg
ICAgICAgICAiYnVpbGRSZXF1ZXN0cyI6IFsiMTY5ODUiLCAiMTY5ODYiLCAiMTY5ODciLCAiMTY5
ODgiLCAiMTY5ODkiLCAiMTY5OTAiLCAiMTY5OTEiLCAiMTY5OTIiXSwKICAgICAgICAgICAgICJj
b21taXRTZXRzIjogWyI0MjU1IiwgIjQyNTYiXSwKICAgICAgICAgfV0sCkBAIC0xMzcsNiArMTM5
LDQxIEBAIGRlc2NyaWJlKCdUZXN0R3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCisgICAgZGVzY3JpYmUoJ25lZWRzTm90aWZpY2F0aW9uJywgKCkgPT4geworICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkuaW5qZWN0KCdodHRwczovL3BlcmYu
d2Via2l0Lm9yZycsIE5vZGVQcml2aWxlZ2VkQVBJKTsKKyAgICAgICAgYmVmb3JlRWFjaCgoKSA9
PiB7CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLmNvbmZpZ3VyZSgndGVzdCcsICdwYXNzd29y
ZCcpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHVwZGF0ZSBub3RpZmllZCBh
dXRob3IgZmxhZycsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGZldGNoUHJvbWlz
ZSA9IFRlc3RHcm91cC5mZXRjaEZvclRhc2soMTM3Nik7CisgICAgICAgICAgICByZXF1ZXN0c1sw
XS5yZXNvbHZlKHNhbXBsZVRlc3RHcm91cCgpKTsKKyAgICAgICAgICAgIGxldCB0ZXN0R3JvdXBz
ID0gYXdhaXQgZmV0Y2hQcm9taXNlOworICAgICAgICAgICAgYXNzZXJ0KHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGxldCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVl
KTsKKworICAgICAgICAgICAgY29uc3QgdXBkYXRlUHJvbWlzZSA9IHRlc3RHcm91cC5kaWRTZW5k
Tm90aWZpY2F0aW9uKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5tZXRob2QsICdQT1NU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVn
ZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcXVlc3RzWzFdLmRhdGEsIHtncm91cDogJzIxMjgnLCBuZWVkc05vdGlmaWNhdGlvbjogZmFs
c2UsIHNsYXZlTmFtZTogJ3Rlc3QnLCBzbGF2ZVBhc3N3b3JkOiAncGFzc3dvcmQnfSk7CisgICAg
ICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKCk7CisKKyAgICAgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLnVybCwg
Jy9hcGkvdGVzdC1ncm91cHMvMjEyOCcpOworICAgICAgICAgICAgY29uc3QgdXBkYXRlZFRlc3RH
cm91cCA9IHNhbXBsZVRlc3RHcm91cCgpOworICAgICAgICAgICAgdXBkYXRlZFRlc3RHcm91cC50
ZXN0R3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0aW9uID0gZmFsc2U7CisgICAgICAgICAgICByZXF1
ZXN0c1syXS5yZXNvbHZlKHVwZGF0ZWRUZXN0R3JvdXApOworCisgICAgICAgICAgICB0ZXN0R3Jv
dXBzID0gYXdhaXQgdXBkYXRlUHJvbWlzZTsKKyAgICAgICAgICAgIHRlc3RHcm91cCA9IHRlc3RH
cm91cHNbMF07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uKCksIGZhbHNlKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKICAgICBkZXNjcmliZSgn
X2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgaXQoJ3Nob3VsZCBjcmVhdGUgdGVzdCBncm91cHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICB2YXIgZ3JvdXBzID0gVGVzdEdyb3VwLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RH
cm91cHMoc2FtcGxlVGVzdEdyb3VwKCkpOwpAQCAtMTQ3LDYgKzE4NCw3IEBAIGRlc2NyaWJlKCdU
ZXN0R3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
aWQoKSwgMjEyOCk7CiAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuY3JlYXRlZEF0KCkgaW5z
dGFuY2VvZiBEYXRlKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pc0hpZGRlbigp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRp
b24oKSwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2dyb3VwLmNyZWF0ZWRBdCgp
LCAxNDU4Njg4NTE0MDAwKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgc2FtcGxlVGVzdEdyb3VwKClbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGggLyAy
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5oYXNQZW5kaW5nKCkpOwpAQCAtMzYxLDcg
KzM5OSw3IEBAIGRlc2NyaWJlKCdUZXN0R3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBzZXQyLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShNb2NrTW9kZWxzLndlYmtpdCwgJzE5MTYy
MycpOwogICAgICAgICAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkoTW9ja01vZGVs
cy5zaGFyZWRSZXBvc2l0b3J5LCAnODAyMjknKTsKIAotICAgICAgICAgICAgY29uc3QgcHJvbWlz
ZSA9IFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygnc29tZS10YXNrJywgTW9ja01vZGVscy5zb21l
UGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QsICdzb21lLWdyb3VwJywgNCwgW3NldDEsIHNl
dDJdKTsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBUZXN0R3JvdXAuY3JlYXRlV2l0aFRh
c2soJ3NvbWUtdGFzaycsIE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVU
ZXN0LCAnc29tZS1ncm91cCcsIDQsIFtzZXQxLCBzZXQyXSwgdHJ1ZSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1sxXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvZ2VuZXJhdGUtY3NyZi10b2tlbicp
OwogICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7CkBAIC0zNzEsNiArNDA5LDEwIEBA
IGRlc2NyaWJlKCdUZXN0R3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sy
XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzJdLmRhdGEsIHt0YXNrTmFtZTogJ3NvbWUtdGFzaycsIG5hbWU6ICdzb21lLWdyb3VwJywgcGxh
dGZvcm06IDY1LCB0ZXN0OiAxLAorICAgICAgICAgICAgICAgIHJlcGV0aXRpb25Db3VudDogNCwg
cmV2aXNpb25TZXRzOiBbeycxMSc6IHtvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbCwg
cmV2aXNpb246ICIxOTE2MjIifSwKKyAgICAgICAgICAgICAgICAgICAgJzE2Jzoge293bmVyUmV2
aXNpb246IG51bGwsIHBhdGNoOiBudWxsLCByZXZpc2lvbjogIjgwMjI5In19LCB7JzExJzoge293
bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsLCByZXZpc2lvbjogIjE5MTYyMyJ9LAorICAg
ICAgICAgICAgICAgICAgICAnMTYnOiB7b3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGws
IHJldmlzaW9uOiAiODAyMjkifX1dLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgdG9rZW46ICdh
YmMnfSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJyk7CiAgICAgICAgICAgICByZXF1ZXN0c1syXS5y
ZXNvbHZlKHsKICAgICAgICAgICAgICAgICB0YXNrSWQ6IDEyMywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342008</attachid>
            <date>2018-06-05 17:24:17 -0700</date>
            <delta_ts>2018-06-06 17:58:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184340-20180605172417.patch</filename>
            <type>text/plain</type>
            <size>142159</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTI2CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBjOTU0M2ZmMDhkY2Y5ZTNjODVhMTcwZjk1ZTJiNGVlM2U4ODYzYzA2Li4zZDk2YTM2NzEx
NWI2OGQ5MmE0YWZhN2NiOWQ3NzIyZWIwZjVmMDk0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMTkgQEAKKzIwMTgtMDUtMjQgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgc2VuZGluZyBub3RpZmljYXRpb24gZmVhdHVy
ZSB3aGVuIHRlc3QgZ3JvdXAgZmluaXNoZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicg
ZmlsZWQgdG8gJ2FuYWx5c2lzX3Rlc3RfZ3JvdXAnIHRhYmxlIHRvIGluZGljYXRlIHdoZXRoZXIg
YSB0ZXN0IGdyb3VwCisgICAgICAgIGhhcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uLgorICAgICAg
ICBBZGRlZCAndGVzdGdyb3VwX25vdGlmaWNhdGlvbl9zZW50X2F0JyB0byByZWNvcmQgdGhlIGxh
c3Qgbm90aWZpY2F0aW9uIHNlbnQgdGltZS4KKyAgICAgICAgU1FMIHF1ZXJpZXMgdG8gdXBkYXRl
IGV4aXN0aW5nIGRhdGFiYXNlIGFyZToKKyAgICAgICAgICAgICdBTFRFUiBUQUJMRSBhbmFseXNp
c190ZXN0X2dyb3VwcyBBREQgQ09MVU1OIHRlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24gYm9v
bGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFOycKKyAgICAgICAgICAgICdBTFRFUiBUQUJMRSBh
bmFseXNpc190ZXN0X2dyb3VwcyBBREQgQ09MVU1OIHRlc3Rncm91cF9ub3RpZmljYXRpb25fc2Vu
dF9hdCB0aW1lc3RhbXAgREVGQVVMVCBOVUxMOycKKyAgICAgICAgVXBkYXRlZCAncnVuLWFuYWx5
c2lzJyBzY3JpcHQgdG8gYmUgYWJsZSB0byBzZW5kIG5vdGlmaWNhdGlvbiB3aGVuIHRlc3QgZ3Jv
dXAgZmluaXNoZXMuCisgICAgICAgIEFkZGVkICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hlY2ti
b3ggd2hpbGUgY3JlYXRpbmcvcmV0cnlpbmcvYmlzZWN0aW5nIGEgdGVzdCBncm91cC4KKworICAg
ICAgICAqIGJyb3dzZXItdGVzdHMvdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzOiBVcGRhdGVkIGV4
aXN0aW5nIHRlc3RzIGFuZCBhZGRlZCBhIG5ldyB0ZXN0LgorICAgICAgICAqIGJyb3dzZXItdGVz
dHMvdGVzdC1ncm91cC1yZXN1bHQtcGFnZS10ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0cyBmb3Ig
VGVzdEdyb3VwUmVzdWx0UGFnZS4KKyAgICAgICAgKiBpbml0LWRhdGFiYXNlLnNxbDogQWRkZWQg
J3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nIGZpbGVkIHRvICdhbmFseXNpc190ZXN0X2dy
b3VwJyB0YWJsZS4KKyAgICAgICAgKiBwdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocDogQWRkZWQg
Jy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicgQVBJIHRvICd0ZXN0LWdy
b3VwJyB0byBzaG93IGFsbAorICAgICAgICB0ZXN0IGdyb3VwcyB0aGF0IG5lZWQgdG8gc2VuZCBu
b3RpZmljYXRpb24uIE9ubHkgdGhlIG9uZXMgd2l0aCAnY29tcGxldGVkJywgJ2ZhaWxlZCcgb3Ig
J2NhbmNlbGxlZCcgc3RhdHVzIGFuZCBpdHMKKyAgICAgICAgJ3Rlc3Rncm91cF9uZWVkc19ub3Rp
ZmljYXRpb24nIGlzIHRydWUgd2lsbCBiZSByZXR1cm5lZCBieSB0aGlzIEFQSS4KKyAgICAgICAg
KiBwdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocDogQWRkZWQgJ2ZldGNo
X3JlcXVlc3RzX2Zvcl9ncm91cHMnIHRvIHJldHVybiB0ZXN0IGdyb3VwcyB3aXRoIGdpdmVuIGlk
cy4KKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocDogVXBk
YXRlZCB0aGUgbG9naWMgdG8gc3VwcG9ydCBzZXR0aW5nICd0ZXN0Z3JvdXBfbmVlZHNfbm90aWZp
Y2F0aW9uJworICAgICAgICB3aGlsZSBjcmVhdGUgYW4gYW5hbHlzaXNfdGVzdF9ncm91cHMuCisg
ICAgICAgICogcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocDog
VXBkYXRlZCB0aGUgbG9naWMgdG8gc3VwcG9ydCBzZXR0aW5nICd0ZXN0Z3JvdXBfbmVlZHNfbm90
aWZpY2F0aW9uJy4KKyAgICAgICAgKiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAucGhwOiBVcGRhdGVkIHRoZSBsb2dpYyB0byBzdXBwb3J0IHNldHRpbmcgJ3Rlc3Rncm91
cF9uZWVkc19ub3RpZmljYXRpb24nLgorICAgICAgICAqIHB1YmxpYy9wcml2aWxlZ2VkLWFwaS91
cGRhdGUtdGVzdC1ncm91cC5waHA6IFVwZGF0ZWQgdGhlIGxvZ2ljIHRvIHN1cHBvcnQgdXBkYXRp
bmcgJ3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nLgorICAgICAgICBFeHRlbmRlZCB0aGlz
IEFQSSB0byBhbGxvdyBhdXRoZW50aWNhdGlvbiBib3RoIGZyb20gQ1NSRiB0b2tlbiBhbmQgc2xh
dmUuCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWNvbmZpZ3VyYXRpb24t
dGVzdC1ncm91cC1mb3JtLmpzOgorICAgICAgICAoQ3VzdG9tQ29uZmlndXJhdGlvblRlc3RHcm91
cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6IFBhc3MgJ25vdGlmeU9uQ29tcGxldGlvbicg
aW5mb3JtYXRpb24gd2hpY2ggcmVwcmVzZW50cworICAgICAgICAndGVzdGdyb3VwX25lZWRzX25v
dGlmaWNhdGlvbicgZnJvbSBBUEkgcGVyc3BlY3RpdmUuCisgICAgICAgICogcHVibGljL3YzL2Nv
bXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qczoKKyAgICAgICAgKEN1c3Rv
bWl6YWJsZVRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6IFBhc3MgJ25vdGlm
eU9uQ29tcGxldGlvbicgaW5mb3JtYXRpb24gd2hpY2ggcmVwcmVzZW50cworICAgICAgICAndGVz
dGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicgZnJvbSBBUEkgcGVyc3BlY3RpdmUuCisgICAgICAg
IChDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtLmNzc1RlbXBsYXRlKTogQWRkZWQgc3BhY2UgYmV0
d2VlbiAnTm90aWZ5IG9uIGNvbXBsZXRpb24nIGNoZWNrYm94IGFuZCB0ZXN0IGdyb3VwIGl0ZXJh
dGlvbiBzZWxlY3Rpb24gbGlzdC4KKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0
LWdyb3VwLWZvcm0uanM6CisgICAgICAgIChUZXN0R3JvdXBGb3JtKTogQWRkZWQgJ19ub3RpZnlP
bkNvbXBsZXRpb24nIGluc3RhbmNlIHZhcmlhYmxlLgorICAgICAgICAoVGVzdEdyb3VwRm9ybS5w
cm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6IEFkZGVkICdvbmNoYW5nZScgZXZlbnQg
Zm9yIG5vdGlmeSBvbiBjb21wbGV0aW9uIGNoZWNrYm94LgorICAgICAgICAoVGVzdEdyb3VwRm9y
bS5wcm90b3R5cGUuc3RhcnRUZXN0aW5nKTogUGFzcyAnbm90aWZ5T25Db21wbGV0aW9uJyBpbmZv
cm1hdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAgICAgICd0ZXN0Z3JvdXBfbmVlZHNfbm90aWZp
Y2F0aW9uJyBmcm9tIEFQSSBwZXJzcGVjdGl2ZS4KKyAgICAgICAgKFRlc3RHcm91cEZvcm0uY3Nz
VGVtcGxhdGUpOiBBZGRlZCBzcGFjZSBiZXR3ZWVuICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hl
Y2tib3ggYW5kIHRlc3QgZ3JvdXAgaXRlcmF0aW9uIHNlbGVjdGlvbiBsaXN0LgorICAgICAgICAq
IHB1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qczogRXhwb3J0ICdBbmFseXNpc1Jl
c3VsdHMnLgorICAgICAgICAoQW5hbHlzaXNSZXN1bHRzLmZldGNoKTogVXBkYXRlIEFQSSBwYXRo
IHRvIHVzZSBhYnNvbHV0ZSB1cmwuCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMpOgorICAgICAg
ICAqIHB1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qczoKKyAgICAgICAgKEFuYWx5c2lz
VGFzay5hc3luYy5jcmVhdGUpOiBFeHRlbmQgdGhpcyBmdW5jdGlvbiB0byB0YWtlIG5vdGlmeU9u
Q29tcGxldGlvbiBhcyBhcmd1bWVudCB3aGljaCB3aWxsIGJlIHVzZWQgYXMKKyAgICAgICAgJ25l
ZWRzTm90aWZpY2F0aW9uJyB0byBzZW5kIHRvIHNlcnZlci4KKyAgICAgICAgKEFuYWx5c2lzVGFz
ayk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzOgorICAgICAgICAo
VGVzdEdyb3VwKTogQWRkZWQgJ19uZWVkc05vdGlmaWNhdGlvbicgZmllbGQuCisgICAgICAgIChU
ZXN0R3JvdXAucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6IEFkZGVkIGxvZ2ljIHRvIHVwZGF0
ZSAnX25lZWRzTm90aWZpY2F0aW9uJyBmaWVsZC4KKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5
cGUubmVlZHNOb3RpZmljYXRpb24pOiBSZXR1cm5zICdfbmVlZHNOb3RpZmljYXRpb24nIGZpZWxk
LgorICAgICAgICAoVGVzdEdyb3VwLnByb3RvdHlwZS5hdXRob3IpOiBSZXR1cm5zIGF1dGhvciBp
bmZvcm1hdGlvbi4KKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5cGUuYXN5bmMuZGlkU2VuZE5v
dGlmaWNhdGlvbik6IEFQSSB0aGF0IHVwZGF0ZXMgJ3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRp
b24nIHRvIHRydWUuCisgICAgICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2spOiBVcGRhdGVk
IHRoaXMgZnVuY3Rpb24gdG8gYWNjZXB0ICdub3RpZnlPbkNvbXBsZXRpb24nIHdoaWNoIHdpbGwg
YmUgdXNlZCBhcworICAgICAgICAnbmVlZHNOb3RpZmljYXRpb24nIHRvIHNlbmQgdG8gc2VydmVy
LgorICAgICAgICAoVGVzdEdyb3VwLmNyZWF0ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKTogVXBk
YXRlZCB0aGlzIGZ1bmN0aW9uIHRvIGFjY2VwdCAnbm90aWZ5T25Db21wbGV0aW9uJyB3aGljaCB3
aWxsIGJlIHVzZWQgYXMKKyAgICAgICAgJ25lZWRzTm90aWZpY2F0aW9uJyB0byBzZW5kIHRvIHNl
cnZlci4KKyAgICAgICAgKFRlc3RHcm91cC5jcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyk6IFVw
ZGF0ZWQgdGhpcyBmdW5jdGlvbiB0byBhY2NlcHQgJ25vdGlmeU9uQ29tcGxldGlvbicgd2hpY2gg
d2lsbCBiZSB1c2VkIGFzCisgICAgICAgICduZWVkc05vdGlmaWNhdGlvbicgdG8gc2VuZCB0byBz
ZXJ2ZXIuCisgICAgICAgIChUZXN0R3JvdXAuZmV0Y2hBbGxXaXRoTm90aWZpY2F0aW9uUmVhZHkp
OiBOZXcgZnVuY3Rpb24gdGhhdCBpbnZva2VzICcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1u
b3RpZmljYXRpb24nLgorICAgICAgICAqIHB1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBh
Z2UuanM6IFVwZGF0ZSBsb2dpYyB0byAnbm90aWZ5T25Db21wbGV0aW9uJyBhcm91bmQKKyAgICAg
ICAgKEFuYWx5c2lzVGFza0NoYXJ0UGFuZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJl
ZSk6CisgICAgICAgIChBbmFseXNpc1Rhc2tSZXN1bHRzUGFuZS5wcm90b3R5cGUuZGlkQ29uc3Ry
dWN0U2hhZG93VHJlZSk6CisgICAgICAgIChBbmFseXNpc1Rhc2tUZXN0R3JvdXBQYW5lLnByb3Rv
dHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2Uu
cHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAoQW5hbHlzaXNUYXNr
UGFnZS5wcm90b3R5cGUuX3JldHJ5Q3VycmVudFRlc3RHcm91cCk6CisgICAgICAgIChBbmFseXNp
c1Rhc2tQYWdlLnByb3RvdHlwZS5hc3luYy5fYmlzZWN0Q3VycmVudFRlc3RHcm91cCk6CisgICAg
ICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fY3JlYXRlVGVzdEdyb3VwQWZ0ZXJWZXJp
ZnlpbmdDb21taXRTZXRMaXN0LnNldCBjb25zdCk6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdl
LnByb3RvdHlwZS5fY3JlYXRlVGVzdEdyb3VwQWZ0ZXJWZXJpZnlpbmdDb21taXRTZXRMaXN0KToK
KyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9jcmVhdGVDdXN0b21UZXN0R3Jv
dXApOgorICAgICAgICAqIHB1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLmpzOiBBZGRlZCAnTm90
aWZ5IG9uIGNvbXBsZXRpb24nIGNoZWNrYm94LgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlw
ZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUu
YXN5bmMuX2FuYWx5emVSYW5nZSk6CisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2NyZWF0ZS1h
bmFseXNpcy10YXNrLXBhZ2UuanM6IEFkYXB0ZWQgQVBJIGNoYW5nZS4KKyAgICAgICAgKENyZWF0
ZUFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9jcmVhdGVBbmFseXNpc1Rhc2tXaXRoR3JvdXAp
OgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanM6IEFkZGVkIHRlc3Rz
IGZvciAnL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJy4KKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMu
anM6IFVwZGF0ZWQgdGVzdHMgdG8gYWRhcHQgdGhpcyBjaGFuZ2UuCisgICAgICAgIEFkZGVkIG5l
dyB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRl
c3QtZ3JvdXAtdGVzdHMuanM6IFVwZGF0ZWQgdGVzdHMgdG8gYWRhcHQgdGhpcyBjaGFuZ2UuCisg
ICAgICAgIEFkZGVkIG5ldyB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6IEFkZGVkIHVuaXQgdGVzdCBmb3IgJ3Vw
ZGF0ZS10ZXN0LWdyb3VwJyBBUEkuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9t
b2NrLWRhdGEuanM6IGFkZE1vY2tEYXRhIHNob3VsZCBzZXQgJ3Rlc3Rncm91cF9uZWVkc19ub3Rp
ZmljYXRpb24nIHRvIGJlIHRydWUuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMt
YnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanM6IFVwZGF0ZWQgdGVzdHMgdG8gYWRhcHQgdGhp
cyBjaGFuZ2UuCisgICAgICAgIChhc3luYy5jcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCk6CisgICAg
ICAgIChjcmVhdGVUZXN0R3JvdXBXaWhPd25lZENvbW1pdCk6CisgICAgICAgICogdG9vbHMvanMv
YW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci5qczogQWRkZWQgbm90aWZpZXIgdG8gc2VuZCBub3Rp
ZmljYXRpb24gZm9yIGNvbXBsZXRlZCB0ZXN0IGdyb3Vwcy4KKyAgICAgICAgKEFuYWx5c2lzUmVz
dWx0c05vdGlmaWVyKToKKyAgICAgICAgKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLnByb3RvdHlw
ZS5hc3luYy5zZW5kTm90aWZpY2F0aW9uc0ZvclRlc3RHcm91cHMpOgorICAgICAgICAoQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIucHJvdG90eXBlLl9zZW5kTm90aWZpY2F0aW9uKTogSW52b2tlIHJl
bW90ZSBBUEkgdG8gc2VuZCBub3RpZmljYXRpb24uCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5wcm90b3R5cGUuX2NvbnN0cnVjdE1lc3NhZ2VCeVJ1bGVzKToKKyAgICAgICAgKEFu
YWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSk6CisgICAgICAgIChBbmFseXNpc1Jl
c3VsdHNOb3RpZmllci5fYXBwbHlVcGRhdGUpOgorICAgICAgICAoQW5hbHlzaXNSZXN1bHRzTm90
aWZpZXIuYXN5bmMuX21lc3NhZ2VGb3JUZXN0R3JvdXApOiBCdWlsZCBodG1sIGFzIG1lc3NhZ2Ug
Ym9keSBmb3IgYSB0ZXN0IGdyb3VwLgorICAgICAgICAoQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIu
X1VSTEZvckFuYWx5c2lzVGFzayk6IFJldHVybnMgVVJMIGZvciBhbiBhbmFseXNpcyB0YXNrLgor
ICAgICAgICAoQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX2luc3RhbnRpYXRlTm90aWZpY2F0aW9u
VGVtcGxhdGUpOgorICAgICAgICAqIHRvb2xzL2pzL3Rlc3QtZ3JvdXAtcmVzdWx0LXBhZ2UuanM6
IEFkZGVkICdUZXN0R3JvdXBSZXN1bHRQYWdlJyB0byBzaG93IHRlc3QgZ3JvdXAgcmVzdWx0Lgor
ICAgICAgICAoVGVzdEdyb3VwUmVzdWx0UGFnZSk6CisgICAgICAgIChUZXN0R3JvdXBSZXN1bHRQ
YWdlLnByb3RvdHlwZS5jb25zdHJ1Y3RUYWJsZXMuKToKKyAgICAgICAgKFRlc3RHcm91cFJlc3Vs
dFBhZ2UucHJvdG90eXBlLnJlbmRlcik6CisgICAgICAgIChUZXN0R3JvdXBSZXN1bHRQYWdlLnBy
b3RvdHlwZS5nZXQgcGFnZUNvbnRlbnQpOgorICAgICAgICAoVGVzdEdyb3VwUmVzdWx0UGFnZS5w
cm90b3R5cGUuZ2V0IHN0eWxlVGVtcGxhdGUpOgorICAgICAgICAqIHRvb2xzL2pzL21lYXN1cmVt
ZW50LXNldC1hbmFseXplci5qczogQWRhcHRlZCAnQW5hbHlzaXNUYXNrLmNyZWF0ZScgY2hhbmdl
LgorICAgICAgICAoTWVhc3VyZW1lbnRTZXRBbmFseXplci5wcm90b3R5cGUuYXN5bmMuX2FuYWx5
emVNZWFzdXJlbWVudFNldCk6CisgICAgICAgIChNZWFzdXJlbWVudFNldEFuYWx5emVyKToKKyAg
ICAgICAgKiB0b29scy9qcy92My1tb2RlbHMuanM6CisgICAgICAgICogdG9vbHMvcnVuLWFuYWx5
c2lzLmpzOiBBZGRlZCB0aGUgbG9naWMgdGhhdCBzZW5kcyBub3RpZmljYXRpb24gZm9yIGNvbXBs
ZXRlZCB0ZXN0IGdyb3Vwcy4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAoYXN5bmMuYW5hbHlz
aXNMb29wKToKKyAgICAgICAgKiB1bml0LXRlc3RzL2FuYWx5c2lzLXRhc2stdGVzdHMuanM6Cisg
ICAgICAgICogdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLXRlc3RzLmpzOiBB
ZGRlZCBhIHVuaXQgdGVzdCBmb3IgJ0FuYWx5c2lzUmVzdWx0c05vdGlmaWVyJyBhbmQgJ05vdGlm
aWNhdGlvblNlcnZpY2UnLgorICAgICAgICAqIHVuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFu
YWx5emVyLXRlc3RzLmpzOiBVcGRhdGVkIHVuaXQgdGVzdHMgcGVyIHRoaXMgY2hhbmdlLgorICAg
ICAgICAqIHVuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanM6IEFkZGVkIHVuaXQgdGVzdHMg
Zm9yICdUZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24nLgorICAgICAgICAqIHVuaXQtdGVzdHMv
cmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qczogT25seSBzZXQgJ3ByaXZpbGVnZWRBUEknIHdo
ZW4gaXQgZXhpdHMuCisKIDIwMTgtMDUtMjMgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5j
b20+CiAKICAgICAgICAgT1NCdWlsZEZldGNoZXIgc2hvdWxkIHJlc3BlY3QgbWF4UmV2aXNpb24g
d2hpbGUgZmluZGluZyBPUyBidWlsZHMgdG8gcmVwb3J0LgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvdGVzdC1ncm91cC1mb3JtLXRl
c3RzLmpzCmluZGV4IDI2NTM1NjcyODQ5YTE5ZGRmZGZmOTJiNDU5ODc5NTNiMGRlODBkNzIuLjEx
NjQwNDA0MWI0OWQ0MWY1ZmEwYTBkYTE5OGZlNjliMTUxZjllMmUgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy90ZXN0LWdyb3Vw
LWZvcm0tdGVzdHMuanMKQEAgLTE4LDcgKzE4LDcgQEAgZGVzY3JpYmUoJ1Rlc3RHcm91cEZvcm1U
ZXN0cycsICgpID0+IHsKICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0ubGlzdGVuVG9BY3Rpb24o
J3N0YXJ0VGVzdGluZycsICguLi5hcmdzKSA9PiBjYWxscy5wdXNoKGFyZ3MpKTsKICAgICAgICAg
ICAgIGV4cGVjdChjYWxscykudG8uZXFsKHt9KTsKICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0u
Y29udGVudCgnc3RhcnQtYnV0dG9uJykuY2xpY2soKTsKLSAgICAgICAgICAgIGV4cGVjdChjYWxs
cykudG8uZXFsKFtbNF1dKTsKKyAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNCwg
dHJ1ZV1dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI5LDEyICsyOSwzMSBAQCBkZXNj
cmliZSgnVGVzdEdyb3VwRm9ybVRlc3RzJywgKCkgPT4gewogICAgICAgICAgICAgdGVzdEdyb3Vw
Rm9ybS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywgKC4uLmFyZ3MpID0+IGNhbGxzLnB1
c2goYXJncykpOwogICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoe30pOwogICAgICAg
ICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24nKS5jbGljaygpOwotICAg
ICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0XV0pOworICAgICAgICAgICAgZXhwZWN0
KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXV0pOwogICAgICAgICAgICAgY29uc3QgY291bnRGb3Jt
ID0gdGVzdEdyb3VwRm9ybS5jb250ZW50KCdyZXBldGl0aW9uLWNvdW50Jyk7CiAgICAgICAgICAg
ICBjb3VudEZvcm0udmFsdWUgPSAnNic7Ci0gICAgICAgICAgICBjb3VudEZvcm0uZGlzcGF0Y2hF
dmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsgCisgICAgICAgICAgICBjb3VudEZvcm0uZGlzcGF0
Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0u
Y29udGVudCgnc3RhcnQtYnV0dG9uJykuY2xpY2soKTsKLSAgICAgICAgICAgIGV4cGVjdChjYWxs
cykudG8uZXFsKFtbNF0sIFs2XV0pOworICAgICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwo
W1s0LCB0cnVlXSwgWzYsIHRydWVdXSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQo
J211c3QgdXBkYXRlICJub3RpZnkgb24gY29tcGxldGlvbiIgd2hlbiBpdCBpcyB1bmNoZWNrZWQn
LCAoKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7
CisgICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQoY29udGV4dCku
dGhlbigodGVzdEdyb3VwRm9ybSkgPT4geworICAgICAgICAgICAgY29uc3QgY2FsbHMgPSBbXTsK
KyAgICAgICAgICAgIHRlc3RHcm91cEZvcm0ubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycs
ICguLi5hcmdzKSA9PiBjYWxscy5wdXNoKGFyZ3MpKTsKKyAgICAgICAgICAgIGV4cGVjdChjYWxs
cykudG8uZXFsKHt9KTsKKyAgICAgICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgnc3RhcnQt
YnV0dG9uJykuY2xpY2soKTsKKyAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNCwg
dHJ1ZV1dKTsKKyAgICAgICAgICAgIGNvbnN0IGNvdW50Rm9ybSA9IHRlc3RHcm91cEZvcm0uY29u
dGVudCgncmVwZXRpdGlvbi1jb3VudCcpOworICAgICAgICAgICAgY291bnRGb3JtLnZhbHVlID0g
JzYnOworICAgICAgICAgICAgY291bnRGb3JtLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFu
Z2UnKSk7CisgICAgICAgICAgICBjb25zdCBub3RpZnlPbkNvbXBsZXRpb25DaGVja2JveCA9IHRl
c3RHcm91cEZvcm0uY29udGVudCgnbm90aWZ5LW9uLWNvbXBsZXRpb24tY2hlY2tib3gnKTsKKyAg
ICAgICAgICAgIG5vdGlmeU9uQ29tcGxldGlvbkNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgIG5vdGlmeU9uQ29tcGxldGlvbkNoZWNrYm94LmRpc3BhdGNoRXZlbnQobmV3IEV2
ZW50KCdjaGFuZ2UnKSk7CisgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3N0YXJ0
LWJ1dHRvbicpLmNsaWNrKCk7CisgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQs
IHRydWVdLCBbNiwgZmFsc2VdXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01NywxMCAr
NzYsMTAgQEAgZGVzY3JpYmUoJ1Rlc3RHcm91cEZvcm1UZXN0cycsICgpID0+IHsKICAgICAgICAg
ICAgICAgICB0ZXN0R3JvdXBGb3JtLmxpc3RlblRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAoLi4u
YXJncykgPT4gY2FsbHMucHVzaChhcmdzKSk7CiAgICAgICAgICAgICAgICAgZXhwZWN0KGNhbGxz
KS50by5lcWwoe30pOwogICAgICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgpLnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLmNsaWNrKCk7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KGNh
bGxzKS50by5lcWwoW1s0XV0pOworICAgICAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFs
KFtbNCwgdHJ1ZV1dKTsKICAgICAgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLnNldFJlcGV0aXRp
b25Db3VudCg4KTsKICAgICAgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoKS5xdWVy
eVNlbGVjdG9yKCdidXR0b24nKS5jbGljaygpOwotICAgICAgICAgICAgICAgIGV4cGVjdChjYWxs
cykudG8uZXFsKFtbNF0sIFs4XV0pOworICAgICAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8u
ZXFsKFtbNCwgdHJ1ZV0sIFs4LCB0cnVlXV0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXIt
dGVzdHMvdGVzdC1ncm91cC1yZXN1bHQtcGFnZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtcmVzdWx0LXBhZ2UtdGVzdHMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTRiNjFlMGQyNjMyYWQzZWE3MmFjOGIwZGQ3MmUzYzYyMGVmYTYzNwotLS0gL2Rl
di9udWxsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rlc3Qt
Z3JvdXAtcmVzdWx0LXBhZ2UtdGVzdHMuanMKQEAgLTAsMCArMSw3MyBAQAorZGVzY3JpYmUoJ1Rl
c3RHcm91cFJlc3VsdFBhZ2UnLCAoKSA9PiB7CisKKyAgICBhc3luYyBmdW5jdGlvbiBpbXBvcnRN
YXJrdXBDb21wb25lbnQoY29udGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhd2FpdCBjb250
ZXh0LmltcG9ydFNjcmlwdHMoWydsYXppbHktZXZhbHVhdGVkLWZ1bmN0aW9uLmpzJywgJy4uL3No
YXJlZC9jb21tb24tY29tcG9uZW50LWJhc2UuanMnLCAnLi4vLi4vdG9vbHMvanMvbWFya3VwLWNv
bXBvbmVudC5qcycsICcuLi8uLi90b29scy9qcy90ZXN0LWdyb3VwLXJlc3VsdC1wYWdlLmpzJywK
KyAgICAgICAgICAgICdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdtb2RlbHMvbWV0cmljLmpzJywg
Jy4uL3NoYXJlZC9zdGF0aXN0aWNzLmpzJyxdLCAnVGVzdEdyb3VwUmVzdWx0UGFnZScsICdNZXRy
aWMnKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBwcmVwYXJlVGVzdEdyb3VwUmVzdWx0
UGFnZShjb250ZXh0LCByZXN1bHRBLCByZXN1bHRCKQorICAgIHsKKyAgICAgICAgY29uc3QgW1Rl
c3RHcm91cFJlc3VsdFBhZ2UsIE1ldHJpY10gPSBhd2FpdCBpbXBvcnRNYXJrdXBDb21wb25lbnQo
Y29udGV4dCk7CisKKyAgICAgICAgY29uc3QgbW9ja1Rlc3RHcm91cCA9IHsKKyAgICAgICAgICAg
IHJlcXVlc3RlZENvbW1pdFNldHM6ICgpID0+IFsnQScsICdCJ10sCisgICAgICAgICAgICB0ZXN0
OiAoKSA9PiAoe3Rlc3Q6ICgpID0+ICdzcGVlb2RtZXRlci0yJywgbmFtZTogKCkgPT4gJ3NwZWVk
b21ldGVyLTInfSksCisgICAgICAgICAgICBsYWJlbEZvckNvbW1pdFNldDogKGNvbW1pdFNldCkg
PT4gY29tbWl0U2V0LAorICAgICAgICAgICAgcmVxdWVzdHNGb3JDb21taXRTZXQ6IChjb21taXRT
ZXQpID0+ICh7J0EnOiByZXN1bHRBLCAnQic6IHJlc3VsdEJ9W2NvbW1pdFNldF0pLAorICAgICAg
ICAgICAgY29tcGFyZVRlc3RSZXN1bHRzOiAoLi4uYXJncykgPT4gKHtpc1N0YXRpc3RpY2FsbHlT
aWduaWZpY2FudDogdHJ1ZSwgY2hhbmdlVHlwZTogJ3dvcnNlJ30pLAorICAgICAgICAgICAgbmFt
ZTogKCkgPT4gJ21vY2stdGVzdC1ncm91cCcKKyAgICAgICAgfTsKKworICAgICAgICBjb25zdCBt
b2NrQW5hbHlzaXNSZXN1bHRzID0geworICAgICAgICAgICAgdmlld0Zvck1ldHJpYzogKG1ldHJp
YykgPT4gKHtyZXN1bHRGb3JSZXF1ZXN0OiAoYnVpbGRSZXF1ZXN0KSA9PiAoYnVpbGRSZXF1ZXN0
ID09PSBudWxsID8gbnVsbCA6IHt2YWx1ZTogYnVpbGRSZXF1ZXN0fSl9KQorICAgICAgICB9Owor
CisgICAgICAgIGNvbnN0IG1vY2tBbmFseXNpc1Rhc2sgPSB7CisgICAgICAgICAgICBtZXRyaWM6
ICgpID0+ICh7CisgICAgICAgICAgICAgICAgbWFrZUZvcm1hdHRlcjogKHNpZ0ZpZywgYWx3YXlz
U2hvd1NpZ24pID0+IE1ldHJpYy5tYWtlRm9ybWF0dGVyKCdNQicsIHNpZ0ZpZywgYWx3YXlzU2hv
d1NpZ24pLAorICAgICAgICAgICAgICAgIGFnZ3JlZ2F0b3JMYWJlbDogKCkgPT4gJ0FyaXRobWV0
aWMgbWVhbicKKyAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgbmFtZTogKCkgPT4gJ21vY2st
YW5hbHlzaXMtdGFzaycKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIG5ldyBUZXN0R3JvdXBS
ZXN1bHRQYWdlKCd0ZXN0JywgbW9ja1Rlc3RHcm91cCwgbW9ja0FuYWx5c2lzUmVzdWx0cywgbW9j
a0FuYWx5c2lzVGFzaywgJ2h0dHA6Ly9sb2NhbGhvc3QnKTsKKyAgICB9CisKKyAgICBpdCgnc2hv
dWxkIHJlbmRlciBmYWlsZWQgdGVzdCBncm91cCB3aXRoIGVtcHR5IGJhcicsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAg
ICAgY29uc3QgcGFnZSA9IGF3YWl0IHByZXBhcmVUZXN0R3JvdXBSZXN1bHRQYWdlKGNvbnRleHQs
IFtudWxsLCAzLCA1XSwgWzIsIDQsIDZdKTsKKyAgICAgICAgYXdhaXQgcGFnZS5lbnF1ZXVlVG9S
ZW5kZXIoKTsKKyAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBjb250ZXh0LmRvY3VtZW50OworICAg
ICAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgICAgIGRvY3VtZW50LndyaXRlKHBhZ2UuZ2VuZXJh
dGVNYXJrdXAoKSk7CisgICAgICAgIGRvY3VtZW50LmNsb3NlKCk7CisKKyAgICAgICAgZXhwZWN0
KGNvbnRleHQuZ2xvYmFsLmdldENvbXB1dGVkU3R5bGUoY29udGV4dC5kb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCcuYmFyLWdyYXBoLXBsYWNlaG9sZGVyJykpLndpZHRoKS50by5iZSgnMHB4Jyk7Cisg
ICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJlbmRlciByaWdodCByYXRpbyBiYXNlZCBvbiB0ZXN0
IGdyb3VwIHJlc3VsdCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9IG5l
dyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgY29uc3QgcmVzdWx0QSA9IFsxLCAzLCA1XTsK
KyAgICAgICAgY29uc3QgcmVzdWx0QiA9IFsyLCA0LCA2XTsKKyAgICAgICAgY29uc3QgcGFnZSA9
IGF3YWl0IHByZXBhcmVUZXN0R3JvdXBSZXN1bHRQYWdlKGNvbnRleHQsIHJlc3VsdEEsIHJlc3Vs
dEIpOworICAgICAgICBhd2FpdCBwYWdlLmVucXVldWVUb1JlbmRlcigpOworICAgICAgICBjb25z
dCBkb2N1bWVudCA9IGNvbnRleHQuZG9jdW1lbnQ7CisgICAgICAgIGRvY3VtZW50Lm9wZW4oKTsK
KyAgICAgICAgZG9jdW1lbnQud3JpdGUocGFnZS5nZW5lcmF0ZU1hcmt1cCgpKTsKKyAgICAgICAg
ZG9jdW1lbnQuY2xvc2UoKTsKKworICAgICAgICBjb25zdCBtaW4gPSAxLjA7CisgICAgICAgIGNv
bnN0IG1heCA9IDYuMDsKKyAgICAgICAgY29uc3QgZXhwZWN0ZWRQZXJjZW50YWdlcyA9IFsuLi5y
ZXN1bHRBLCAuLi5yZXN1bHRCXS5tYXAoKHJlc3VsdCkgPT4gMTAgKyAocmVzdWx0IC0gbWluKSAv
IChtYXggLSBtaW4pICogOTApOworICAgICAgICBjb25zdCBiYXJOb2RlcyA9IGNvbnRleHQuZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmJhci1ncmFwaC1wbGFjZWhvbGRlcicpOworICAgICAg
ICBleHBlY3QoYmFyTm9kZXMubGVuZ3RoKS50by5iZSg2KTsKKworICAgICAgICBjb25zdCBhbG1v
c3RFcXVhbCA9IChhLCBiKSA9PiBNYXRoLmFicyhhIC0gYikgPCAwLjAxOworICAgICAgICBsZXQg
cHJldmlvdXNOb2RlV2lkdGggPSBwYXJzZUZsb2F0KGNvbnRleHQuZ2xvYmFsLmdldENvbXB1dGVk
U3R5bGUoYmFyTm9kZXNbMF0pLndpZHRoKTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCA2
OyArKyBpKSB7CisgICAgICAgICAgICBjb25zdCBjdXJyZW50Tm9kZVdpZHRoID0gcGFyc2VGbG9h
dChjb250ZXh0Lmdsb2JhbC5nZXRDb21wdXRlZFN0eWxlKGJhck5vZGVzW2ldKS53aWR0aCk7Cisg
ICAgICAgICAgICBleHBlY3QoYWxtb3N0RXF1YWwoY3VycmVudE5vZGVXaWR0aCAvIHByZXZpb3Vz
Tm9kZVdpZHRoLCBleHBlY3RlZFBlcmNlbnRhZ2VzW2ldIC8gZXhwZWN0ZWRQZXJjZW50YWdlc1tp
IC0gMV0pKS50by5iZSh0cnVlKTsKKyAgICAgICAgICAgIHByZXZpb3VzTm9kZVdpZHRoID0gY3Vy
cmVudE5vZGVXaWR0aDsKKyAgICAgICAgfQorICAgIH0pOworfSk7ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0
YWJhc2Uuc3FsIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCmlu
ZGV4IGM0NzQyZTdiNmRjM2VhODA1YjAzOWUwZDE4Nzc1YzUyZjJmN2QwNjcuLjkxMzI0MGE4MjY5
NzkzZDZhM2JhMDNmMzQ5NWUxMjJhZTFhOWZjYWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvaW5pdC1kYXRhYmFzZS5zcWwKQEAgLTI3OSw2ICsyNzksOCBAQCBDUkVBVEUgVEFCTEUgYW5h
bHlzaXNfdGVzdF9ncm91cHMgKAogICAgIHRlc3Rncm91cF9hdXRob3IgdmFyY2hhcigyNTYpLAog
ICAgIHRlc3Rncm91cF9jcmVhdGVkX2F0IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChDVVJS
RU5UX1RJTUVTVEFNUCBBVCBUSU1FIFpPTkUgJ1VUQycpLAogICAgIHRlc3Rncm91cF9oaWRkZW4g
Ym9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAorICAgIHRlc3Rncm91cF9uZWVkc19ub3Rp
ZmljYXRpb24gYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAorICAgIHRlc3Rncm91cF9u
b3RpZmljYXRpb25fc2VudF9hdCB0aW1lc3RhbXAgREVGQVVMVCBOVUxMLAogICAgIENPTlNUUkFJ
TlQgdGVzdGdyb3VwX25hbWVfbXVzdF9iZV91bmlxdWVfZm9yX2VhY2hfdGFzayBVTklRVUUodGVz
dGdyb3VwX3Rhc2ssIHRlc3Rncm91cF9uYW1lKSk7CiBDUkVBVEUgSU5ERVggdGVzdGdyb3VwX3Rh
c2tfaW5kZXggT04gYW5hbHlzaXNfdGVzdF9ncm91cHModGVzdGdyb3VwX3Rhc2spOwogCmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS90ZXN0LWdyb3Vwcy5w
aHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS90ZXN0LWdyb3Vwcy5waHAK
aW5kZXggNDJkZGQzMDkzNTA5ZGQyZjRhZDYzMGU4NGU0ZDNhMDVlN2IwOTYxYy4uM2NjMTI0ODk0
ZWU1MTcwMjhmM2E1ZGNmMDg3YThiYmJmOTYxNjZhMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdGVzdC1ncm91cHMucGhwCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocApAQCAtMTMsMTQgKzEzLDcg
QEAgZnVuY3Rpb24gbWFpbigkcGF0aCkgewogCiAgICAgJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXIg
PSBuZXcgQnVpbGRSZXF1ZXN0c0ZldGNoZXIoJGRiKTsKIAotICAgIGlmIChjb3VudCgkcGF0aCkg
PiAwICYmICRwYXRoWzBdKSB7Ci0gICAgICAgICRncm91cF9pZCA9IGludHZhbCgkcGF0aFswXSk7
Ci0gICAgICAgICRncm91cCA9ICRkYi0+c2VsZWN0X2ZpcnN0X3JvdygnYW5hbHlzaXNfdGVzdF9n
cm91cHMnLCAndGVzdGdyb3VwJywgYXJyYXkoJ2lkJyA9PiAkZ3JvdXBfaWQpKTsKLSAgICAgICAg
aWYgKCEkZ3JvdXApCi0gICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0dyb3VwTm90Rm91bmQn
LCBhcnJheSgnaWQnID0+ICRncm91cF9pZCkpOwotICAgICAgICAkdGVzdF9ncm91cHMgPSBhcnJh
eSgkZ3JvdXApOwotICAgICAgICAkYnVpbGRfcmVxdWVzdHNfZmV0Y2hlci0+ZmV0Y2hfZm9yX2dy
b3VwKCRncm91cFsndGVzdGdyb3VwX3Rhc2snXSwgJGdyb3VwX2lkKTsKLSAgICB9IGVsc2Ugewor
ICAgIGlmICghY291bnQoJHBhdGgpKSB7CiAgICAgICAgICR0YXNrX2lkID0gYXJyYXlfZ2V0KCRf
R0VULCAndGFzaycpOwogICAgICAgICBpZiAoISR0YXNrX2lkKQogICAgICAgICAgICAgZXhpdF93
aXRoX2Vycm9yKCdUYXNrSWROb3RTcGVjaWZpZWQnKTsKQEAgLTI5LDYgKzIyLDI4IEBAIGZ1bmN0
aW9uIG1haW4oJHBhdGgpIHsKICAgICAgICAgaWYgKCFpc19hcnJheSgkdGVzdF9ncm91cHMpKQog
ICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRUb0ZldGNoVGVzdEdyb3VwcycpOwog
ICAgICAgICAkYnVpbGRfcmVxdWVzdHNfZmV0Y2hlci0+ZmV0Y2hfZm9yX3Rhc2soJHRhc2tfaWQp
OworICAgIH0gZWxzZWlmICgkcGF0aFswXSA9PSAncmVhZHktZm9yLW5vdGlmaWNhdGlvbicpIHsK
KyAgICAgICAgJHRlc3RfZ3JvdXBzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1Qg
KiBGUk9NIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzCisgICAgICAgICAgICAgICAgV0hFUkUgRVhJU1RT
KFNFTEVDVCAxIEZST00gYnVpbGRfcmVxdWVzdHMKKyAgICAgICAgICAgICAgICBXSEVSRSByZXF1
ZXN0X2dyb3VwID0gdGVzdGdyb3VwX2lkCisgICAgICAgICAgICAgICAgICBBTkQgcmVxdWVzdF9z
dGF0dXMgSU4gKFwncGVuZGluZ1wnLCBcJ3NjaGVkdWxlZFwnLCBcJ3J1bm5pbmdcJywgXCdjYW5j
ZWxlZFwnKSkgSVMgRkFMU0UKKyAgICAgICAgICAgICAgICAgIEFORCB0ZXN0Z3JvdXBfbmVlZHNf
bm90aWZpY2F0aW9uIElTIFRSVUUgYW5kIHRlc3Rncm91cF9oaWRkZW4gSVMgRkFMU0UnKTsKKwor
ICAgICAgICBpZiAoIWNvdW50KCR0ZXN0X2dyb3VwcykpIHsKKyAgICAgICAgICAgIGV4aXRfd2l0
aF9zdWNjZXNzKGFycmF5KCd0ZXN0R3JvdXBzJyA9PiBhcnJheSgpLAorICAgICAgICAgICAgICAg
ICdidWlsZFJlcXVlc3RzJyA9PiBhcnJheSgpLAorICAgICAgICAgICAgICAgICdjb21taXRTZXRz
JyA9PiBhcnJheSgpLAorICAgICAgICAgICAgICAgICdjb21taXRzJyA9PiBhcnJheSgpLAorICAg
ICAgICAgICAgICAgICd1cGxvYWRlZEZpbGVzJyA9PiBhcnJheSgpKSk7CisgICAgICAgIH0KKyAg
ICAgICAgJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXItPmZldGNoX3JlcXVlc3RzX2Zvcl9ncm91cHMo
JHRlc3RfZ3JvdXBzKTsKKyAgICB9IGVsc2UgeworICAgICAgICAkZ3JvdXBfaWQgPSBpbnR2YWwo
JHBhdGhbMF0pOworICAgICAgICAkZ3JvdXAgPSAkZGItPnNlbGVjdF9maXJzdF9yb3coJ2FuYWx5
c2lzX3Rlc3RfZ3JvdXBzJywgJ3Rlc3Rncm91cCcsIGFycmF5KCdpZCcgPT4gJGdyb3VwX2lkKSk7
CisgICAgICAgIGlmICghJGdyb3VwKQorICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdHcm91
cE5vdEZvdW5kJywgYXJyYXkoJ2lkJyA9PiAkZ3JvdXBfaWQpKTsKKyAgICAgICAgJHRlc3RfZ3Jv
dXBzID0gYXJyYXkoJGdyb3VwKTsKKyAgICAgICAgJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXItPmZl
dGNoX2Zvcl9ncm91cCgkZ3JvdXBbJ3Rlc3Rncm91cF90YXNrJ10sICRncm91cF9pZCk7CiAgICAg
fQogICAgIGlmICghJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXItPmhhc19yZXN1bHRzKCkpCiAgICAg
ICAgIGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9GZXRjaEJ1aWxkUmVxdWVzdHMnKTsKQEAgLTYz
LDggKzc4LDEwIEBAIGZ1bmN0aW9uIGZvcm1hdF90ZXN0X2dyb3VwKCRncm91cF9yb3cpIHsKICAg
ICAgICAgJ3Rhc2snID0+ICRncm91cF9yb3dbJ3Rlc3Rncm91cF90YXNrJ10sCiAgICAgICAgICdu
YW1lJyA9PiAkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfbmFtZSddLAogICAgICAgICAnYXV0aG9yJyA9
PiAkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfYXV0aG9yJ10sCi0gICAgICAgICdjcmVhdGVkQXQnID0+
IHN0cnRvdGltZSgkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfY3JlYXRlZF9hdCddKSAqIDEwMDAsCisg
ICAgICAgICdjcmVhdGVkQXQnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRncm91cF9yb3dbJ3Rl
c3Rncm91cF9jcmVhdGVkX2F0J10pLAorICAgICAgICAnbm90aWZpY2F0aW9uU2VudEF0JyA9PiBE
YXRhYmFzZTo6dG9fanNfdGltZSgkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfbm90aWZpY2F0aW9uX3Nl
bnRfYXQnXSksCiAgICAgICAgICdoaWRkZW4nID0+IERhdGFiYXNlOjppc190cnVlKCRncm91cF9y
b3dbJ3Rlc3Rncm91cF9oaWRkZW4nXSksCisgICAgICAgICduZWVkc05vdGlmaWNhdGlvbicgPT4g
RGF0YWJhc2U6OmlzX3RydWUoJGdyb3VwX3Jvd1sndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlv
biddKSwKICAgICAgICAgJ2J1aWxkUmVxdWVzdHMnID0+IGFycmF5KCksCiAgICAgICAgICdjb21t
aXRTZXRzJyA9PiBhcnJheSgpLAogICAgICk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hl
ci5waHAKaW5kZXggMjdmMDI0MDdkYTc0OTE3NThkZWRhZTA4M2Y0YzM0MGMxYjM2ZGEzMS4uYjM4
ODc3OWIyN2QzZjkzMDU0Mzg4Y2Y5NWU2MmMzMTkwNzE5YWUyOCAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIu
cGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1y
ZXF1ZXN0cy1mZXRjaGVyLnBocApAQCAtMzAsNiArMzAsMTcgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0
c0ZldGNoZXIgewogICAgICAgICAgICAgJHJvd1sndGFza19pZCddID0gJHRhc2tfaWQ7CiAgICAg
fQogCisgICAgZnVuY3Rpb24gZmV0Y2hfcmVxdWVzdHNfZm9yX2dyb3VwcygkdGVzdF9ncm91cHMp
IHsKKyAgICAgICAgJHRlc3RfZ3JvdXBfaWRfbGlzdCA9IGFycmF5KCk7CisgICAgICAgIGZvcmVh
Y2goJHRlc3RfZ3JvdXBzIGFzICRncm91cCkKKyAgICAgICAgICAgIGFycmF5X3B1c2goJHRlc3Rf
Z3JvdXBfaWRfbGlzdCwgaW50dmFsKCRncm91cFsndGVzdGdyb3VwX2lkJ10pKTsKKworICAgICAg
ICAkdGhpcy0+cm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICos
IHRlc3Rncm91cF90YXNrIGFzIHRhc2tfaWQKKyAgICAgICAgICAgIEZST00gYnVpbGRfcmVxdWVz
dHMsIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzCisgICAgICAgICAgICBXSEVSRSByZXF1ZXN0X2dyb3Vw
ID0gdGVzdGdyb3VwX2lkIEFORCB0ZXN0Z3JvdXBfaWQgPSBBTlkoJDEpCisgICAgICAgICAgICBP
UkRFUiBCWSByZXF1ZXN0X2dyb3VwLCByZXF1ZXN0X29yZGVyJywgYXJyYXkoJ3snIC4gaW1wbG9k
ZSgnLCAnLCAkdGVzdF9ncm91cF9pZF9saXN0KSAuICd9JykpOworICAgIH0KKwogICAgIGZ1bmN0
aW9uIGZldGNoX2luY29tcGxldGVfcmVxdWVzdHNfZm9yX3RyaWdnZXJhYmxlKCR0cmlnZ2VyYWJs
ZV9pZCkgewogICAgICAgICAkdGhpcy0+cm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgnU0VMRUNUICosIHRlc3RfZ3JvdXBzLnRlc3Rncm91cF90YXNrIGFzIHRhc2tfaWQgRlJP
TSBidWlsZF9yZXF1ZXN0cywKICAgICAgICAgICAgIChTRUxFQ1QgdGVzdGdyb3VwX2lkLCB0ZXN0
Z3JvdXBfdGFzaywgKGNhc2Ugd2hlbiB0ZXN0Z3JvdXBfYXV0aG9yIGlzIG5vdCBudWxsIHRoZW4g
MCBlbHNlIDEgZW5kKSBhcyBhdXRob3Jfb3JkZXIsIHRlc3Rncm91cF9jcmVhdGVkX2F0CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNl
dHMtaGVscGVycy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUv
Y29tbWl0LXNldHMtaGVscGVycy5waHAKaW5kZXggYTdhZGM0ZjhhMzJkNzZmNWJlNDU3YmI3Mzdl
ZGRmMTRlZGZhOGIyMi4uYmVjN2Q0ODZmMmIwN2FlZDM2ZGQyZTJiZmUyN2I3MTA5OTQzYTY0MyAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1p
dC1zZXRzLWhlbHBlcnMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
aW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocApAQCAtNCwxMiArNCwxMiBAQCByZXF1aXJl
X29uY2UoJ3JlcG9zaXRvcnktZ3JvdXAtZmluZGVyLnBocCcpOwogcmVxdWlyZV9vbmNlKCdjb21t
aXQtbG9nLWZldGNoZXIucGhwJyk7CiAKICMgRklYTUU6IFNob3VsZCBjcmVhdGUgYSBoZWxwZXIg
Y2xhc3MgZm9yIGJlbG93IDMgaGVscGVyIGZ1bmN0aW9ucyB0byBhdm9pZCBwYXNzaW5nIGxvbmcg
YXJndW1lbnQgbGlzdC4KLWZ1bmN0aW9uIGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9yZXF1
ZXN0cygkZGIsICRjb21taXRfc2V0cywgJHRhc2tfaWQsICRuYW1lLCAkYXV0aG9yLCAkdHJpZ2dl
cmFibGVfaWQsICRwbGF0Zm9ybV9pZCwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50KSB7Citm
dW5jdGlvbiBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0
X3NldHMsICR0YXNrX2lkLCAkbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZv
cm1faWQsICR0ZXN0X2lkLCAkcmVwZXRpdGlvbl9jb3VudCwgJG5lZWRzX25vdGlmaWNhdGlvbikg
ewogCiAgICAgbGlzdCAoJGJ1aWxkX2NvbmZpZ3VyYXRpb25fbGlzdCwgJHRlc3RfY29uZmlndXJh
dGlvbl9saXN0KSA9IGluc2VydF9jb21taXRfc2V0c19hbmRfY29uc3RydWN0X2NvbmZpZ3VyYXRp
b25fbGlzdCgkZGIsICRjb21taXRfc2V0cyk7CiAKICAgICAkZ3JvdXBfaWQgPSAkZGItPmluc2Vy
dF9yb3coJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywgJ3Rlc3Rncm91cCcsCi0gICAgICAgIGFycmF5
KCd0YXNrJyA9PiAkdGFza19pZCwgJ25hbWUnID0+ICRuYW1lLCAnYXV0aG9yJyA9PiAkYXV0aG9y
KSk7CisgICAgICAgIGFycmF5KCd0YXNrJyA9PiAkdGFza19pZCwgJ25hbWUnID0+ICRuYW1lLCAn
YXV0aG9yJyA9PiAkYXV0aG9yLCAnbmVlZHNfbm90aWZpY2F0aW9uJyA9PiAkbmVlZHNfbm90aWZp
Y2F0aW9uKSk7CiAKICAgICAkYnVpbGRfY291bnQgPSBjb3VudCgkYnVpbGRfY29uZmlndXJhdGlv
bl9saXN0KTsKICAgICAkb3JkZXIgPSAtJGJ1aWxkX2NvdW50OwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMt
dGFzay5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocAppbmRleCA5NDBmODBiOTdhMDVjYmFmYTA0NTdkMzlk
MTM3MzBkMjY2ZjhmY2Y5Li40ODA0Y2M3NWIyMTVmNzE3NDNmNzY4MzgxNTgwN2I2M2I1OGViZGEx
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocApAQCAtMTAs
NiArMTAsNyBAQCBmdW5jdGlvbiBtYWluKCkgewogICAgICRhdXRob3IgPSByZW1vdGVfdXNlcl9u
YW1lKCRkYXRhKTsKICAgICAkbmFtZSA9IGFycmF5X2dldCgkZGF0YSwgJ25hbWUnKTsKICAgICAk
cmVwZXRpdGlvbl9jb3VudCA9IGFycmF5X2dldCgkZGF0YSwgJ3JlcGV0aXRpb25Db3VudCcpOwor
ICAgICRuZWVkc19ub3RpZmljYXRpb24gPSBhcnJheV9nZXQoJGRhdGEsICduZWVkc05vdGlmaWNh
dGlvbicsIEZhbHNlKTsKICAgICAkdGVzdF9ncm91cF9uYW1lID0gYXJyYXlfZ2V0KCRkYXRhLCAn
dGVzdEdyb3VwTmFtZScpOwogICAgICRyZXZpc2lvbl9zZXRfbGlzdCA9IGFycmF5X2dldCgkZGF0
YSwgJ3JldmlzaW9uU2V0cycpOwogCkBAIC04NCw3ICs4NSw3IEBAIGZ1bmN0aW9uIG1haW4oKSB7
CiAgICAgICAgICR0cmlnZ2VyYWJsZV9pZCA9ICR0cmlnZ2VyYWJsZVsnaWQnXTsKICAgICAgICAg
JHRlc3RfaWQgPSAkdHJpZ2dlcmFibGVbJ3Rlc3QnXTsKICAgICAgICAgJGNvbW1pdF9zZXRzID0g
Y29tbWl0X3NldHNfZnJvbV9yZXZpc2lvbl9zZXRzKCRkYiwgJHRyaWdnZXJhYmxlX2lkLCAkcmV2
aXNpb25fc2V0X2xpc3QpOwotICAgICAgICBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVpbGRfcmVx
dWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAkdGVzdF9ncm91cF9uYW1lLCAkYXV0
aG9yLCAkdHJpZ2dlcmFibGVfaWQsICRjb25maWdbJ2NvbmZpZ19wbGF0Zm9ybSddLCAkdGVzdF9p
ZCwgJHJlcGV0aXRpb25fY291bnQpOworICAgICAgICBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVp
bGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAkdGVzdF9ncm91cF9uYW1l
LCAkYXV0aG9yLCAkdHJpZ2dlcmFibGVfaWQsICRjb25maWdbJ2NvbmZpZ19wbGF0Zm9ybSddLCAk
dGVzdF9pZCwgJHJlcGV0aXRpb25fY291bnQsICRuZWVkc19ub3RpZmljYXRpb24pOwogICAgIH0K
IAogICAgICRkYi0+Y29tbWl0X3RyYW5zYWN0aW9uKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBo
cCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAucGhwCmluZGV4IDU2YjQ3NTU4ZjgwZDNmZWQ4ZGEyOWM5MzJhYWQ4NmQ3OTY1
ZDg5NTguLjEwMjNkNGJjYjY5MGM3ZjE4Nzk0NTE3NzM2NmNiMzQ0NGU5NmI2YWMgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwCkBAIC0xOCw2ICsxOCw3IEBAIGZ1bmN0
aW9uIG1haW4oKQogICAgICR0YXNrX2lkID0gYXJyYXlfZ2V0KCRhcmd1bWVudHMsICd0YXNrJyk7
CiAgICAgJHRhc2tfbmFtZSA9IGFycmF5X2dldCgkZGF0YSwgJ3Rhc2tOYW1lJyk7CiAgICAgJHJl
cGV0aXRpb25fY291bnQgPSAkYXJndW1lbnRzWydyZXBldGl0aW9uQ291bnQnXTsKKyAgICAkbmVl
ZHNfbm90aWZpY2F0aW9uID0gYXJyYXlfZ2V0KCRkYXRhLCAnbmVlZHNOb3RpZmljYXRpb24nLCBG
YWxzZSk7CiAgICAgJHBsYXRmb3JtX2lkID0gYXJyYXlfZ2V0KCRkYXRhLCAncGxhdGZvcm0nKTsK
ICAgICAkdGVzdF9pZCA9IGFycmF5X2dldCgkZGF0YSwgJ3Rlc3QnKTsKICAgICAkcmV2aXNpb25f
c2V0X2xpc3QgPSBhcnJheV9nZXQoJGRhdGEsICdyZXZpc2lvblNldHMnKTsKQEAgLTg1LDcgKzg2
LDcgQEAgZnVuY3Rpb24gbWFpbigpCiAgICAgaWYgKCR0YXNrX25hbWUpCiAgICAgICAgICR0YXNr
X2lkID0gJGRiLT5pbnNlcnRfcm93KCdhbmFseXNpc190YXNrcycsICd0YXNrJywgYXJyYXkoJ25h
bWUnID0+ICR0YXNrX25hbWUsICdhdXRob3InID0+ICRhdXRob3IpKTsKIAotICAgICRncm91cF9p
ZCA9IGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9yZXF1ZXN0cygkZGIsICRjb21taXRfc2V0
cywgJHRhc2tfaWQsICRuYW1lLCAkYXV0aG9yLCAkdHJpZ2dlcmFibGVfaWQsICRwbGF0Zm9ybV9p
ZCwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50KTsKKyAgICAkZ3JvdXBfaWQgPSBjcmVhdGVf
dGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lk
LCAkbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lk
LCAkcmVwZXRpdGlvbl9jb3VudCwgJG5lZWRzX25vdGlmaWNhdGlvbik7CiAKICAgICAkZGItPmNv
bW1pdF90cmFuc2FjdGlvbigpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocCBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAu
cGhwCmluZGV4IGRiMWVkMzgzOTJhNTcyMDFjYzA3NjUyOGU0OGE0OTY4ZDIwZTllZTguLjNhZTRl
Yzc5MmRkZWFjMTM4ZWIwZGQyMTlhMjY5YzA3MmMyNzFkMjcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAu
cGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkv
dXBkYXRlLXRlc3QtZ3JvdXAucGhwCkBAIC0zLDcgKzMsOCBAQAogcmVxdWlyZV9vbmNlKCcuLi9p
bmNsdWRlL2pzb24taGVhZGVyLnBocCcpOwogCiBmdW5jdGlvbiBtYWluKCkgewotICAgICRkYXRh
ID0gZW5zdXJlX3ByaXZpbGVnZWRfYXBpX2RhdGFfYW5kX3Rva2VuKCk7CisgICAgJGRiID0gY29u
bmVjdCgpOworICAgICRkYXRhID0gZW5zdXJlX3ByaXZpbGVnZWRfYXBpX2RhdGFfYW5kX3Rva2Vu
X29yX3NsYXZlKCRkYik7CiAKICAgICAkdGVzdF9ncm91cF9pZCA9IGFycmF5X2dldCgkZGF0YSwg
J2dyb3VwJyk7CiAgICAgaWYgKCEkdGVzdF9ncm91cF9pZCkKQEAgLTE3LDEwICsxOCwyMCBAQCBm
dW5jdGlvbiBtYWluKCkgewogICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdoaWRkZW4nLCAkZGF0
YSkpCiAgICAgICAgICR2YWx1ZXNbJ2hpZGRlbiddID0gRGF0YWJhc2U6OnRvX2RhdGFiYXNlX2Jv
b2xlYW4oJGRhdGFbJ2hpZGRlbiddKTsKIAorICAgICRoYXNfbmVlZHNfbm90aWZpY2F0aW9uX2Zp
ZWxkID0gYXJyYXlfa2V5X2V4aXN0cygnbmVlZHNOb3RpZmljYXRpb24nLCAkZGF0YSk7CisgICAg
JGhhc19ub3RpZmljYXRpb25fc2VudF9hdF9maWVsZCA9IGFycmF5X2tleV9leGlzdHMoJ25vdGlm
aWNhdGlvblNlbnRBdCcsICRkYXRhKTsKKworICAgIGlmICgkaGFzX25lZWRzX25vdGlmaWNhdGlv
bl9maWVsZCB8fCAkaGFzX25vdGlmaWNhdGlvbl9zZW50X2F0X2ZpZWxkKSB7CisgICAgICAgIGlm
ICghKCRoYXNfbm90aWZpY2F0aW9uX3NlbnRfYXRfZmllbGQgeG9yICRkYXRhWyduZWVkc05vdGlm
aWNhdGlvbiddKSkKKyAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignTm90aWZpY2F0aW9uU2Vu
dEF0RmllbGRTaG91bGRPbmx5QmVTZXRXaGVuTmVlZHNOb3RpZmljYXRpb25Jc0ZhbHNlJyk7CisK
KyAgICAgICAgJHZhbHVlc1snbmVlZHNfbm90aWZpY2F0aW9uJ10gPSBEYXRhYmFzZTo6dG9fZGF0
YWJhc2VfYm9vbGVhbigkZGF0YVsnbmVlZHNOb3RpZmljYXRpb24nXSk7CisgICAgICAgIGlmICgh
JGRhdGFbJ25lZWRzTm90aWZpY2F0aW9uJ10pCisgICAgICAgICAgICAkdmFsdWVzWydub3RpZmlj
YXRpb25fc2VudF9hdCddID0gJGRhdGFbJ25vdGlmaWNhdGlvblNlbnRBdCddOworICAgIH0KKwog
ICAgIGlmICghJHZhbHVlcykKICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdOb3RoaW5nVG9VcGRh
dGUnKTsKLQotICAgICRkYiA9IGNvbm5lY3QoKTsKICAgICAkZGItPmJlZ2luX3RyYW5zYWN0aW9u
KCk7CiAKICAgICBpZiAoISRkYi0+dXBkYXRlX3JvdygnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCAn
dGVzdGdyb3VwJywgYXJyYXkoJ2lkJyA9PiAkdGVzdF9ncm91cF9pZCksICR2YWx1ZXMpKSB7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMv
Y3VzdG9tLWNvbmZpZ3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3Qt
Z3JvdXAtZm9ybS5qcwppbmRleCA1OGViYmFhZGM4Y2U1NjI3ZGYwNjI2ZGU4MDMwOTkzOTRlMjM3
YjgwLi4yYTJiODY3ZjVmYjM2MjI4ZjVkOGJhNjA1MDE2ODg3MDI4OWIzNGY2IDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWNv
bmZpZ3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJhdGlvbi10ZXN0LWdyb3Vw
LWZvcm0uanMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgQ3VzdG9tQ29uZmlndXJhdGlvblRlc3RH
cm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAgICAgICAgY29uc3QgY29tbWl0U2V0
cyA9IGNvbmZpZ3VyYXRvci5jb21taXRTZXRzKCk7CiAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0g
Y29uZmlndXJhdG9yLnBsYXRmb3JtKCk7CiAgICAgICAgIGNvbnN0IHRlc3QgPSBjb25maWd1cmF0
b3IudGVzdHMoKVswXTsgLy8gRklYTUU6IEFkZCB0aGUgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBt
dWx0aXBsZSB0ZXN0cy4KLSAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5n
JywgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCB0ZXN0R3JvdXBOYW1lLCBjb21taXRTZXRzLCBwbGF0
Zm9ybSwgdGVzdCwgdGFza05hbWUpOworICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzdGFy
dFRlc3RpbmcnLCB0aGlzLl9yZXBldGl0aW9uQ291bnQsIHRlc3RHcm91cE5hbWUsIGNvbW1pdFNl
dHMsIHBsYXRmb3JtLCB0ZXN0LCB0YXNrTmFtZSwgdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uKTsK
ICAgICB9CiAKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVz
dC1ncm91cC1mb3JtLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggNTNlZjdmN2Y1Nzcz
ODNhZGNiMmU2YzIzYWM4MDYxNWM3Zjg0Y2IxZC4uMjA0NDFjMTE4YjNkOWVkMTU5YWE5ZDdkN2Nk
ZmQ5NzlkNTIxNTk1MSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10
ZXN0LWdyb3VwLWZvcm0uanMKQEAgLTI1LDcgKzI1LDcgQEAgY2xhc3MgQ3VzdG9taXphYmxlVGVz
dEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91cEZvcm0gewogCiAgICAgc3RhcnRUZXN0aW5nKCkK
ICAgICB7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMu
X3JlcGV0aXRpb25Db3VudCwgdGhpcy5fbmFtZSwgdGhpcy5fY29tcHV0ZUNvbW1pdFNldE1hcCgp
KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fcmVw
ZXRpdGlvbkNvdW50LCB0aGlzLl9uYW1lLCB0aGlzLl9jb21wdXRlQ29tbWl0U2V0TWFwKCksIHRo
aXMuX25vdGlmeU9uQ29tcGxldGlvbik7CiAgICAgfQogCiAgICAgZGlkQ29uc3RydWN0U2hhZG93
VHJlZSgpCkBAIC0yODYsNiArMjg2LDEwIEBAIGNsYXNzIEN1c3RvbWl6YWJsZVRlc3RHcm91cEZv
cm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzsK
ICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgI2N1c3RvbWl6ZS1saW5rLWNvbnRhaW5lciB7
CisgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNHJlbTsKKyAgICAgICAgICAgIH0KKwog
ICAgICAgICAgICAgI2N1c3RvbS10YWJsZTpub3QoOmVtcHR5KSB7CiAgICAgICAgICAgICAgICAg
bWFyZ2luOiAxcmVtIDA7CiAgICAgICAgICAgICB9CkBAIC0zMjAsNiArMzI0LDEwIEBAIGNsYXNz
IEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAgICAg
ICAgICAgICNjdXN0b20tdGFibGUgdGggewogICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNl
bnRlcjsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgI25vdGlmeS1vbi1jb21wbGV0aW9u
LWNoZWNrYm94IHsKKyAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC40cmVtOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgYDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1m
b3JtLmpzCmluZGV4IGM0NGI2NmZhMDVkMGE2MjQyMjdmNmJhYzUzOTAxZWM3NDg0MGI0ZDUuLmE0
M2VkZjM1MDhiY2YwNzQ2MjVkYjk5NjRmNjA0ZGUxODA4Mjk2NGYgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0u
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rl
c3QtZ3JvdXAtZm9ybS5qcwpAQCAtNSw2ICs1LDcgQEAgY2xhc3MgVGVzdEdyb3VwRm9ybSBleHRl
bmRzIENvbXBvbmVudEJhc2UgewogICAgIHsKICAgICAgICAgc3VwZXIobmFtZSB8fCAndGVzdC1n
cm91cC1mb3JtJyk7CiAgICAgICAgIHRoaXMuX3JlcGV0aXRpb25Db3VudCA9IDQ7CisgICAgICAg
IHRoaXMuX25vdGlmeU9uQ29tcGxldGlvbiA9IHRydWU7CiAgICAgfQogCiAgICAgc2V0UmVwZXRp
dGlvbkNvdW50KGNvdW50KQpAQCAtMTgsMTMgKzE5LDE1IEBAIGNsYXNzIFRlc3RHcm91cEZvcm0g
ZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgY29uc3QgcmVwZXRpdGlvbkNvdW50U2Vs
ZWN0ID0gdGhpcy5jb250ZW50KCdyZXBldGl0aW9uLWNvdW50Jyk7CiAgICAgICAgIHJlcGV0aXRp
b25Db3VudFNlbGVjdC5vbmNoYW5nZSA9ICgpID0+IHsKICAgICAgICAgICAgIHRoaXMuX3JlcGV0
aXRpb25Db3VudCA9IHJlcGV0aXRpb25Db3VudFNlbGVjdC52YWx1ZTsKLSAgICAgICAgfQorICAg
ICAgICB9OworICAgICAgICBjb25zdCBub3RpZnlPbkNvbXBsZXRpb25DaGVja0JveCA9IHRoaXMu
Y29udGVudCgnbm90aWZ5LW9uLWNvbXBsZXRpb24tY2hlY2tib3gnKTsKKyAgICAgICAgbm90aWZ5
T25Db21wbGV0aW9uQ2hlY2tCb3gub25jaGFuZ2UgPSAoKSA9PiB0aGlzLl9ub3RpZnlPbkNvbXBs
ZXRpb24gPSBub3RpZnlPbkNvbXBsZXRpb25DaGVja0JveC5jaGVja2VkOwogICAgICAgICB0aGlz
LmNvbnRlbnQoJ2Zvcm0nKS5vbnN1Ym1pdCA9IHRoaXMuY3JlYXRlRXZlbnRIYW5kbGVyKCgpID0+
IHRoaXMuc3RhcnRUZXN0aW5nKCkpOwogICAgIH0KIAogICAgIHN0YXJ0VGVzdGluZygpCiAgICAg
ewotICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzdGFydFRlc3RpbmcnLCB0aGlzLl9yZXBl
dGl0aW9uQ291bnQpOworICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzdGFydFRlc3Rpbmcn
LCB0aGlzLl9yZXBldGl0aW9uQ291bnQsIHRoaXMuX25vdGlmeU9uQ29tcGxldGlvbik7CiAgICAg
fQogCiAgICAgc3RhdGljIGh0bWxUZW1wbGF0ZSgpCkBAIC0zOCw2ICs0MSwxMSBAQCBjbGFzcyBU
ZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgICAgICA6aG9zdCB7
CiAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICNub3RpZnktb24tY29tcGxldGlvbi1jaGVja2JveCB7CisgICAgICAgICAgICAgICAg
bWFyZ2luLWxlZnQ6IDAuNXJlbTsKKyAgICAgICAgICAgICAgICB3aWR0aDogMXJlbTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgYDsKICAgICB9CiAKQEAgLTU4LDYgKzY2LDcgQEAgY2xhc3MgVGVz
dEdyb3VwRm9ybSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICAgICAgICAgIDxvcHRp
b24+MTA8L29wdGlvbj4KICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgaXRlcmF0
aW9ucyBwZXIgc2V0CisgICAgICAgICAgICA8aW5wdXQgaWQ9Im5vdGlmeS1vbi1jb21wbGV0aW9u
LWNoZWNrYm94IiB0eXBlPSJjaGVja2JveCIgY2hlY2tlZC8+Tm90aWZ5IG9uIGNvbXBsZXRpb24K
ICAgICAgICAgYDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3VsdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1bHRzLmpzCmluZGV4IGQwNDhi
ZWVkNmQyYTBjZmZkOTExNmY5MmRhOTIyZDZhMGFmOGE5NTIuLjI1OTU1M2NjYmI0MWUxZTFkNWU4
OGYzZjVhZTAwYTNiMGVhOTRhYmEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3VsdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qcwpAQCAtODQs
NyArODQsNyBAQCBjbGFzcyBBbmFseXNpc1Jlc3VsdHMgewogICAgIHN0YXRpYyBmZXRjaCh0YXNr
SWQpCiAgICAgewogICAgICAgICB0YXNrSWQgPSBwYXJzZUludCh0YXNrSWQpOwotICAgICAgICBy
ZXR1cm4gUmVtb3RlQVBJLmdldEpTT05XaXRoU3RhdHVzKGAuLi9hcGkvbWVhc3VyZW1lbnQtc2V0
P2FuYWx5c2lzVGFzaz0ke3Rhc2tJZH1gKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAg
ICAgICByZXR1cm4gUmVtb3RlQVBJLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVtZW50
LXNldD9hbmFseXNpc1Rhc2s9JHt0YXNrSWR9YCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsK
IAogICAgICAgICAgICAgSW5zdHJ1bWVudGF0aW9uLnN0YXJ0TWVhc3VyaW5nVGltZSgnQW5hbHlz
aXNSZXN1bHRzJywgJ2ZldGNoJyk7CiAKQEAgLTExNiwzICsxMTYsOCBAQCBjbGFzcyBBbmFseXNp
c1Jlc3VsdHNWaWV3IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3VsdHMuZmluZFJlc3VsdChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCB0aGlzLl9tZXRyaWMuaWQoKSk7CiAgICAgfQogfQorCisK
K2lmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykgeworICAgIG1vZHVsZS5leHBvcnRz
LkFuYWx5c2lzUmVzdWx0cyA9IEFuYWx5c2lzUmVzdWx0czsKK30KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9hbmFseXNpcy10YXNrLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcwppbmRleCA1ZGI0NTI0Mjg5NWUyYzRhMWUxNDRi
OWZiMzQxNTNiNGE4MzMxOWU5Li5kYmI3YzJlMDkwYTY2MDdjNTMwZjlkZDg5OTg3YWIzNDUyMjMy
ODBkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9hbmFseXNpcy10YXNrLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMKQEAgLTMwMyw3ICszMDMsNyBAQCBjbGFzcyBBbmFs
eXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdHM7
CiAgICAgfQogCi0gICAgc3RhdGljIGFzeW5jIGNyZWF0ZShuYW1lLCBzdGFydFBvaW50LCBlbmRQ
b2ludCwgdGVzdEdyb3VwTmFtZT1udWxsLCByZXBldGl0aW9uQ291bnQ9MCkKKyAgICBzdGF0aWMg
YXN5bmMgY3JlYXRlKG5hbWUsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCB0ZXN0R3JvdXBOYW1lPW51
bGwsIHJlcGV0aXRpb25Db3VudD0wLCBub3RpZnlPbkNvbXBsZXRpb249ZmFsc2UpCiAgICAgewog
ICAgICAgICBjb25zdCBwYXJhbWV0ZXJzID0ge25hbWUsIHN0YXJ0UnVuOiBzdGFydFBvaW50Lmlk
LCBlbmRSdW46IGVuZFBvaW50LmlkfTsKICAgICAgICAgaWYgKHRlc3RHcm91cE5hbWUpIHsKQEAg
LTMxMSw2ICszMTEsNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0
IHsKICAgICAgICAgICAgIHBhcmFtZXRlcnNbJ3JldmlzaW9uU2V0cyddID0gQ29tbWl0U2V0LnJl
dmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKFtzdGFydFBvaW50LmNvbW1pdFNldCgpLCBlbmRQb2lu
dC5jb21taXRTZXQoKV0pOwogICAgICAgICAgICAgcGFyYW1ldGVyc1sncmVwZXRpdGlvbkNvdW50
J10gPSByZXBldGl0aW9uQ291bnQ7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzWyd0ZXN0R3JvdXBO
YW1lJ10gPSB0ZXN0R3JvdXBOYW1lOworICAgICAgICAgICAgcGFyYW1ldGVyc1snbmVlZHNOb3Rp
ZmljYXRpb24nXSA9IG5vdGlmeU9uQ29tcGxldGlvbjsKICAgICAgICAgfQogICAgICAgICBjb25z
dCByZXNwb25zZSA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFs
eXNpcy10YXNrJywgcGFyYW1ldGVycyk7CiAgICAgICAgIHJldHVybiBBbmFseXNpc1Rhc2suZmV0
Y2hCeUlkKHJlc3BvbnNlLnRhc2tJZCwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwppbmRleCAwMzE3ZTA1
YTk3OWVhNzJjZWMwNmEwZDgyMGZkN2U4MWFiNDIyNmM0Li5iOTMwODk1MDUzODg1NDk5MDQ3NWNh
YzhhODhmMGUzZjA1YTUxMDE3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKQEAgLTksNiArOSw3IEBAIGNsYXNz
IFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB0aGlzLl9hdXRob3JO
YW1lID0gb2JqZWN0LmF1dGhvcjsKICAgICAgICAgdGhpcy5fY3JlYXRlZEF0ID0gbmV3IERhdGUo
b2JqZWN0LmNyZWF0ZWRBdCk7CiAgICAgICAgIHRoaXMuX2lzSGlkZGVuID0gb2JqZWN0LmhpZGRl
bjsKKyAgICAgICAgdGhpcy5fbmVlZHNOb3RpZmljYXRpb24gPSBvYmplY3QubmVlZHNOb3RpZmlj
YXRpb247CiAgICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdHMgPSBbXTsKICAgICAgICAgdGhpcy5f
b3JkZXJCdWlsZFJlcXVlc3RzTGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uKCgu
Li5idWlsZFJlcXVlc3RzKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gYnVpbGRSZXF1ZXN0cy5z
b3J0KChhLCBiKSA9PiBhLm9yZGVyKCkgLSBiLm9yZGVyKCkpOwpAQCAtMzAsMTIgKzMxLDE3IEBA
IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9wbGF0Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOwogCiAgICAgICAgIHRo
aXMuX2lzSGlkZGVuID0gb2JqZWN0LmhpZGRlbjsKKyAgICAgICAgdGhpcy5fbmVlZHNOb3RpZmlj
YXRpb24gPSBvYmplY3QubmVlZHNOb3RpZmljYXRpb247CisgICAgICAgIHRoaXMuX25vdGlmaWNh
dGlvblNlbnRBdCA9IG9iamVjdC5ub3RpZmljYXRpb25TZW50QXQ7CiAgICAgfQogCiAgICAgdGFz
aygpIHsgcmV0dXJuIEFuYWx5c2lzVGFzay5maW5kQnlJZCh0aGlzLl90YXNrSWQpOyB9CiAgICAg
Y3JlYXRlZEF0KCkgeyByZXR1cm4gdGhpcy5fY3JlYXRlZEF0OyB9CiAgICAgaXNIaWRkZW4oKSB7
IHJldHVybiB0aGlzLl9pc0hpZGRlbjsgfQogICAgIGJ1aWxkUmVxdWVzdHMoKSB7IHJldHVybiB0
aGlzLl9idWlsZFJlcXVlc3RzOyB9CisgICAgbmVlZHNOb3RpZmljYXRpb24oKSB7IHJldHVybiB0
aGlzLl9uZWVkc05vdGlmaWNhdGlvbjsgfQorICAgIG5vdGlmaWNhdGlvblNlbnRBdCgpIHsgcmV0
dXJuIHRoaXMuX25vdGlmaWNhdGlvblNlbnRBdDsgfQorICAgIGF1dGhvcigpIHsgcmV0dXJuIHRo
aXMuX2F1dGhvck5hbWU7IH0KICAgICBhZGRCdWlsZFJlcXVlc3QocmVxdWVzdCkKICAgICB7CiAg
ICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdHMucHVzaChyZXF1ZXN0KTsKQEAgLTE4NSwxMSArMTkx
LDIzIEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB9
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY3JlYXRlV2l0aFRhc2sodGFza05hbWUsIHBsYXRmb3Jt
LCB0ZXN0LCBncm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cykKKyAgICBhc3lu
YyBkaWRTZW5kTm90aWZpY2F0aW9uKCkKKyAgICB7CisgICAgICAgIGNvbnN0IGlkID0gdGhpcy5p
ZCgpOworICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVz
dC1ncm91cCcsIHsKKyAgICAgICAgICAgIGdyb3VwOiBpZCwKKyAgICAgICAgICAgIG5lZWRzTm90
aWZpY2F0aW9uOiBmYWxzZSwKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvblNlbnRBdDogKG5ldyBE
YXRlKS50b0lTT1N0cmluZygpCisgICAgICAgIH0pOworICAgICAgICBjb25zdCBkYXRhID0gYXdh
aXQgVGVzdEdyb3VwLmNhY2hlZEZldGNoKGAvYXBpL3Rlc3QtZ3JvdXBzLyR7aWR9YCwge30sIHRy
dWUpOworICAgICAgICByZXR1cm4gVGVzdEdyb3VwLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRl
c3RHcm91cHMoZGF0YSk7CisgICAgfQorCisgICAgc3RhdGljIGNyZWF0ZVdpdGhUYXNrKHRhc2tO
YW1lLCBwbGF0Zm9ybSwgdGVzdCwgZ3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNl
dHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNv
bW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBDb21t
aXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0cyk7Ci0gICAgICAgIGNv
bnN0IHBhcmFtcyA9IHt0YXNrTmFtZSwgbmFtZTogZ3JvdXBOYW1lLCBwbGF0Zm9ybTogcGxhdGZv
cm0uaWQoKSwgdGVzdDogdGVzdC5pZCgpLCByZXBldGl0aW9uQ291bnQsIHJldmlzaW9uU2V0c307
CisgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrTmFtZSwgbmFtZTogZ3JvdXBOYW1lLCBwbGF0
Zm9ybTogcGxhdGZvcm0uaWQoKSwgdGVzdDogdGVzdC5pZCgpLCByZXBldGl0aW9uQ291bnQsIHJl
dmlzaW9uU2V0cywgbmVlZHNOb3RpZmljYXRpb246ICEhbm90aWZ5T25Db21wbGV0aW9ufTsKICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3Vw
JywgcGFyYW1zKS50aGVuKChkYXRhKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQW5hbHlzaXNU
YXNrLmZldGNoQnlJZChkYXRhWyd0YXNrSWQnXSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRh
c2spID0+IHsKQEAgLTE5NywxNyArMjE1LDE3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExh
YmVsZWRPYmplY3QgewogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY3JlYXRlV2l0
aEN1c3RvbUNvbmZpZ3VyYXRpb24odGFzaywgcGxhdGZvcm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVw
ZXRpdGlvbkNvdW50LCBjb21taXRTZXRzKQorICAgIHN0YXRpYyBjcmVhdGVXaXRoQ3VzdG9tQ29u
ZmlndXJhdGlvbih0YXNrLCBwbGF0Zm9ybSwgdGVzdCwgZ3JvdXBOYW1lLCByZXBldGl0aW9uQ291
bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAgICBjb25zdCByZXZpc2lv
blNldHMgPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0cyk7
Ci0gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrOiB0YXNrLmlkKCksIG5hbWU6IGdyb3VwTmFt
ZSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCksIHRlc3Q6IHRlc3QuaWQoKSwgcmVwZXRpdGlvbkNv
dW50LCByZXZpc2lvblNldHN9OworICAgICAgICBjb25zdCBwYXJhbXMgPSB7dGFzazogdGFzay5p
ZCgpLCBuYW1lOiBncm91cE5hbWUsIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0
LmlkKCksIHJlcGV0aXRpb25Db3VudCwgcmV2aXNpb25TZXRzLCBuZWVkc05vdGlmaWNhdGlvbjog
ISFub3RpZnlPbkNvbXBsZXRpb259OwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCBwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoRm9yVGFzayhkYXRhWyd0YXNrSWQnXSwgdHJ1ZSk7
CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHN0YXRpYyBjcmVhdGVBbmRSZWZldGNoVGVzdEdy
b3Vwcyh0YXNrLCBuYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMpCisgICAgc3RhdGlj
IGNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRhc2ssIG5hbWUsIHJlcGV0aXRpb25Db3VudCwg
Y29tbWl0U2V0cywgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKICAgICAgICAgY29uc29sZS5h
c3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7CiAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0
cyA9IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9tQ29tbWl0U2V0cyhjb21taXRTZXRzKTsKQEAg
LTIxNiw2ICsyMzQsNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsK
ICAgICAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IHJl
cGV0aXRpb25Db3VudCwKICAgICAgICAgICAgIHJldmlzaW9uU2V0czogcmV2aXNpb25TZXRzLAor
ICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246ICEhbm90aWZ5T25Db21wbGV0aW9uLAogICAg
ICAgICB9KS50aGVuKChkYXRhKSA9PiB0aGlzLmZldGNoRm9yVGFzayhkYXRhWyd0YXNrSWQnXSwg
dHJ1ZSkpOwogICAgIH0KIApAQCAtMjI5LDYgKzI0OCwxMSBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0
ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkRmV0Y2goJy9h
cGkvdGVzdC1ncm91cHMnLCB7dGFzazogdGFza0lkfSwgaWdub3JlQ2FjaGUpLnRoZW4odGhpcy5f
Y3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzLmJpbmQodGhpcykpOwogICAgIH0KIAor
ICAgIHN0YXRpYyBmZXRjaEFsbFdpdGhOb3RpZmljYXRpb25SZWFkeSgpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5jYWNoZWRGZXRjaCgnL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90
aWZpY2F0aW9uJywgbnVsbCwgdHJ1ZSkudGhlbih0aGlzLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hl
ZFRlc3RHcm91cHMuYmluZCh0aGlzKSk7CisgICAgfQorCiAgICAgc3RhdGljIF9jcmVhdGVNb2Rl
bHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMoZGF0YSkKICAgICB7CiAgICAgICAgIHZhciB0ZXN0R3Jv
dXBzID0gZGF0YVsndGVzdEdyb3VwcyddLm1hcChmdW5jdGlvbiAocm93KSB7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2st
cGFnZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlz
aXMtdGFzay1wYWdlLmpzCmluZGV4IDVhYWYwNjhmNTRiNTJkYTM5ZWJlMGEzMjczY2Q5MjEyMTNk
NmM2OWQuLjE0ZTNhNzI5YWMwMWFlZjRmMDg5OGI2MjllNTg4NmZmNTNiN2EzMTggMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFz
ay1wYWdlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMv
YW5hbHlzaXMtdGFzay1wYWdlLmpzCkBAIC0yNCw4ICsyNCw4IEBAIGNsYXNzIEFuYWx5c2lzVGFz
a0NoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogCiAgICAgZGlkQ29uc3RydWN0U2hh
ZG93VHJlZSgpCiAgICAgewotICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlv
bignc3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCwgbmFtZSwgY29tbWl0U2V0TWFwKSA9
PiB7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCduZXdUZXN0R3JvdXAnLCBuYW1l
LCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldE1hcCk7CisgICAgICAgIHRoaXMucGFydCgnZm9y
bScpLmxpc3RlblRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50LCBuYW1l
LCBjb21taXRTZXRNYXAsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4geworICAgICAgICAgICAgdGhp
cy5kaXNwYXRjaEFjdGlvbignbmV3VGVzdEdyb3VwJywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBj
b21taXRTZXRNYXAsIG5vdGlmeU9uQ29tcGxldGlvbik7CiAgICAgICAgIH0pOwogICAgIH0KIApA
QCAtMTA2LDggKzEwNiw4IEBAIGNsYXNzIEFuYWx5c2lzVGFza1Jlc3VsdHNQYW5lIGV4dGVuZHMg
Q29tcG9uZW50QmFzZSB7CiAgICAgICAgIHJlcG9zaXRvcnlQaWNrZXIuYWRkRXZlbnRMaXN0ZW5l
cignY2hhbmdlJywgKCkgPT4gdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKSk7CiAgICAgICAgIHRoaXMu
cGFydCgnY29tbWl0LXZpZXdlcicpLnNldFNob3dSZXBvc2l0b3J5TmFtZShmYWxzZSk7CiAKLSAg
ICAgICAgdGhpcy5wYXJ0KCdmb3JtJykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChy
ZXBldGl0aW9uQ291bnQsIG5hbWUsIGNvbW1pdFNldE1hcCkgPT4gewotICAgICAgICAgICAgdGhp
cy5kaXNwYXRjaEFjdGlvbignbmV3VGVzdEdyb3VwJywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBj
b21taXRTZXRNYXApOworICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlvbign
c3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCwgbmFtZSwgY29tbWl0U2V0TWFwLCBub3Rp
ZnlPbkNvbXBsZXRpb24pID0+IHsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ25l
d1Rlc3RHcm91cCcsIG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFwLCBub3RpZnlP
bkNvbXBsZXRpb24pOwogICAgICAgICB9KTsKICAgICB9CiAKQEAgLTI2NywxNCArMjY3LDE0IEBA
IGNsYXNzIEFuYWx5c2lzVGFza1Rlc3RHcm91cFBhbmUgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsK
ICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKICAgICB7CiAgICAgICAgIHRoaXMuY29udGVu
dCgnaGlkZS1idXR0b24nKS5vbmNsaWNrID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndG9n
Z2xlVGVzdEdyb3VwVmlzaWJpbGl0eScsIHRoaXMuX2N1cnJlbnRUZXN0R3JvdXApOwotICAgICAg
ICB0aGlzLnBhcnQoJ3JldHJ5LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywg
KHJlcGV0aXRpb25Db3VudCkgPT4gewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbign
cmV0cnlUZXN0R3JvdXAnLCB0aGlzLl9jdXJyZW50VGVzdEdyb3VwLCByZXBldGl0aW9uQ291bnQp
OworICAgICAgICB0aGlzLnBhcnQoJ3JldHJ5LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRU
ZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKSA9PiB7CisgICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXRyeVRlc3RHcm91cCcsIHRoaXMuX2N1cnJl
bnRUZXN0R3JvdXAsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICAg
ICAgfSk7Ci0gICAgICAgIHRoaXMucGFydCgnYmlzZWN0LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbign
c3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCkgPT4geworICAgICAgICB0aGlzLnBhcnQo
J2Jpc2VjdC1mb3JtJykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChyZXBldGl0aW9u
Q291bnQsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4gewogICAgICAgICAgICAgY29uc3QgYmlzZWN0
aW5nQ29tbWl0U2V0ID0gdGhpcy5fYmlzZWN0aW5nQ29tbWl0U2V0QnlUZXN0R3JvdXAuZ2V0KHRo
aXMuX2N1cnJlbnRUZXN0R3JvdXApOwogICAgICAgICAgICAgY29uc3QgW29uZUNvbW1pdFNldCwg
YW5vdGhlckNvbW1pdFNldF0gPSB0aGlzLl9jdXJyZW50VGVzdEdyb3VwLnJlcXVlc3RlZENvbW1p
dFNldHMoKTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldHMgPSBbb25lQ29tbWl0U2V0LCBi
aXNlY3RpbmdDb21taXRTZXQsIGFub3RoZXJDb21taXRTZXRdOwotICAgICAgICAgICAgdGhpcy5k
aXNwYXRjaEFjdGlvbignYmlzZWN0VGVzdEdyb3VwJywgdGhpcy5fY3VycmVudFRlc3RHcm91cCwg
Y29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50KTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hB
Y3Rpb24oJ2Jpc2VjdFRlc3RHcm91cCcsIHRoaXMuX2N1cnJlbnRUZXN0R3JvdXAsIGNvbW1pdFNl
dHMsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICAgICAgfSk7CiAg
ICAgfQogCkBAIC01NDMsOCArNTQzLDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRz
IFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgIGdyb3VwUGFuZS5saXN0ZW5Ub0FjdGlvbignc2hv
d0hpZGRlblRlc3RHcm91cHMnLCAoKSA9PiB0aGlzLl9zaG93QWxsVGVzdEdyb3VwcygpKTsKICAg
ICAgICAgZ3JvdXBQYW5lLmxpc3RlblRvQWN0aW9uKCdyZW5hbWVUZXN0R3JvdXAnLCAodGVzdEdy
b3VwLCBuZXdOYW1lKSA9PiB0aGlzLl91cGRhdGVUZXN0R3JvdXBOYW1lKHRlc3RHcm91cCwgbmV3
TmFtZSkpOwogICAgICAgICBncm91cFBhbmUubGlzdGVuVG9BY3Rpb24oJ3RvZ2dsZVRlc3RHcm91
cFZpc2liaWxpdHknLCAodGVzdEdyb3VwKSA9PiB0aGlzLl9oaWRlQ3VycmVudFRlc3RHcm91cCh0
ZXN0R3JvdXApKTsKLSAgICAgICAgZ3JvdXBQYW5lLmxpc3RlblRvQWN0aW9uKCdyZXRyeVRlc3RH
cm91cCcsICh0ZXN0R3JvdXAsIHJlcGV0aXRpb25Db3VudCkgPT4gdGhpcy5fcmV0cnlDdXJyZW50
VGVzdEdyb3VwKHRlc3RHcm91cCwgcmVwZXRpdGlvbkNvdW50KSk7Ci0gICAgICAgIGdyb3VwUGFu
ZS5saXN0ZW5Ub0FjdGlvbignYmlzZWN0VGVzdEdyb3VwJywgKHRlc3RHcm91cCwgY29tbWl0U2V0
cywgcmVwZXRpdGlvbkNvdW50KSA9PiB0aGlzLl9iaXNlY3RDdXJyZW50VGVzdEdyb3VwKHRlc3RH
cm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50KSk7CisgICAgICAgIGdyb3VwUGFuZS5s
aXN0ZW5Ub0FjdGlvbigncmV0cnlUZXN0R3JvdXAnLCAodGVzdEdyb3VwLCByZXBldGl0aW9uQ291
bnQsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4gdGhpcy5fcmV0cnlDdXJyZW50VGVzdEdyb3VwKHRl
c3RHcm91cCwgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRpb24pKTsKKyAgICAgICAg
Z3JvdXBQYW5lLmxpc3RlblRvQWN0aW9uKCdiaXNlY3RUZXN0R3JvdXAnLCAodGVzdEdyb3VwLCBj
b21taXRTZXRzLCByZXBldGl0aW9uQ291bnQsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4gdGhpcy5f
YmlzZWN0Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25D
b3VudCwgbm90aWZ5T25Db21wbGV0aW9uKSk7CiAKICAgICAgICAgdGhpcy5wYXJ0KCdjYXVzZS1s
aXN0JykubGlzdGVuVG9BY3Rpb24oJ2FkZEl0ZW0nLCAocmVwb3NpdG9yeSwgcmV2aXNpb24pID0+
IHsKICAgICAgICAgICAgIHRoaXMuX2Fzc29jaWF0ZUNvbW1pdCgnY2F1c2UnLCByZXBvc2l0b3J5
LCByZXZpc2lvbik7CkBAIC04MTksMTkgKzgxOSwxOSBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdl
IGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgX3Jl
dHJ5Q3VycmVudFRlc3RHcm91cCh0ZXN0R3JvdXAsIHJlcGV0aXRpb25Db3VudCkKKyAgICBfcmV0
cnlDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNv
bXBsZXRpb24pCiAgICAgewogICAgICAgICBjb25zdCBleGlzdGluZ05hbWVzID0gKHRoaXMuX3Rl
c3RHcm91cHMgfHwgW10pLm1hcCgoZ3JvdXApID0+IGdyb3VwLm5hbWUoKSk7CiAgICAgICAgIGNv
bnN0IG5ld05hbWUgPSBDb21taXRTZXQuY3JlYXRlTmFtZVdpdGhvdXRDb2xsaXNpb24odGVzdEdy
b3VwLm5hbWUoKSwgbmV3IFNldChleGlzdGluZ05hbWVzKSk7CiAgICAgICAgIGNvbnN0IGNvbW1p
dFNldExpc3QgPSB0ZXN0R3JvdXAucmVxdWVzdGVkQ29tbWl0U2V0cygpOwogICAgICAgICBjb25z
dCBwbGF0Zm9ybSA9IHRoaXMuX3Rhc2sucGxhdGZvcm0oKSB8fCB0ZXN0R3JvdXAucGxhdGZvcm0o
KTsKLSAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5jcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlv
bih0aGlzLl90YXNrLCBwbGF0Zm9ybSwgdGVzdEdyb3VwLnRlc3QoKSwgbmV3TmFtZSwgcmVwZXRp
dGlvbkNvdW50LCBjb21taXRTZXRMaXN0KQorICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0
ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKHRoaXMuX3Rhc2ssIHBsYXRmb3JtLCB0ZXN0R3JvdXAu
dGVzdCgpLCBuZXdOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldExpc3QsIG5vdGlmeU9u
Q29tcGxldGlvbikKICAgICAgICAgICAgIC50aGVuKHRoaXMuX2RpZEZldGNoVGVzdEdyb3Vwcy5i
aW5kKHRoaXMpLCBmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQg
dG8gY3JlYXRlIGEgbmV3IHRlc3QgZ3JvdXA6ICcgKyBlcnJvcik7CiAgICAgICAgIH0pOwogICAg
IH0KIAotICAgIGFzeW5jIF9iaXNlY3RDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgY29tbWl0
U2V0cywgcmVwZXRpdGlvbkNvdW50KQorICAgIGFzeW5jIF9iaXNlY3RDdXJyZW50VGVzdEdyb3Vw
KHRlc3RHcm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRp
b24pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0ZXN0R3JvdXAudGFzaygpKTsKICAg
ICAgICAgY29uc3QgZXhpc3RpbmdUZXN0R3JvdXBOYW1lcyA9IG5ldyBTZXQoKHRoaXMuX3Rlc3RH
cm91cHMgfHwgW10pLm1hcCgodGVzdEdyb3VwKSA9PiB0ZXN0R3JvdXAubmFtZSgpKSk7CkBAIC04
NDEsNyArODQxLDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVh
ZGluZyB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50Q29tbWl0U2V0ID0gY29tbWl0U2V0c1tp
XTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cE5hbWUgPSBDb21taXRTZXQuY3JlYXRlTmFt
ZVdpdGhvdXRDb2xsaXNpb24oQ29tbWl0U2V0LmRpZmYocHJldmlvdXNDb21taXRTZXQsIGN1cnJl
bnRDb21taXRTZXQpLCBleGlzdGluZ1Rlc3RHcm91cE5hbWVzKTsKICAgICAgICAgICAgIHRyeSB7
Ci0gICAgICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5jcmVh
dGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0ZXN0R3JvdXAudGFzaygpLCB0ZXN0R3JvdXBOYW1lLCBy
ZXBldGl0aW9uQ291bnQsIFtwcmV2aW91c0NvbW1pdFNldCwgY3VycmVudENvbW1pdFNldF0pOwor
ICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuY3JlYXRl
QW5kUmVmZXRjaFRlc3RHcm91cHModGVzdEdyb3VwLnRhc2soKSwgdGVzdEdyb3VwTmFtZSwgcmVw
ZXRpdGlvbkNvdW50LCBbcHJldmlvdXNDb21taXRTZXQsIGN1cnJlbnRDb21taXRTZXRdLCBub3Rp
ZnlPbkNvbXBsZXRpb24pOwogICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2RpZEZldGNoVGVz
dEdyb3Vwcyh0ZXN0R3JvdXBzKTsKICAgICAgICAgICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAg
ICAgICAgICAgICBhbGVydCgnRmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyB0ZXN0IGdyb3VwOiAnICsg
ZXJyb3IpOwpAQCAtODUwLDcgKzg1MCw3IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5k
cyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICB9CiAgICAgfQogCi0gICAgX2NyZWF0ZVRlc3RH
cm91cEFmdGVyVmVyaWZ5aW5nQ29tbWl0U2V0TGlzdCh0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9u
Q291bnQsIGNvbW1pdFNldE1hcCkKKyAgICBfY3JlYXRlVGVzdEdyb3VwQWZ0ZXJWZXJpZnlpbmdD
b21taXRTZXRMaXN0KHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFw
LCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewogICAgICAgICBpZiAodGhpcy5faGFzRHVwbGlj
YXRlVGVzdEdyb3VwTmFtZSh0ZXN0R3JvdXBOYW1lKSkgewogICAgICAgICAgICAgYWxlcnQoYFRo
ZXJlIGlzIGFscmVhZHkgYSB0ZXN0IGdyb3VwIG5hbWVkICIke3Rlc3RHcm91cE5hbWV9ImApOwpA
QCAtODc2LDEzICs4NzYsMTMgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VX
aXRoSGVhZGluZyB7CiAgICAgICAgIGZvciAobGV0IGxhYmVsIGluIGNvbW1pdFNldE1hcCkKICAg
ICAgICAgICAgIGNvbW1pdFNldHMucHVzaChjb21taXRTZXRNYXBbbGFiZWxdKTsKIAotICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRoaXMuX3Rhc2ss
IHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cykKKyAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5jcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0aGlzLl90YXNrLCB0ZXN0
R3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlv
bikKICAgICAgICAgICAgIC50aGVuKHRoaXMuX2RpZEZldGNoVGVzdEdyb3Vwcy5iaW5kKHRoaXMp
LCBmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gY3JlYXRl
IGEgbmV3IHRlc3QgZ3JvdXA6ICcgKyBlcnJvcik7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAg
IF9jcmVhdGVDdXN0b21UZXN0R3JvdXAocmVwZXRpdGlvbkNvdW50LCB0ZXN0R3JvdXBOYW1lLCBj
b21taXRTZXRzLCBwbGF0Zm9ybSwgdGVzdCkKKyAgICBfY3JlYXRlQ3VzdG9tVGVzdEdyb3VwKHJl
cGV0aXRpb25Db3VudCwgdGVzdEdyb3VwTmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRlc3Qs
IG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X3Rhc2suaXNDdXN0b20oKSk7CiAgICAgICAgIGlmICh0aGlzLl9oYXNEdXBsaWNhdGVUZXN0R3Jv
dXBOYW1lKHRlc3RHcm91cE5hbWUpKSB7CkBAIC04OTAsNyArODkwLDcgQEAgY2xhc3MgQW5hbHlz
aXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBUZXN0R3JvdXAuY3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3Vy
YXRpb24odGhpcy5fdGFzaywgcGxhdGZvcm0sIHRlc3QsIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRp
b25Db3VudCwgY29tbWl0U2V0cykKKyAgICAgICAgVGVzdEdyb3VwLmNyZWF0ZVdpdGhDdXN0b21D
b25maWd1cmF0aW9uKHRoaXMuX3Rhc2ssIHBsYXRmb3JtLCB0ZXN0LCB0ZXN0R3JvdXBOYW1lLCBy
ZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICAgICAg
ICAgIC50aGVuKHRoaXMuX2RpZEZldGNoVGVzdEdyb3Vwcy5iaW5kKHRoaXMpLCBmdW5jdGlvbiAo
ZXJyb3IpIHsKICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IHRlc3Qg
Z3JvdXA6ICcgKyBlcnJvcik7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLmpzCmluZGV4IDhjZDdhYTAw
NDdmN2FkZmNjZDZiZmY0MDRmODc0Y2UxMzdmZTMwNzAuLmNkNzQ4ZGViNDljZWUwOThiM2Y0OTZj
YWM4OGQzNTIzZjczZmVmMzAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMKQEAgLTExOSw3ICsxMTksOCBAQCBjbGFz
cyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgfSk7CiAgICAgICAg
IGNvbnN0IGNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2JveCA9IHRoaXMuY29udGVudCgnY3JlYXRl
LXdpdGgtdGVzdC1ncm91cCcpOwogICAgICAgICBjb25zdCByZXBldGl0aW9uQ291bnQgPSB0aGlz
LmNvbnRlbnQoJ2NvbmZpcm0tcmVwZXRpdGlvbicpOwotICAgICAgICBjcmVhdGVXaXRoVGVzdEdy
b3VwQ2hlY2tib3gub25jaGFuZ2UgPSAoKSA9PiByZXBldGl0aW9uQ291bnQuZGlzYWJsZWQgPSAh
Y3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94LmNoZWNrZWQ7CisgICAgICAgIGNvbnN0IG5vdGlm
eU9uQ29tcGxldGlvbiA9IHRoaXMuY29udGVudCgnbm90aWZ5LW9uLWNvbXBsZXRpb24nKTsKKyAg
ICAgICAgY3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94Lm9uY2hhbmdlID0gKCkgPT4gcmVwZXRp
dGlvbkNvdW50LmRpc2FibGVkID0gbm90aWZ5T25Db21wbGV0aW9uLmRpc2FibGVkID0gIWNyZWF0
ZVdpdGhUZXN0R3JvdXBDaGVja2JveC5jaGVja2VkOwogICAgIH0KIAogICAgIHNlcmlhbGl6ZVN0
YXRlKCkKQEAgLTIzNywxMCArMjM4LDExIEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0
UGFuZUJhc2UgewogICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5jb250ZW50KCd0YXNrLW5hbWUn
KS52YWx1ZTsKICAgICAgICAgY29uc3QgY3JlYXRlV2l0aFRlc3RHcm91cCA9IHRoaXMuY29udGVu
dCgnY3JlYXRlLXdpdGgtdGVzdC1ncm91cCcpLmNoZWNrZWQ7CiAgICAgICAgIGNvbnN0IHJlcGV0
aXRpb25Db3VudCA9IHRoaXMuY29udGVudCgnY29uZmlybS1yZXBldGl0aW9uJykudmFsdWU7Cisg
ICAgICAgIGNvbnN0IG5vdGlmeU9uQ29tcGxldGlvbiA9IHRoaXMuY29udGVudCgnbm90aWZ5LW9u
LWNvbXBsZXRpb24nKS5jaGVja2VkOwogCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBjb25z
dCBhbmFseXNpc1Rhc2sgPSBhd2FpdCAoY3JlYXRlV2l0aFRlc3RHcm91cCA/Ci0gICAgICAgICAg
ICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0Nv
bmZpcm0nLCByZXBldGl0aW9uQ291bnQpIDogQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFy
dFBvaW50LCBlbmRQb2ludCkpOworICAgICAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUo
bmFtZSwgc3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywgcmVwZXRpdGlvbkNvdW50LCBu
b3RpZnlPbkNvbXBsZXRpb24pIDogQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFydFBvaW50
LCBlbmRQb2ludCkpOwogICAgICAgICAgICAgbmV3V2luZG93LmxvY2F0aW9uLmhyZWYgPSByb3V0
ZXIudXJsKCdhbmFseXNpcy90YXNrLycgKyBhbmFseXNpc1Rhc2suaWQoKSk7CiAgICAgICAgICAg
ICB0aGlzLmZldGNoQW5hbHlzaXNUYXNrcyh0cnVlKTsKICAgICAgICAgfSBjYXRjaChlcnJvcikg
ewpAQCAtNTgzLDYgKzU4NSw3IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJh
c2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj4xMDwvb3B0
aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGFiZWw+aXRlcmF0aW9uczwvbGFiZWw+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im5vdGlm
eS1vbi1jb21wbGV0aW9uIiBjaGVja2VkPiBOb3RpZnkgb24gY29tcGxldGlvbjwvbGFiZWw+CiAg
ICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+
CiAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY2hhcnQtcGFuZS1maWx0ZXJpbmctb3B0
aW9ucyBwb3BvdmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFn
ZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFu
YWx5c2lzLXRhc2stcGFnZS5qcwppbmRleCBhOWYwODkwYzE5YmVmYjYzMGJmMDdkYmJiNWU1Y2Uz
ZWUyYjM2NWFjLi4zMDFmZDJhMjkwNjUxZDUxMjhjMzUyM2FmNDk4MjBmMjAzYmM2NmEzIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NyZWF0ZS1h
bmFseXNpcy10YXNrLXBhZ2UuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9wYWdlcy9jcmVhdGUtYW5hbHlzaXMtdGFzay1wYWdlLmpzCkBAIC0yMiw5ICsyMiw5IEBA
IGNsYXNzIENyZWF0ZUFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewog
ICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRUZXN0aW5nJywg
dGhpcy5fY3JlYXRlQW5hbHlzaXNUYXNrV2l0aEdyb3VwLmJpbmQodGhpcykpOwogICAgIH0KIAot
ICAgIF9jcmVhdGVBbmFseXNpc1Rhc2tXaXRoR3JvdXAocmVwZXRpdGlvbkNvdW50LCB0ZXN0R3Jv
dXBOYW1lLCBjb21taXRTZXRzLCBwbGF0Zm9ybSwgdGVzdCwgdGFza05hbWUpCisgICAgX2NyZWF0
ZUFuYWx5c2lzVGFza1dpdGhHcm91cChyZXBldGl0aW9uQ291bnQsIHRlc3RHcm91cE5hbWUsIGNv
bW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0LCB0YXNrTmFtZSwgbm90aWZ5T25Db21wbGV0aW9uKQog
ICAgIHsKLSAgICAgICAgVGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9y
bSwgdGVzdCwgdGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzKS50aGVu
KCh0YXNrKSA9PiB7CisgICAgICAgIFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzayh0YXNrTmFtZSwg
cGxhdGZvcm0sIHRlc3QsIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0
cywgbm90aWZ5T25Db21wbGV0aW9uKS50aGVuKCh0YXNrKSA9PiB7CiAgICAgICAgICAgICBjb25z
dCB1cmwgPSB0aGlzLnJvdXRlcigpLnVybChgYW5hbHlzaXMvdGFzay8ke3Rhc2suaWQoKX1gKTsK
ICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLnJvdXRlcigpLnVybChgYW5hbHlzaXMv
dGFzay8ke3Rhc2suaWQoKX1gKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM2YWMxZjQxNDg3MGRlYzNlNzIyYWVjNzYyOTBlMmJhNWY1Y2I1ZjkK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS10ZXN0LWdyb3Vwcy5qcwpAQCAtMCwwICsxLDg4IEBACisndXNlIHN0cmljdCc7CisKK2Nv
bnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOworY29uc3QgTW9ja0RhdGEgPSByZXF1aXJl
KCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKK2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJl
KCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgcHJlcGFyZVNlcnZlclRlc3Qg
PSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2
ZXJUZXN0OworCitkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKKyAg
ICBwcmVwYXJlU2VydmVyVGVzdCh0aGlzKTsKKworICAgIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3Jv
dXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nLCAoKSA9PiB7CisKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBnaXZlIGFuIGVtcHR5IGxpc3QgaWYgdGhlcmUgaXMgbm90IGV4aXN0aW5nIHRlc3QgZ3JvdXAg
YXQgYWxsJywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1m
b3Itbm90aWZpY2F0aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0
dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91
cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVl
c3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBb
XSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbm90IGluY2x1ZGUgYSB0ZXN0
IGdyb3VwIHdpdGggImNhbmNlbGVkIiBzdGF0ZSBpbiBhdCBsZWFzdCBvbmUgYnVpbGQgcmVxdWVz
dCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRh
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBs
ZXRlZCcsICdjYW5jZWxlZCddKTsKKyAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9y
LW5vdGlmaWNhdGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVz
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10p
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGxpc3QgYWxsIHRlc3QgZ3JvdXBz
IHdpdGggcGVuZGluZyBub3RpZmljYXRpb24nLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBh
d2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxl
dGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOworICAgICAgICAg
ICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBj
b25zdCB0ZXN0R3JvdXAgPSBjb250ZW50LnRlc3RHcm91cHNbMF07CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmlkLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC50YXNrLCA1MDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5u
YW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLmF1dGhvciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmhp
ZGRlbiwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uZWVkc05v
dGlmaWNhdGlvbiwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnBs
YXRmb3JtLCA2NSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzLCBbJzcwMCcsJzcwMScsICc3MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScs
ICc0MDInXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgaGlk
ZGVuIHRlc3QgZ3JvdXAnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYXRhYmFz
ZSA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFk
ZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVk
JywgJ2NvbXBsZXRlZCddKTsKKyAgICAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERB
VEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VUIHRlc3Rncm91cF9oaWRkZW4gPSBUUlVFIFdIRVJF
IHRlc3Rncm91cF9pZCA9IDYwMCcpOworICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1m
b3Itbm90aWZpY2F0aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0
dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91
cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVl
c3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBb
XSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgdGVzdCBncm91
cHMgdGhhdCBoYXZlIGF1dGhvciBub3RpZmllZCBiZWZvcmUnLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICBjb25zdCBkYXRhYmFzZSA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAg
ICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRlZCcsICdj
b21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKKyAgICAgICAgICAgIGF3YWl0
IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VUIHRlc3Rncm91
cF9uZWVkc19ub3RpZmljYXRpb24gPSBGQUxTRSBXSEVSRSB0ZXN0Z3JvdXBfaWQgPSA2MDAnKTsK
KyAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IGEgdGVzdCBncm91cCB0aGF0IGhhcyBzb21lIGluY29t
cGxldGVkIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3Qg
ZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBhd2FpdCBNb2Nr
RGF0YS5hZGRNb2NrRGF0YShkYXRhYmFzZSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2Nv
bXBsZXRlZCcsICdydW5uaW5nJ10pOworICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1m
b3Itbm90aWZpY2F0aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0
dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91
cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVl
c3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBb
XSk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2
aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRh
c2stdGVzdHMuanMKaW5kZXggYzdhNmQxNzcxZjliNDJjNGEyZmQwN2Y2NzJhMjNkYTI0ZGM3Y2Q4
OS4uMjA2ZGJmNmNjOTc3M2ExYjRkZGJiZWI3Yzk3MDhlZWRlY2ViYWQ0ZiAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVh
dGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpz
CkBAIC02LDYgKzYsNyBAQCBsZXQgTW9ja0RhdGEgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2Nr
LWRhdGEuanMnKTsKIGxldCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1z
ZXJ2ZXIuanMnKTsKIGNvbnN0IGFkZEJ1aWxkZXJGb3JSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291
cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFkZEJ1aWxkZXJGb3JSZXBvcnQ7CiBjb25zdCBw
cmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25z
LmpzJykucHJlcGFyZVNlcnZlclRlc3Q7Citjb25zdCBhc3NlcnRUaHJvd3MgPSByZXF1aXJlKCcu
L3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFzc2VydFRocm93czsKIAogY29uc3Qg
cmVwb3J0V2l0aFJldmlzaW9uID0gW3sKICAgICAiYnVpbGROdW1iZXIiOiAiMTI0IiwKQEAgLTM1
MywxNyArMzU0LDEwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGNvbnN0IG9u
ZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAgICAg
ICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5
MTYyMyd9fTsKIAotICAgICAgICBsZXQgcmFpc2VFeGNlcHRpb24gPSBmYWxzZTsKLQotICAgICAg
ICB0cnkgewotICAgICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDEs
Ci0gICAgICAgICAgICAgICAgcmV2aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJS
ZXZpc2lvblNldF0sCi0gICAgICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCdd
LCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7Ci0gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9y
VGFzaycpOwotICAgICAgICAgICAgcmFpc2VFeGNlcHRpb24gPSB0cnVlOwotICAgICAgICB9Ci0g
ICAgICAgIGFzc2VydC5vayhyYWlzZUV4Y2VwdGlvbik7CisgICAgICAgIGF3YWl0IGFzc2VydFRo
cm93cygnVHJpZ2dlcmFibGVOb3RGb3VuZEZvclRhc2snLCAoKSA9PgorICAgICAgICAgICAgUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2Nv
bmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDEsCisgICAgICAgICAgICAgICAgcmV2aXNpb25TZXRz
OiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJSZXZpc2lvblNldF0sIG5lZWRzTm90aWZpY2F0aW9u
OiB0cnVlLAorICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5k
UnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3Jl
YXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCBubyB0ZXN0IGdyb3VwIHdoZW4gcmVwZXRpdGlvbiBj
b3VudCBpcyAwJywgYXN5bmMgKCkgPT4gewpAQCAtNDM5LDcgKzQzMyw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVn
ZWQgYXBpJywgZnVuCiAKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdjb25maXJtJywg
cmVwZXRpdGlvbkNvdW50OiAxLAogICAgICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0n
LCByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlzaW9uU2V0XSwKLSAg
ICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sx
XVsnaWQnXX0pOworICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRS
dW46IHRlc3RSdW5zWzFdWydpZCddLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogCiAgICAg
ICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rh
c2tJZCddKTsKICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwpA
QCAtNDU2LDYgKzQ1MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9
IHRlc3RHcm91cHNbMF07CiAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAn
Q29uZmlybScpOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCksIHRydWUpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKTsKICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3Ro
LCAyKTsKIApAQCAtNTEzLDE3ICs1MDgsMTAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAg
ICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkx
NjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXTog
e3JldmlzaW9uOiAnMTkxNjIzJ319OwogCi0gICAgICAgIGxldCByYWlzZUV4Y2VwdGlvbiA9IGZh
bHNlOwotCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0
aXRpb25Db3VudDogMSwKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdTbGF2ZU5vdEZvdW5k
JywgKCkgPT4KKyAgICAgICAgICAgIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1h
bmFseXNpcy10YXNrJywge25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAogICAg
ICAgICAgICAgICAgIHJldmlzaW9uU2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90aGVyUmV2aXNp
b25TZXRdLAotICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5k
UnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwotICAgICAgICB9IGNhdGNoIChlcnJvcikgewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnU2xhdmVOb3RGb3VuZCcpOwotICAgICAgICAg
ICAgcmFpc2VFeGNlcHRpb24gPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydC5vayhy
YWlzZUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydp
ZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSkpOwogCiAgICAgICAgIGNvbnN0IGFsbEFu
YWx5c2lzVGFza3MgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdhbmFseXNpc190YXNrcycpOwogICAg
ICAgICBhc3NlcnQub2soIWFsbEFuYWx5c2lzVGFza3MubGVuZ3RoKTsKQEAgLTU2Nyw3ICs1NTUs
ODcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRo
IG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKIAogICAgICAgICBjb25zdCBjb250ZW50ID0g
YXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7
bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDEsCiAgICAgICAgICAgICB0ZXN0R3Jv
dXBOYW1lOiAnQ29uZmlybScsIHJldmlzaW9uU2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90aGVy
UmV2aXNpb25TZXRdLAotICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBl
bmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7CisgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1
bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sIG5lZWRzTm90aWZpY2F0aW9u
OiB0cnVlfSk7CisKKyAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRj
aEJ5SWQoY29udGVudFsndGFza0lkJ10pOworICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1l
KCksICdjb25maXJtJyk7CisgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOworICAg
ICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7CisgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNr
LmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBb
XSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0n
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0
ZXN0MScpOworCisgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKKworICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxl
SWQpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgp
LmlkKCksIHRyaWdnZXJhYmxlSWQpOworCisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKworICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRm
b3JtKCkpOworCisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lz
VGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOworCisgICAgICAgIGFzc2VydC5vayghYnVp
bGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNU
ZXN0KCkpOworICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5pc1Rlc3QoKSk7CisK
KyAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNl
dCgpOworICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNv
bW1pdFNldCgpOworICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5m
aW5kQnlJZCh3ZWJraXRJZCk7CisgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5j
b21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjIn
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0
b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKKyAgICB9KTsKKwor
ICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIGFu
ZCByZXNwZWN0IHRoZSAibmVlZHNOb3RpZmljYXRpb24iIGZsYWcgaW4gdGhlIGh0dHAgcmVxdWVz
dCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3Qgd2Via2l0SWQgPSAxOworICAgICAgICBj
b25zdCBwbGF0Zm9ybUlkID0gMTsKKyAgICAgICAgY29uc3QgdGVzdDFJZCA9IDI7CisgICAgICAg
IGNvbnN0IHRyaWdnZXJhYmxlSWQgPSAxMjM0OworCisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Rlc3RzJywge2lkOiAx
LCBuYW1lOiAnU3VpdGUnfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndGVzdHMnLCB7aWQ6
IHRlc3QxSWQsIG5hbWU6ICd0ZXN0MScsIHBhcmVudDogMX0pOworICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ3JlcG9zaXRvcmllcycsIHtpZDogd2Via2l0SWQsIG5hbWU6ICdXZWJLaXQnfSk7Cisg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgncGxhdGZvcm1zJywge2lkOiBwbGF0Zm9ybUlkLCBuYW1l
OiAnc29tZSBwbGF0Zm9ybSd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90cmln
Z2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOworICAgICAg
ICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lkOiAy
MzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOwor
ICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtyZXBv
c2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0MUlkLCBwbGF0Zm9ybTog
cGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQg
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOworCisgICAgICAgIGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhSZXZpc2lvbik7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAg
ICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOworCisgICAgICAgIGxldCB0ZXN0MSA9IFRlc3QuZmlu
ZEJ5SWQodGVzdDFJZCk7CisgICAgICAgIGxldCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5k
QnlJZChwbGF0Zm9ybUlkKTsKKyAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2Vs
ZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNz
KClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CisgICAgICAgIGNvbnN0
IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29u
ZmlnUm93WydpZCddfSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIp
OworCisgICAgICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lv
bjogJzE5MTYyMid9fTsKKyAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJr
aXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMyd9fTsKKworICAgICAgICBjb25zdCBjb250ZW50ID0g
YXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7
bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDEsCisgICAgICAgICAgICB0ZXN0R3Jv
dXBOYW1lOiAnQ29uZmlybScsIHJldmlzaW9uU2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90aGVy
UmV2aXNpb25TZXRdLAorICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBl
bmRSdW46IHRlc3RSdW5zWzFdWydpZCddLCBuZWVkc05vdGlmaWNhdGlvbjogZmFsc2V9KTsKIAog
ICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50
Wyd0YXNrSWQnXSk7CiAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0n
KTsKQEAgLTU4NCw2ICs2NTIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1h
bmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUo
KSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlm
aWNhdGlvbigpLCBmYWxzZSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpOwogICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVz
dC1ncm91cC10ZXN0cy5qcwppbmRleCAyZjNiMjk3NjhhNjI2ZDRlMTZhZmU5MzNlZDgyMTk1ZmZj
Yzc4MDlhLi4zODQ2NmYxY2E0ZTNjMTdmMGRmOTE0ZmUxOTkzNTNlZjM3YjY0ZWFkIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMK
QEAgLTMzOSw5ICszMzksOSBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgIGl0KCdzaG91bGQgcmV0dXJuICJEdXBsaWNhdGVU
ZXN0R3JvdXBOYW1lIiB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSB0ZXN0IGdyb3VwIG9mIHRoZSBz
YW1lIG5hbWUnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0
ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJZCkgPT4gewogICAgICAgICAgICAgY29uc3Qg
Y29tbWl0U2V0cyA9IHsnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ119OwotICAgICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywg
e25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzfSkudGhlbigoY29udGVudCkg
PT4geworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzLCBu
ZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQoY29udGVudFsndGVzdEdyb3VwSWQnXSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6
ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzfSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6
ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1
ZX0pOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJv
cikgPT4gewpAQCAtMzkxLDcgKzM5MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpT
QyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5h
bWUoKSA9PSAnSmF2YVNjcmlwdENvcmUnICYmIHJlcG9zaXRvcnkub3duZXJJZCgpKVswXTsKICAg
ICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9u
OiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtvd25lZEpT
Qy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTYxNjEnLCBvd25lclJldmlzaW9uOiAnMTkx
NjIyJ319LAogICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2
MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW293bmVkSlNDLmlkKCld
OiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1d
OwotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10
ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6
IDEsIHJldmlzaW9uU2V0c30pOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lk
LCByZXBldGl0aW9uQ291bnQ6IDEsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNl
dHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGdyb3VwSWQgPSBj
b250ZW50Wyd0ZXN0R3JvdXBJZCddOwpAQCAtNDAxLDYgKzQwMSw3IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAuaWQoKSwgZ3JvdXBJZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJl
cXVlc3RzKCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsK
ICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwpAQCAtNDM3LDcgKzQz
OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBqc2MgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRl
cigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ0phdmFTY3JpcHRDb3JlJyAm
JiByZXBvc2l0b3J5Lm93bmVySWQoKSlbMF07CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNl
dHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06
IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbanNjLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2Mt
NjE2MScsIG93bmVyUmV2aXNpb246ICcxOTE2MjInfX0sCiAgICAgICAgICAgICAgICAge1ttYWNv
cy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293
bmVkLWpzYy05MTkxJywgb3duZXJSZXZpc2lvbjogJzE5MjczNid9fV07Ci0gICAgICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFt
ZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRz
fSk7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3Vu
dDogMSwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91
cElkJ107CkBAIC00NDcsNiArNDQ4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91
cElkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwg
MSk7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNz
ZXJ0KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CkBAIC00NzYsNyArNDc4LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICBp
dCgnc2hvdWxkIGNyZWF0ZSBhIHRlc3QgZ3JvdXAgZnJvbSBjb21taXRTZXRzIHdpdGggdGhlIHJl
cGV0aXRpb24gY291bnQgb2Ygb25lIHdoZW4gcmVwZXRpdGlvbkNvdW50IGlzIG9taXR0ZWQnLCAo
KSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUg
dGFzaycpLnRoZW4oKHRhc2tJZCkgPT4gewogICAgICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJ
ZDsKLSAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
dGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydt
YWNPUyc6IFsnMTVBMjg0JywgJzE1QTI4NCddLCAnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIz
J119fSkudGhlbigoY29udGVudCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazog
dGFza0lkLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgY29tbWl0U2V0czogeydtYWNPUyc6IFsn
MTVBMjg0JywgJzE1QTI4NCddLCAnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ119fSkudGhl
bigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRl
bnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKQEAgLTQ4NCw2ICs0ODYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdy
b3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAyKTsKIApAQCAtNTEyLDcgKzUxNSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBh
ZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJZCkgPT4g
ewogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0
YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMg
PSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06
IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07Ci0gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7bmFt
ZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c307CisgICAgICAgICAgICBjb25z
dCBwYXJhbXMgPSB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIG5lZWRzTm90aWZpY2F0aW9u
OiB0cnVlLCByZXZpc2lvblNldHN9OwogICAgICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsK
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHBhcmFtcykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGlu
c2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CkBAIC01MjIsNiArNTI1LDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKQEAgLTU0
NSw3ICs1NDksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVU
YXNrKCdzb21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsKICAgICAgICAgICAgIGxldCBpbnNl
cnRlZEdyb3VwSWQ7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0
aXRpb25Db3VudDogMiwKLSAgICAgICAgICAgICAgICBjb21taXRTZXRzOiB7J1dlYktpdCc6IFsn
MTkxNjIyJywgJzE5MTYyMyddLCAnbWFjT1MnOiBbJzE1QTI4NCcsICcxNUEyODQnXX19KS50aGVu
KChjb250ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgY29tbWl0U2V0czogeydXZWJLaXQnOiBb
JzE5MTYyMicsICcxOTE2MjMnXSwgJ21hY09TJzogWycxNUEyODQnLCAnMTVBMjg0J119LCBuZWVk
c05vdGlmaWNhdGlvbjogdHJ1ZX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAg
ICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7CkBAIC01NTMsNiArNTU3LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAg
Y29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJl
cG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKQEAgLTU4OSw3ICs1OTQsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm1hY29zUmVw
b3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbbWFjb3Mu
aWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcy
Y2VkYSd9fSwKICAgICAgICAgICAgICAgICB7W21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEy
ODQnfSwgW3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnNTQ3MWEnfX1dOwotICAgICAgICAgICAg
Y29uc3QgcGFyYW1zID0ge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291
bnQ6IDIsIHJldmlzaW9uU2V0c307CisgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7bmFtZTog
J3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgbmVlZHNOb3RpZmljYXRp
b246IHRydWUsIHJldmlzaW9uU2V0c307CiAgICAgICAgICAgICBsZXQgaW5zZXJ0ZWRHcm91cElk
OwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10
ZXN0LWdyb3VwJywgcGFyYW1zKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAg
aW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKQEAgLTU5OSw2ICs2MDQs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIp
OworICAgICAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsK
ICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIApAQCAt
NjMwLDcgKzYzNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCByZXZp
c2lvblNldHMgPSBbe1ttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFt3ZWJraXQu
aWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5p
ZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKLSAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9
IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCByZXZpc2lv
blNldHN9OworICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge25hbWU6ICd0ZXN0JywgdGFzazog
dGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZp
c2lvblNldHN9OwogICAgICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsKICAgICAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBh
cmFtcykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJ
ZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CkBAIC02NDAsNiArNjQ2LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKQEAgLTY3OSw3ICs2ODYsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZp
bGUnXTsKICAgICAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQo
KV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4
NCd9fSwKICAgICAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5
MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCAnY3VzdG9tUm9vdHMn
OiBbdXBsb2FkZWRGaWxlWydpZCddXX1dOwotICAgICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRh
c2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNldHN9KS50aGVuKChjb250
ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBl
dGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9
IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgfSk7CkBA
IC02ODgsNiArNjk1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3Rp
ZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNCk7CiAKQEAgLTcyNyw3ICs3MzUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxl
ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbihyYXdGaWxlLmlkLCByYXdGaWxlKTsKICAg
ICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9u
OiAnMTkxNjIyJywgcGF0Y2g6IHVwbG9hZGVkRmlsZS5pZCgpfSwgW21hY29zLmlkKCldOiB7cmV2
aXNpb246ICcxNUEyODQnfX0sCiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZp
c2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9fV07Ci0g
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwg
cmV2aXNpb25TZXRzfSk7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJl
cGV0aXRpb25Db3VudDogMiwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c30p
OwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBpbnNlcnRlZEdy
b3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTczNiw2ICs3NDQsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0
Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKQEAgLTc5MSw3ICs4MDAsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAganNjID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9z
aXRvcnkubmFtZSgpID09ICdKYXZhU2NyaXB0Q29yZScpWzBdOwogICAgICAgICAgICAgY29uc3Qg
cmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21h
Y29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX0sCiAgICAgICAgICAgICAgICAge1t3ZWJr
aXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MjczNid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjog
JzE1QTI4NCd9LCBbanNjLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVy
UmV2aXNpb246ICcxOTI3MzYnfX1dOwotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFz
a0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0c30pOworICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6
ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0
aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4g
ewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7
CkBAIC04MDAsNiArODA5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdy
b3VwSWQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9j
a0RhdGEuc29tZVRlc3RJZCgpKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxh
dGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwog
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CkBAIC04
NjUsNyArODc1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGpzYyA9IFJlcG9zaXRvcnkuYWxsKCkuZmls
dGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnSmF2YVNjcmlwdENvcmUn
KVswXTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXTog
e3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30s
IFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgb3duZXJSZXZpc2lvbjog
JzE5MTYyMid9fSwKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAn
MTkyNzM2J30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtqc2MuaWQoKV06
IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3duZXJSZXZpc2lvbjogJzE5MjczNid9fV07
Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDog
MiwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQs
IHJlcGV0aXRpb25Db3VudDogMiwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0
c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBpbnNlcnRl
ZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTg3NCw2ICs4ODQsNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5k
QnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKQEAgLTk0Nyw3ICs5NTgsNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgdXBsb2FkZWRGaWxlID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbihyYXdG
aWxlLmlkLCByYXdGaWxlKTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dl
YmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3JldmlzaW9u
OiAnMTVBMjg0J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgb3du
ZXJSZXZpc2lvbjogJzE5MTYyMid9fSwKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgpXTog
e3JldmlzaW9uOiAnMTkyNzM2JywgcGF0Y2g6IHVwbG9hZGVkRmlsZS5pZCgpfSwgW21hY29zLmlk
KCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQt
anNjLTkxOTEnLCBvd25lclJldmlzaW9uOiAnMTkyNzM2J319XTsKLSAgICAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNldHN9KTsK
KyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAy
LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRb
J3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwpAQCAtOTU2LDYgKzk2Nyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25z
dCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
aWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNO
b3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBU
ZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQ
bGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRS
ZXF1ZXN0cygpOwpAQCAtMTA0MCw3ICsxMDUyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVk
RmlsZSA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24ocmF3RmlsZS5pZCwgcmF3RmlsZSk7
CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1tqc2MuaWQoKV06IHtyZXZpc2lv
bjogJ2pzYy02MTYxJ30sIFt3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFj
b3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbb3duZWRKU0MuaWQoKV06IHtyZXZpc2lv
bjogJ293bmVkLWpzYy02MTYxJywgb3duZXJSZXZpc2lvbjogJzE5MTYyMid9fSwKICAgICAgICAg
ICAgICAgICB7W2pzYy5pZCgpXToge3JldmlzaW9uOiAnanNjLTkxOTEnfSwgW3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkyNzM2JywgcGF0Y2g6IHVwbG9hZGVkRmlsZS5pZCgpfSwgW21hY29z
LmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW293bmVkSlNDLmlkKCldOiB7cmV2aXNpb246
ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1dOwotICAgICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywg
e25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9u
U2V0c30pOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9u
Q291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNldHN9KTsKICAgICAg
ICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0g
Y29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xMDUwLDYgKzEwNjIsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21l
VGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5uZWVkc05vdGlmaWNhdGlv
bigpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9y
bS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwpAQCAtMTEzNiw3ICsxMTQ5LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHVwbG9hZGVkRmlsZSA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24ocmF3Rmls
ZS5pZCwgcmF3RmlsZSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1ttYWNv
cy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J319LAogICAgICAgICAgICAgICAgIHtbd2Via2l0
LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInLCBwYXRjaDogdXBsb2FkZWRGaWxlLmlkKCl9LCBb
bWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9fV07Ci0gICAgICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rl
c3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfSk7Cisg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwg
bmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVu
KChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0
ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKQEAgLTExNDUsNiArMTE1OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25z
dCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
aWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNO
b3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBU
ZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQ
bGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRS
ZXF1ZXN0cygpOwpAQCAtMTE5OSw3ICsxMjEzLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVk
RmlsZSA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24ocmF3RmlsZS5pZCwgcmF3RmlsZSk7
CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZp
c2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCcsIHBhdGNo
OiB1cGxvYWRlZEZpbGUuaWQoKX19LAogICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7
cmV2aXNpb246ICcxOTI3MzYnfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX1d
OwotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10
ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6
IDIsIHJldmlzaW9uU2V0c30pOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lk
LCByZXBldGl0aW9uQ291bnQ6IDIsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXZpc2lvblNl
dHN9KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2Us
ICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKQEAg
LTEyMDcsMTQgKzEyMjEsNDkgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKLSAgICBpdCgn
c2hvdWxkIGNyZWF0ZSBhIHRlc3QgZ3JvdXAgd2l0aCBhbiBhbmFseXNpcyB0YXNrJywgKCkgPT4g
eworICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIGFuIGFuYWx5c2lzIHRh
c2sgd2l0aCBuZWVkcy1ub3RpZmljYXRpb24gZmxhZyBzZXQnLCAoKSA9PiB7CisgICAgICAgIGxl
dCBpbnNlcnRlZEdyb3VwSWQ7CisgICAgICAgIGxldCB3ZWJraXQ7CisgICAgICAgIHJldHVybiBh
ZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKCkgPT4geworICAg
ICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+
IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKKyAgICAgICAgICAgIGNvbnN0IHJl
dmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dl
YmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKKyAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCisgICAgICAgICAg
ICAgICAge25hbWU6ICd0ZXN0JywgdGFza05hbWU6ICdvdGhlciB0YXNrJywgcGxhdGZvcm06IE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgbmVl
ZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlzaW9uU2V0c30pOworICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKKyAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdy
b3VwSWQnXTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZl
dGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRb
J3Rhc2tJZCddLCB0cnVlKV0pOworICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAg
ICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gcmVzdWx0OworCisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsK
KworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhn
cm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKKyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0g
Z3JvdXAuYnVpbGRSZXF1ZXN0cygpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMik7CisKKyAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21t
aXRTZXQoKTsKKyAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQo
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3Rz
KCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICB9KTsKKyAg
ICB9KTsKKworICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYSB0ZXN0IGdyb3VwIHdp
dGggbmVlZHMtbm90aWZpY2F0aW9uIGZsYWcgbm90IHNldCcsICgpID0+IHsKICAgICAgICAgbGV0
IGluc2VydGVkR3JvdXBJZDsKICAgICAgICAgbGV0IHdlYmtpdDsKICAgICAgICAgcmV0dXJuIGFk
ZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJykudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4g
cmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwogICAgICAgICAgICAgY29uc3QgcmV2
aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Vi
a2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywKLSAgICAgICAgICAg
ICAgICB7bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9j
a0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCByZXZp
c2lvblNldHN9KTsKKyAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290
aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9j
a0RhdGEuc29tZVRlc3RJZCgpLCBuZWVkc05vdGlmaWNhdGlvbjogZmFsc2UsIHJldmlzaW9uU2V0
c30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGluc2VydGVk
R3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBQcm9t
aXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdy
b3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOwpAQCAtMTIyNyw2ICsx
Mjc2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCkBAIC0xMjUwLDEyICsxMzAwLDEyIEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3Np
dG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwogICAgICAgICAgICAg
Y29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjIn
fX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMnfX1dOwogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywKLSAg
ICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3QxJywgdGFza05hbWU6ICdvdGhlciB0YXNrJywgcGxh
dGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3QsIHJldmlzaW9uU2V0c30pOwor
ICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdDEnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBw
bGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgbmVlZHNOb3RpZmljYXRpb246IHRy
dWUsIHRlc3QsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
ICAgICAgICAgICAgIGZpcnN0UmVzdWx0ID0gcmVzdWx0OwogICAgICAgICAgICAgY29uc3QgcmV2
aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Vi
a2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTI3MzYnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywKLSAgICAgICAgICAg
ICAgICB7bmFtZTogJ3Rlc3QyJywgdGFzazogcmVzdWx0Wyd0YXNrSWQnXSwgcGxhdGZvcm06IE1v
Y2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpLCB0ZXN0LCByZXZpc2lvblNldHMsIHJlcGV0aXRpb25D
b3VudDogMn0pOworICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdDInLCB0YXNrOiByZXN1bHRb
J3Rhc2tJZCddLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCksIG5lZWRzTm90
aWZpY2F0aW9uOiB0cnVlLCB0ZXN0LCByZXZpc2lvblNldHMsIHJlcGV0aXRpb25Db3VudDogMn0p
OwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHNlY29uZFJlc3Vs
dCA9IHJlc3VsdDsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFJlc3VsdFsndGFza0lk
J10sIHNlY29uZFJlc3VsdFsndGFza0lkJ10pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10
ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM4ZTg3MzQ4NjE0
NTExYzM1NGRmY2QwNzc0YzdlZDQ4NTgxZjFmZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3Qt
Z3JvdXAtdGVzdHMuanMKQEAgLTAsMCArMSwyMDkgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3Qg
YXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisKK2NvbnN0IE1vY2tEYXRhID0gcmVxdWlyZSgn
Li9yZXNvdXJjZXMvbW9jay1kYXRhLmpzJyk7Citjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgn
Li9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsKK2NvbnN0IGFkZFNsYXZlRm9yUmVwb3J0ID0g
cmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRTbGF2ZUZvclJl
cG9ydDsKK2NvbnN0IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29t
bW9uLW9wZXJhdGlvbnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKK2NvbnN0IGFzc2VydFRocm93
cyA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYXNzZXJ0VGhy
b3dzOworCithc3luYyBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2
aXNpb25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCit7CisgICAgY29uc3QgcmVwb3J0V2l0aFJl
dmlzaW9uID0gW3sKKyAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNCIsCisgICAgICAgICJidWls
ZFRpbWUiOiAiMjAxNS0xMC0yN1QxNTozNDo1MSIsCisgICAgICAgICJyZXZpc2lvbnMiOiB7Cisg
ICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6IHdlYmtp
dFJldmlzaW9uc1swXSwKKyAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogJzIwMTUtMTAtMjdU
MTE6MzY6NTYuODc4NDczWicsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm1hY09TIjog
eworICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNUEyODQiLAorICAgICAgICAgICAgfQor
ICAgICAgICB9LAorICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAg
ICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJzb21lIHBsYXRmb3JtIiwKKyAgICAg
ICAgInRlc3RzIjogeworICAgICAgICAgICAgInNvbWUgdGVzdCI6IHsKKyAgICAgICAgICAgICAg
ICAibWV0cmljcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIlRpbWUiOiBbIkFyaXRobWV0aWMi
XSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAg
ICAgICAgICAgICAgICAgInRlc3QxIjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJp
Y3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzExXSB9fSwKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH19XTsKKworICAg
IGNvbnN0IGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24gPSBbeworICAgICAgICAiYnVpbGROdW1i
ZXIiOiAiMTI1IiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDE1LTEwLTI3VDE3OjI3OjQxIiwK
KyAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogd2Via2l0UmV2aXNpb25zWzFdLAorICAgICAgICAgICAgICAg
ICJ0aW1lc3RhbXAiOiAnMjAxNS0xMC0yN1QxNjozODoxMC43Njg5OTVaJywKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjE1QTI4NCIsCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJidWlsZGVyTmFt
ZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAg
ICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3Jt
IjogInNvbWUgcGxhdGZvcm0iLAorICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAic29t
ZSB0ZXN0IjogeworICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeworICAgICAgICAgICAgICAg
ICAgICAiVGltZSI6IFsiQXJpdGhtZXRpYyJdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTJd
IH19LAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSwKKyAgICAgICAgfX1dOworCisgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNl
KCk7CisgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICBhd2Fp
dCBhZGRTbGF2ZUZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOworICAgIGF3YWl0IHJl
bW90ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICBh
d2FpdCByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2
aXNpb24pOworICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgY29uc3QgdGVzdCA9IFRl
c3QuZmluZEJ5UGF0aChbJ3NvbWUgdGVzdCcsICd0ZXN0MSddKTsKKyAgICBjb25zdCBwbGF0Zm9y
bSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICBjb25zdCBjb25m
aWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHtt
ZXRyaWM6IHRlc3QubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7
CisgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7
Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKKworICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5s
ZW5ndGgsIDIpOworICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKKyAgICAgICAgbmFtZTogbmFtZSwKKyAg
ICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLAorICAgICAgICBlbmRSdW46IHRlc3RS
dW5zWzFdWydpZCddLAorICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKKyAgICB9KTsK
KyAgICByZXR1cm4gY29udGVudFsndGFza0lkJ107Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGFkZFRy
aWdnZXJhYmxlQW5kQ3JlYXRlVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMpCit7CisgICAgY29u
c3QgcmVwb3J0ID0geworICAgICAgICAnc2xhdmVOYW1lJzogJ2Fub3RoZXJTbGF2ZScsCisgICAg
ICAgICdzbGF2ZVBhc3N3b3JkJzogJ2Fub3RoZXJQYXNzd29yZCcsCisgICAgICAgICd0cmlnZ2Vy
YWJsZSc6ICdidWlsZC13ZWJraXQnLAorICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCisgICAg
ICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKX0sCisgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJ
ZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCl9LAorICAgICAgICBdLAor
ICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKKyAgICAgICAgICAgIHtuYW1lOiAnb3Mtb25s
eScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6IFsKKyAgICAgICAgICAgICAgICB7
cmVwb3NpdG9yeTogTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiBm
YWxzZX0sCisgICAgICAgICAgICBdfSwKKyAgICAgICAgICAgIHtuYW1lOiAnd2Via2l0LW9ubHkn
LCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVzOiBbCisgICAgICAgICAgICAgICAge3Jl
cG9zaXRvcnk6IE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6IHRy
dWV9LAorICAgICAgICAgICAgXX0sCisgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1hbmQtd2Vi
a2l0JywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWworICAgICAgICAgICAgICAg
IHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6
IGZhbHNlfSwKKyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogdHJ1ZX0KKyAgICAgICAgICAgIF19LAorICAgICAg
ICAgICAge25hbWU6ICdzeXN0ZW0td2Via2l0LXNqYycsIGFjY2VwdHNSb290OiB0cnVlLCByZXBv
c2l0b3JpZXM6IFsKKyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEubWFjb3NS
ZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiBmYWxzZX0sCisgICAgICAgICAgICAgICAge3Jl
cG9zaXRvcnk6IE1vY2tEYXRhLmpzY1JlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6IGZhbHNl
fSwKKyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCksIGFjY2VwdHNQYXRjaDogdHJ1ZX0KKyAgICAgICAgICAgIF19LAorICAgICAgICBdCisg
ICAgfTsKKyAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNl
KCkpOworICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHJlcG9ydCk7CisgICAgYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywg
cmVwb3J0KTsKKyAgICBhd2FpdCBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2aXNp
b25zKTsKK30KKworZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcs
IGZ1bmN0aW9uKCl7CisgICAgcHJlcGFyZVNlcnZlclRlc3QodGhpcywgJ25vZGUnKTsKKyAgICBi
ZWZvcmVFYWNoKCgpID0+IHsKKyAgICAgICAgUHJpdmlsZWdlZEFQSS5jb25maWd1cmUoJ3Rlc3Qn
LCAncGFzc3dvcmQnKTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgdGhyb3cgIlNsYXZlTm90
Rm91bmQiIGlmIGludmFsaWQgc2xhdmUgbmFtZSBhbmQgcGFzc3dvcmQgY29tYmluYXRpb24gaXMg
cHJvdmlkZWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5k
Q3JlYXRlVGFzaygnc29tZSB0YXNrJyk7CisgICAgICAgIFByaXZpbGVnZWRBUEkuY29uZmlndXJl
KCd0ZXN0JywgJ3dyb25ncGFzc3dvcmQnKTsKKworICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3Mo
J1NsYXZlTm90Rm91bmQnLCAoKSA9PgorICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7fSkpOworICAgIH0pOworCisgICAgaXQoJ3Nob3Vs
ZCB0aHJvdyAiVGVzdEdyb3VwTm90U3BlY2lmaWVkIiBpZiB0ZXN0IGdyb3VwIGlzIG5vdCBzcGVj
aWZpZWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5kQ3Jl
YXRlVGFzaygnc29tZSB0YXNrJyk7CisKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdUZXN0
R3JvdXBOb3RTcGVjaWZpZWQnLCAoKSA9PgorICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7fSkpOworICAgIH0pOworCisgICAgaXQoJ3No
b3VsZCB0aHJvdyAiTm90aWZpY2F0aW9uU2VudEF0RmllbGRTaG91bGRPbmx5QmVTZXRXaGVuTmVl
ZHNOb3RpZmljYXRpb25Jc0ZhbHNlIiBpZiAibmVlZHNOb3RpZmljYXRpb24iIGlzIGZhbHNlIGJ1
dCAibm90aWZpY2F0aW9uU2VudEF0IiBpcyBub3Qgc2V0JywgYXN5bmMgKCkgPT4geworICAgICAg
ICBhd2FpdCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOworCisgICAg
ICAgIGF3YWl0IGFzc2VydFRocm93cygnTm90aWZpY2F0aW9uU2VudEF0RmllbGRTaG91bGRPbmx5
QmVTZXRXaGVuTmVlZHNOb3RpZmljYXRpb25Jc0ZhbHNlJywgKCkgPT4KKyAgICAgICAgICAgIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiAxLCBu
ZWVkc05vdGlmaWNhdGlvbjogZmFsc2V9KSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHRo
cm93ICJOb3RpZmljYXRpb25TZW50QXRGaWVsZFNob3VsZE9ubHlCZVNldFdoZW5OZWVkc05vdGlm
aWNhdGlvbklzRmFsc2UiIGlmICJuZWVkc05vdGlmaWNhdGlvbiIgaXMgdHJ1ZSBidXQgIm5vdGlm
aWNhdGlvblNlbnRBdCIgaXMgc2V0JywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRU
cmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOworCisgICAgICAgIGF3YWl0IGFz
c2VydFRocm93cygnTm90aWZpY2F0aW9uU2VudEF0RmllbGRTaG91bGRPbmx5QmVTZXRXaGVuTmVl
ZHNOb3RpZmljYXRpb25Jc0ZhbHNlJywgKCkgPT4KKyAgICAgICAgICAgIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiAxLCBuZWVkc05vdGlmaWNh
dGlvbjogdHJ1ZSwgbm90aWZpY2F0aW9uU2VudEF0OiAobmV3IERhdGUpLnRvSVNPU3RyaW5nKCl9
KSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlICJuZWVkc19u
b3RpZmljYXRpb24iIGZpZWxkIHRvIGZhbHNlJywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2Fp
dCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOworICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3Np
dG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOworICAgICAgICBjb25zdCByZXZpc2lvblNldHMg
PSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06
IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07CisgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCisgICAgICAgICAgICB7
bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBuZWVkc05vdGlm
aWNhdGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgIGNvbnN0IGluc2VydGVkR3Jv
dXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKKworICAgICAgICBjb25zdCB0ZXN0R3JvdXBz
ID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgY29u
c3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCksIHRydWUpOworICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlvblNlbnRB
dCgpKTsKKworICAgICAgICBjb25zdCBub3RpZmljYXRpb25TZW50QXQgPSBuZXcgRGF0ZTsKKyAg
ICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAn
LCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbmVlZHNOb3RpZmljYXRpb246IGZhbHNlLCBub3Rp
ZmljYXRpb25TZW50QXQ6IG5vdGlmaWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpfSk7CisKKyAg
ICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2so
cmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5l
ZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRH
cm91cHNbMF0ubm90aWZpY2F0aW9uU2VudEF0KCksIG5vdGlmaWNhdGlvblNlbnRBdC5nZXRUaW1l
KCkpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSAibmVlZHNf
bm90aWZpY2F0aW9uIiBmaWVsZCB0byB0cnVlJywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2Fp
dCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOworICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3Np
dG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOworICAgICAgICBjb25zdCByZXZpc2lvblNldHMg
PSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06
IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07CisgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCisgICAgICAgICAgICB7
bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBuZWVkc05vdGlm
aWNhdGlvbjogZmFsc2UsIHJldmlzaW9uU2V0c30pOworICAgICAgICBjb25zdCBpbnNlcnRlZEdy
b3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CisKKyAgICAgICAgY29uc3QgdGVzdEdyb3Vw
cyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7
CisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5uZWVkc05vdGlmaWNh
dGlvbigpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9uU2Vu
dEF0KCkpOworCisgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0
ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG5lZWRzTm90aWZpY2F0aW9u
OiB0cnVlfSk7CisKKyAgICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91
cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5l
cXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh1cGRh
dGVkR3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAgICBhc3NlcnQu
b2soIWdyb3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKKyAgICB9KTsKK30pOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwppbmRleCA5NGEzOTNmMWU5
Njk1NmU1OWQ4NTIwZGI5MDQ3YjYxZTgzNGJjN2E1Li42NDUyMGE1ZWY1NTVkYTMxZjc5YTY1MWJm
MDBiNTM4ZDIzN2MzYmM0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCkBAIC03OSw3ICs3OSw3
IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190YXNrcycs
IHtpZDogNTAwLCBwbGF0Zm9ybTogNjUsIG1ldHJpYzogMzAwLCBuYW1lOiAnc29tZSB0YXNrJywK
ICAgICAgICAgICAgICAgICBzdGFydF9ydW46IDgwMSwgc3RhcnRfcnVuX3RpbWU6ICcyMDE1LTEw
LTI3VDEyOjA1OjI3LjFaJywKICAgICAgICAgICAgICAgICBlbmRfcnVuOiA4MDEsIGVuZF9ydW5f
dGltZTogJzIwMTUtMTAtMjdUMTI6MDU6MjcuMVonfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQo
J2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lkOiA2MDAsIHRhc2s6IDUwMCwgbmFtZTogJ3NvbWUg
dGVzdCBncm91cCd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGVzdF9ncm91
cHMnLCB7aWQ6IDYwMCwgdGFzazogNTAwLCBuYW1lOiAnc29tZSB0ZXN0IGdyb3VwJywgbmVlZHNf
bm90aWZpY2F0aW9uOiB0cnVlfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVl
c3RzJywge2lkOiA3MDAsIHN0YXR1czogc3RhdHVzTGlzdFswXSwgdHJpZ2dlcmFibGU6IDEwMDAs
IHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDog
NjAwLCBvcmRlcjogMCwgY29tbWl0X3NldDogNDAxfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQo
J2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDEsIHN0YXR1czogc3RhdHVzTGlzdFsxXSwgdHJpZ2dl
cmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDog
MjAwLCBncm91cDogNjAwLCBvcmRlcjogMSwgY29tbWl0X3NldDogNDAyfSksCiAgICAgICAgICAg
ICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDIsIHN0YXR1czogc3RhdHVzTGlz
dFsyXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3Jt
OiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMiwgY29tbWl0X3NldDogNDAxfSks
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYW5hbHlzaXMt
cmVzdWx0cy1ub3RpZmllci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9h
bmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMDRjMzEzMTY3ZGViM2Ew
ZDI3MWE4NmRiYThlODYyZTFiNzA2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci5qcwpAQCAtMCww
ICsxLDEzMiBAQAorY29uc3QgZnMgPSByZXF1aXJlKCdmcycpOworY29uc3QgcGF0aCA9IHJlcXVp
cmUoJ3BhdGgnKTsKK2NvbnN0IG9zID0gcmVxdWlyZSgnb3MnKTsKK2NvbnN0IFRlc3RHcm91cFJl
c3VsdFBhZ2UgPSByZXF1aXJlKCcuL3Rlc3QtZ3JvdXAtcmVzdWx0LXBhZ2UuanMnKS5UZXN0R3Jv
dXBSZXN1bHRQYWdlOworCitjbGFzcyBBbmFseXNpc1Jlc3VsdHNOb3RpZmllciB7CisgICAgY29u
c3RydWN0b3IobWVzc2FnZVRlbXBsYXRlLCBmaW5hbGl6ZVNjcmlwdCwgbWVzc2FnZUNvbnN0cnVj
dGlvblJ1bGVzLCBub3RpZmljYXRpb25TZXJ2ZXJSZW1vdGVBUEksIG5vdGlmaWNhdGlvblNlcnZp
Y2VQYXRoLCBTdWJwcm9jZXNzKQorICAgIHsKKyAgICAgICAgdGhpcy5fbWVzc2FnZVRlbXBsYXRl
ID0gbWVzc2FnZVRlbXBsYXRlOworICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2ZXJSZW1v
dGVBUEkgPSBub3RpZmljYXRpb25TZXJ2ZXJSZW1vdGVBUEk7CisgICAgICAgIHRoaXMuX25vdGlm
aWNhdGlvblNlcnZpY2VQYXRoID0gbm90aWZpY2F0aW9uU2VydmljZVBhdGg7CisgICAgICAgIHRo
aXMuX3N1YnByb2Nlc3MgPSBTdWJwcm9jZXNzOworICAgICAgICB0aGlzLl9maW5hbGl6ZVNjcmlw
dCA9IGZpbmFsaXplU2NyaXB0OworICAgICAgICB0aGlzLl9tZXNzYWdlQ29uc3RydWN0aW9uUnVs
ZXMgPSBtZXNzYWdlQ29uc3RydWN0aW9uUnVsZXM7CisgICAgfQorCisgICAgYXN5bmMgc2VuZE5v
dGlmaWNhdGlvbnNGb3JUZXN0R3JvdXBzKHRlc3RHcm91cHMpCisgICAgeworICAgICAgICBmb3Ig
KGNvbnN0IHRlc3RHcm91cCBvZiB0ZXN0R3JvdXBzKSB7CisgICAgICAgICAgICBjb25zdCBtZXNz
YWdlID0gYXdhaXQgQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21lc3NhZ2VGb3JUZXN0R3JvdXAo
dGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gYCIke3Rlc3RHcm91cC50YXNr
KCkubmFtZSgpfSIgLSAiJHt0ZXN0R3JvdXAubmFtZSgpfSIgaGFzIGZpbmlzaGVkYDsKKyAgICAg
ICAgICAgIGxldCBjb250ZW50ID0gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX2luc3RhbnRpYXRl
Tm90aWZpY2F0aW9uVGVtcGxhdGUodGhpcy5fbWVzc2FnZVRlbXBsYXRlLCB0aXRsZSwgbWVzc2Fn
ZSk7CisgICAgICAgICAgICBjb250ZW50ID0gdGhpcy5fYXBwbHlSdWxlcyh0ZXN0R3JvdXAucGxh
dGZvcm0oKS5uYW1lKCksIHRlc3RHcm91cC50ZXN0KCkucGF0aCgpWzBdLm5hbWUoKSwgY29udGVu
dCk7CisgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXBJbmZvID0ge2F1dGhvcjogdGVzdEdyb3Vw
LmF1dGhvcigpfTsKKworICAgICAgICAgICAgY29uc3QgdGVtcERpciA9IGZzLm1rZHRlbXBTeW5j
KG9zLnRtcGRpcigpKTsKKyAgICAgICAgICAgIGNvbnN0IHRlbXBGaWxlUGF0aCA9IHBhdGguam9p
bih0ZW1wRGlyLCAndGVtcC1jb250ZW50Lmpzb24nKTsKKyAgICAgICAgICAgIGZzLndyaXRlRmls
ZVN5bmModGVtcEZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeSh7Y29udGVudCwgdGVzdEdyb3VwSW5m
b30pKTsKKyAgICAgICAgICAgIGNvbnRlbnQgPSBKU09OLnBhcnNlKGF3YWl0IHRoaXMuX3N1YnBy
b2Nlc3MuZXhlY3V0ZShbLi4udGhpcy5fZmluYWxpemVTY3JpcHQsIHRlbXBGaWxlUGF0aF0pKTsK
KyAgICAgICAgICAgIGZzLnVubGlua1N5bmModGVtcEZpbGVQYXRoKTsKKyAgICAgICAgICAgIGZz
LnJtZGlyU3luYyh0ZW1wRGlyKTsKKworICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2VuZE5vdGlm
aWNhdGlvbihjb250ZW50KTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RHcm91cC5kaWRTZW5kTm90
aWZpY2F0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgYXN5bmMgX21lc3Nh
Z2VGb3JUZXN0R3JvdXAodGVzdEdyb3VwKQorICAgIHsKKyAgICAgICAgY29uc3QgYW5hbHlzaXNU
YXNrID0gdGVzdEdyb3VwLnRhc2soKSB8fCBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHRl
c3RHcm91cC5fdGFza0lkKTsKKyAgICAgICAgY29uc3QgYW5hbHlzaXNSZXN1bHRzID0gYXdhaXQg
QW5hbHlzaXNSZXN1bHRzLmZldGNoKGFuYWx5c2lzVGFzay5pZCgpKTsKKworICAgICAgICByZXR1
cm4gKG5ldyBUZXN0R3JvdXBSZXN1bHRQYWdlKCd0ZXN0JywgdGVzdEdyb3VwLCBhbmFseXNpc1Jl
c3VsdHMsIGFuYWx5c2lzVGFzaywgQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX1VSTEZvckFuYWx5
c2lzVGFzayhhbmFseXNpc1Rhc2spKSkuZ2VuZXJhdGVNYXJrdXAoKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgX1VSTEZvckFuYWx5c2lzVGFzayhhbmFseXNpc1Rhc2spCisgICAgeworICAgICAgICBy
ZXR1cm4gZ2xvYmFsLlJlbW90ZUFQSS51cmwoYC92My8jL2FuYWx5c2lzL3Rhc2svJHthbmFseXNp
c1Rhc2suaWQoKX1gKTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2luc3RhbnRpYXRlTm90aWZpY2F0
aW9uVGVtcGxhdGUodGVtcGxhdGUsIHRpdGxlLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgY29u
c3QgaW5zdGFuY2UgPSB7fTsKKyAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRlbXBsYXRlKSB7
CisgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRlbXBsYXRlW25hbWVdOworICAgICAgICAgICAg
aWYgKHR5cGVvZih2YWx1ZSkgPT09ICdzdHJpbmcnKQorICAgICAgICAgICAgICAgIGluc3RhbmNl
W25hbWVdID0gdmFsdWUucmVwbGFjZSgvXCR0aXRsZS9nLCB0aXRsZSkucmVwbGFjZSgvXCRtZXNz
YWdlL2csIG1lc3NhZ2UpOworICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mKHRlbXBsYXRlW25h
bWVdKSA9PT0gJ29iamVjdCcpCisgICAgICAgICAgICAgICAgaW5zdGFuY2VbbmFtZV0gPSB0aGlz
Ll9pbnN0YW50aWF0ZU5vdGlmaWNhdGlvblRlbXBsYXRlKHZhbHVlLCB0aXRsZSwgbWVzc2FnZSk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaW5zdGFuY2VbbmFtZV0gPSB2YWx1
ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQorCisgICAgX2Fw
cGx5UnVsZXMocGxhdGZvcm1OYW1lLCB0ZXN0TmFtZSwgbWVzc2FnZSkKKyAgICB7CisgICAgICAg
IGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLl9tZXNzYWdlQ29uc3RydWN0aW9uUnVsZXMpIHsKKyAg
ICAgICAgICAgIGlmIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUocGxhdGZv
cm1OYW1lLCB0ZXN0TmFtZSwgcnVsZS5wbGF0Zm9ybXMsIHJ1bGUudGVzdHMpKQorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgPSBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fYXBwbHlVcGRhdGUobWVz
c2FnZSwgcnVsZS5wYXJhbWV0ZXJzKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBtZXNz
YWdlOworICAgIH0KKworICAgIHN0YXRpYyBfbWF0Y2hlc1J1bGUocGxhdGZvcm0sIHRlc3QsIHBs
YXRmb3JtcywgdGVzdHMpCisgICAgeworICAgICAgICBsZXQgaGFzTWF0Y2ggPSBmYWxzZTsKKwor
ICAgICAgICBpZiAodGVzdHMpIHsKKyAgICAgICAgICAgIGlmICghdGVzdHMuaW5jbHVkZXModGVz
dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaGFzTWF0Y2gg
PSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChwbGF0Zm9ybXMpIHsKKyAgICAgICAgICAg
IGlmICghcGxhdGZvcm1zLmluY2x1ZGVzKHBsYXRmb3JtKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICBoYXNNYXRjaCA9IHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIGhhc01hdGNoOworICAgIH0KKworICAgIHN0YXRpYyBfYXBwbHlVcGRhdGUobWVz
c2FnZSwgdXBkYXRlKQorICAgIHsKKyAgICAgICAgY29uc3QgbWVzc2FnZVR5cGUgPSB0eXBlb2Yg
bWVzc2FnZTsKKyAgICAgICAgY29uc3QgdXBkYXRlVHlwZSA9IHR5cGVvZiB1cGRhdGU7CisgICAg
ICAgIGNvbnN0IHN1cHBvcnRlZFByaW1pdGl2ZVR5cGVzID0gWyJzdHJpbmciLCAibnVtYmVyIiwg
ImJvb2xlYW4iXTsKKyAgICAgICAgY29uc3QgdW5zdXBwb3J0ZWRQcmltaXRpdmVUeXBlcyA9IFsi
c3ltYm9sIiwgImZ1bmN0aW9uIiwgInVuZGVmaW5lZCJdOworICAgICAgICBjb25zb2xlLmFzc2Vy
dCghdW5zdXBwb3J0ZWRQcmltaXRpdmVUeXBlcy5pbmNsdWRlcyhtZXNzYWdlVHlwZSkgJiYgIXVu
c3VwcG9ydGVkUHJpbWl0aXZlVHlwZXMuaW5jbHVkZXModXBkYXRlVHlwZSkpOworCisgICAgICAg
IGlmIChzdXBwb3J0ZWRQcmltaXRpdmVUeXBlcy5pbmNsdWRlcyhtZXNzYWdlVHlwZSkgfHwgc3Vw
cG9ydGVkUHJpbWl0aXZlVHlwZXMuaW5jbHVkZXModXBkYXRlVHlwZSkpCisgICAgICAgICAgICBy
ZXR1cm4gW21lc3NhZ2UsIHVwZGF0ZV07CisKKyAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1
ZV0gb2YgT2JqZWN0LmVudHJpZXModXBkYXRlKSkgeworICAgICAgICAgICAgbGV0IG1lcmdlZFZh
bHVlID0gbnVsbDsKKyAgICAgICAgICAgIGNvbnN0IHZhbHVlVG9NZXJnZSA9IG1lc3NhZ2Vba2V5
XTsKKworICAgICAgICAgICAgaWYgKCFtZXNzYWdlLmhhc093blByb3BlcnR5KGtleSkpCisgICAg
ICAgICAgICAgICAgbWVyZ2VkVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKEFy
cmF5LmlzQXJyYXkodmFsdWUpICYmIEFycmF5LmlzQXJyYXkodmFsdWVUb01lcmdlKSkKKyAgICAg
ICAgICAgICAgICBtZXJnZWRWYWx1ZSA9IFsuLi52YWx1ZVRvTWVyZ2UsIC4uLnZhbHVlXTsKKyAg
ICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmICFBcnJheS5pc0FycmF5
KHZhbHVlVG9NZXJnZSkpCisgICAgICAgICAgICAgICAgbWVyZ2VkVmFsdWUgPSBbdmFsdWVUb01l
cmdlLCAuLi52YWx1ZV07CisgICAgICAgICAgICBlbHNlIGlmICghQXJyYXkuaXNBcnJheSh2YWx1
ZSkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZVRvTWVyZ2UpKQorICAgICAgICAgICAgICAgIG1lcmdl
ZFZhbHVlID0gWy4uLnZhbHVlVG9NZXJnZSwgdmFsdWVdOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIG1lcmdlZFZhbHVlID0gdGhpcy5fYXBwbHlVcGRhdGUodmFsdWVUb01lcmdl
LCB2YWx1ZSk7CisKKyAgICAgICAgICAgIG1lc3NhZ2Vba2V5XSA9IG1lcmdlZFZhbHVlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBtZXNzYWdlOworICAgIH0KKworICAgIF9zZW5kTm90aWZp
Y2F0aW9uKGNvbnRlbnQpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9u
U2VydmVyUmVtb3RlQVBJLnBvc3RKU09OKHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2VQYXRoLCBj
b250ZW50KTsKKyAgICB9Cit9CisKKworaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQn
KQorICAgIG1vZHVsZS5leHBvcnRzLkFuYWx5c2lzUmVzdWx0c05vdGlmaWVyID0gQW5hbHlzaXNS
ZXN1bHRzTm90aWZpZXI7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21lYXN1cmVtZW50LXNldC1hbmFseXpl
ci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tZWFzdXJlbWVudC1zZXQt
YW5hbHl6ZXIuanMKaW5kZXggMmRiMDQ3YTRiZDE0OGExMzg4NGRkNGRmZmE2YTRkNzgwNzRkZTQ2
OS4uYzkzYjkwYmVjZjhiOWQ2NzBmNDUzZjliYzNlNDczOWZmOWNjYzg1NiAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21lYXN1cmVtZW50LXNldC1hbmFseXpl
ci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvbWVhc3VyZW1lbnQt
c2V0LWFuYWx5emVyLmpzCkBAIC0xMDQsNyArMTA0LDcgQEAgY2xhc3MgTWVhc3VyZW1lbnRTZXRB
bmFseXplciB7CiAKICAgICAgICAgLy8gRklYTUU6IFRoZSBpdGVyYXRpb24gY291bnQgc2hvdWxk
IGJlIHNtYXJ0ZXIgdGhhbiBoYXJkLWNvZGluZy4KICAgICAgICAgY29uc3QgYW5hbHlzaXNUYXNr
ID0gYXdhaXQgQW5hbHlzaXNUYXNrLmNyZWF0ZShzdW1tYXJ5LCByYW5nZVdpdGhNb3N0U2lnbmlm
aWNhbnRDaGFuZ2Uuc3RhcnRQb2ludCwKLSAgICAgICAgICAgIHJhbmdlV2l0aE1vc3RTaWduaWZp
Y2FudENoYW5nZS5lbmRQb2ludCwgJ0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIHJhbmdlV2l0
aE1vc3RTaWduaWZpY2FudENoYW5nZS5lbmRQb2ludCwgJ0NvbmZpcm0nLCA0LCB0cnVlKTsKIAog
ICAgICAgICB0aGlzLl9sb2dnZXIuaW5mbyhgQ3JlYXRlZCBhbmFseXNpcyB0YXNrIHdpdGggaWQg
IiR7YW5hbHlzaXNUYXNrLmlkKCl9IiB0byBjb25maXJtOiAiJHtzdW1tYXJ5fSIuYCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3Rlc3QtZ3Jv
dXAtcmVzdWx0LXBhZ2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdGVz
dC1ncm91cC1yZXN1bHQtcGFnZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDE2ZWI1MTBjNGQyM2E4MWFjNzVk
YTg4MmY2YzJjY2ZiZGYzMjllCi0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL3Rlc3QtZ3JvdXAtcmVzdWx0LXBhZ2UuanMKQEAgLTAsMCArMSwxODYg
QEAKKworY29uc3QgUGFnZSA9IHR5cGVvZiBNYXJrdXBQYWdlICE9ICd1bmRlZmluZWQnID8gTWFy
a3VwUGFnZSA6IHJlcXVpcmUoJy4vbWFya3VwLWNvbXBvbmVudC5qcycpLk1hcmt1cFBhZ2U7Citj
b25zdCBDb21wb25lbnRCYXNlID0gdHlwZW9mIE1hcmt1cENvbXBvbmVudEJhc2UgIT0gJ3VuZGVm
aW5lZCcgPworICAgIE1hcmt1cENvbXBvbmVudEJhc2UgOiByZXF1aXJlKCcuL21hcmt1cC1jb21w
b25lbnQuanMnKS5NYXJrdXBDb21wb25lbnRCYXNlOworCisKK2NsYXNzIFRlc3RHcm91cFJlc3Vs
dFBhZ2UgZXh0ZW5kcyBQYWdlIHsKKyAgICBjb25zdHJ1Y3Rvcih0aXRsZSwgdGVzdEdyb3VwLCBh
bmFseXNpc1Jlc3VsdHMsIGFuYWx5c2lzVGFzaywgYW5hbHlzaXNVUkwpCisgICAgeworICAgICAg
ICBzdXBlcih0aXRsZSk7CisgICAgICAgIHRoaXMuX3Rlc3RHcm91cCA9IHRlc3RHcm91cDsKKyAg
ICAgICAgdGhpcy5fYW5hbHlzaXNSZXN1bHRzID0gYW5hbHlzaXNSZXN1bHRzOworICAgICAgICB0
aGlzLl9hbmFseXNpc1VSTCA9IGFuYWx5c2lzVVJMOworICAgICAgICB0aGlzLl9hbmFseXNpc1Rh
c2sgPSBhbmFseXNpc1Rhc2s7CisgICAgICAgIHRoaXMuX2NvbnN0cnVjdFRhYmxlc0xhemlseSA9
IG5ldyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbih0aGlzLmNvbnN0cnVjdFRhYmxlcy5iaW5kKHRo
aXMpKTsKKyAgICB9CisKKyAgICBjb25zdHJ1Y3RUYWJsZXModGVzdEdyb3VwLCBhbmFseXNpc1Jl
c3VsdHMsIGFuYWx5c2lzVVJMLCBhbmFseXNpc1Rhc2spCisgICAgeworICAgICAgICBjb25zdCBl
bGVtZW50ID0gQ29tcG9uZW50QmFzZS5jcmVhdGVFbGVtZW50LmJpbmQoQ29tcG9uZW50QmFzZSk7
CisgICAgICAgIGNvbnN0IGxpbmsgPSBDb21wb25lbnRCYXNlLmNyZWF0ZUxpbmsuYmluZChDb21w
b25lbnRCYXNlKTsKKworICAgICAgICBjb25zdCByZXF1ZXN0ZWRDb21taXRTZXRzID0gdGVzdEdy
b3VwLnJlcXVlc3RlZENvbW1pdFNldHMoKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocmVxdWVz
dGVkQ29tbWl0U2V0cy5sZW5ndGgsIDIpOworCisgICAgICAgIGNvbnN0IHRlc3QgPSB0ZXN0R3Jv
dXAudGVzdCgpOworICAgICAgICBjb25zdCBtZXRyaWNzID0gYW5hbHlzaXNUYXNrLm1ldHJpYygp
ID8gW2FuYWx5c2lzVGFzay5tZXRyaWMoKV0gOiB0ZXN0Lm1ldHJpY3MoKTsKKyAgICAgICAgY29u
c3QgdGFibGVzV2l0aFN1bW1hcnkgPSBbXTsKKworICAgICAgICBmb3IgKGNvbnN0IG1ldHJpYyBv
ZiBtZXRyaWNzKSB7CisgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBtZXRyaWMubWFrZUZv
cm1hdHRlcig0KTsKKyAgICAgICAgICAgIGNvbnN0IGRlbHRhRm9ybWF0dGVyID0gbWV0cmljLm1h
a2VGb3JtYXR0ZXIoMiwgZmFsc2UpOworICAgICAgICAgICAgY29uc3QgZm9ybWF0VmFsdWUgPSAo
dmFsdWUsIGludGVydmFsKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBpbnRl
cnZhbCA/IChpbnRlcnZhbFsxXSAtIGludGVydmFsWzBdKSAvIDIgOiBudWxsOworICAgICAgICAg
ICAgICAgIGNvbnN0IHJlc3VsdFBhcnRzID0gW3ZhbHVlID09IG51bGwgfHwgaXNOYU4odmFsdWUp
ID8gJy0nIDogZm9ybWF0dGVyKHZhbHVlKV07CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhICE9
IG51bGwgJiYgIWlzTmFOKGRlbHRhKSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0UGFydHMu
cHVzaChgIFx1MDBiMSAke2RlbHRhRm9ybWF0dGVyKGRlbHRhKX1gKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0UGFydHM7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBjb25z
dCBhbmFseXNpc1Jlc3VsdHNWaWV3ID0gYW5hbHlzaXNSZXN1bHRzLnZpZXdGb3JNZXRyaWMobWV0
cmljKTsKKyAgICAgICAgICAgIGxldCBtYXhWYWx1ZSA9IG51bGw7CisgICAgICAgICAgICBsZXQg
bWluVmFsdWUgPSBudWxsOworCisgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBvZiBy
ZXF1ZXN0ZWRDb21taXRTZXRzKSB7CisgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0
c0ZvckNvbW1pdFNldCA9IHRlc3RHcm91cC5yZXF1ZXN0c0ZvckNvbW1pdFNldChjb21taXRTZXQp
OworICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBidWlsZFJlcXVlc3RzRm9yQ29tbWl0
U2V0Lm1hcCgoYnVpbGRSZXF1ZXN0KSA9PiBhbmFseXNpc1Jlc3VsdHNWaWV3LnJlc3VsdEZvclJl
cXVlc3QoYnVpbGRSZXF1ZXN0KSk7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXN1bHQg
b2YgcmVzdWx0cykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9
IG1heFZhbHVlID09PSBudWxsID8gcmVzdWx0LnZhbHVlIDogTWF0aC5tYXgobWF4VmFsdWUsIHJl
c3VsdC52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIG1pblZhbHVlID0gbWluVmFsdWUgPT09
IG51bGwgPyByZXN1bHQudmFsdWUgOiBNYXRoLm1pbihtaW5WYWx1ZSwgcmVzdWx0LnZhbHVlKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IHRh
YmxlQm9kaWVzID0gW107CisgICAgICAgICAgICBjb25zdCBhcnJheU9mVmFsdWVzID0gW107Cisg
ICAgICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBvZiByZXF1ZXN0ZWRDb21taXRTZXRzKSB7
CisgICAgICAgICAgICAgICAgbGV0IGZpcnN0Um93ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBj
b25zdCB0YWJsZVJvd3MgPSBbXTsKKyAgICAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3Rz
Rm9yQ29tbWl0U2V0ID0gdGVzdEdyb3VwLnJlcXVlc3RzRm9yQ29tbWl0U2V0KGNvbW1pdFNldCk7
CisgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IGJ1aWxkUmVxdWVzdHNGb3JDb21taXRT
ZXQubWFwKChidWlsZFJlcXVlc3QpID0+IGFuYWx5c2lzUmVzdWx0c1ZpZXcucmVzdWx0Rm9yUmVx
dWVzdChidWlsZFJlcXVlc3QpKTsKKyAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSByZXN1
bHRzLmZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkubWFwKChyZXN1bHQpID0+IHJlc3VsdC52
YWx1ZSk7CisgICAgICAgICAgICAgICAgYXJyYXlPZlZhbHVlcy5wdXNoKHZhbHVlcyk7CisKKyAg
ICAgICAgICAgICAgICBmb3IoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHsKKyAgICAgICAgICAg
ICAgICAgICAgY29uc3QgYmFyR3JhcGhQbGFjZWhvbGRlciA9IGVsZW1lbnQoJ2Rpdicse2NsYXNz
OiAnYmFyLWdyYXBoLXBsYWNlaG9sZGVyJ30pOworICAgICAgICAgICAgICAgICAgICBpZiAocmVz
dWx0KQorICAgICAgICAgICAgICAgICAgICAgICAgYmFyR3JhcGhQbGFjZWhvbGRlci5zdHlsZS53
aWR0aCA9ICgxMCArIChyZXN1bHQudmFsdWUgLSBtaW5WYWx1ZSkgLyAobWF4VmFsdWUgLSBtaW5W
YWx1ZSkgKiA5MCkgKyAnJSc7CisKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFyR3JhcGhD
b250YWluZXIgPSBlbGVtZW50KCdkaXYnLCB7Y2xhc3M6ICdiYXItZ3JhcGgtY29udGFpbmVyJ30s
IGJhckdyYXBoUGxhY2Vob2xkZXIpOworICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsQ29u
dGVudCA9IFtiYXJHcmFwaENvbnRhaW5lciwgcmVzdWx0ID8gZm9ybWF0VmFsdWUocmVzdWx0LnZh
bHVlLCByZXN1bHQuaW50ZXJ2YWwpLmpvaW4oJycpIDogJ0ZhaWxlZCddOworCisgICAgICAgICAg
ICAgICAgICAgIGlmIChmaXJzdFJvdykgeworICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RS
b3cgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlUm93cy5wdXNoKGVsZW1l
bnQoJ3RyJywgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3RoJywge2Ns
YXNzOiAnZmlyc3Qtcm93Jywgcm93c3BhbjogYnVpbGRSZXF1ZXN0c0ZvckNvbW1pdFNldC5sZW5n
dGh9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVzdEdyb3VwLmxhYmVsRm9y
Q29tbWl0U2V0KGNvbW1pdFNldCkgKyAnOiAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9ybWF0VmFsdWUoU3RhdGlzdGljcy5tZWFuKHZhbHVlcyksIFN0YXRpc3RpY3Mu
Y29uZmlkZW5jZUludGVydmFsKHZhbHVlcykpLm1hcCgoY29udGVudCA9PiBlbGVtZW50KCdzcGFu
Jywge2NsYXNzOiAnbm8td3JhcCd9LCBjb250ZW50KSkpXSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdyZXN1bHQtY2VsbCBmaXJzdC1yb3cnfSwg
Y2VsbENvbnRlbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgXSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRhYmxlUm93cy5wdXNoKGVsZW1lbnQoJ3RyJywgZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdy
ZXN1bHQtY2VsbCd9LCBjZWxsQ29udGVudCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgdGFibGVCb2RpZXMucHVzaChlbGVtZW50KCd0Ym9keScsIHRhYmxlUm93cykpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBjb21wYXJpc29uID0gdGVzdEdyb3Vw
LmNvbXBhcmVUZXN0UmVzdWx0cyhtZXRyaWMsIC4uLmFycmF5T2ZWYWx1ZXMpOworICAgICAgICAg
ICAgY29uc3QgY2hhbmdlU3R5bGVDbGFzcyA9ICBgJHtjb21wYXJpc29uLmlzU3RhdGlzdGljYWxs
eVNpZ25pZmljYW50ID8gY29tcGFyaXNvbi5jaGFuZ2VUeXBlIDogJ2luc2lnbmlmaWNhbnQnfS1y
ZXN1bHRgOworICAgICAgICAgICAgY29uc3QgY2FwdGlvbiA9IGVsZW1lbnQoJ2NhcHRpb24nLCBb
YCR7dGVzdC5uYW1lKCl9IC0gJHttZXRyaWMuYWdncmVnYXRvckxhYmVsKCl9OiBgLAorICAgICAg
ICAgICAgICAgIGVsZW1lbnQoJ2VtJywge2NsYXNzOiBjaGFuZ2VTdHlsZUNsYXNzfSwgY29tcGFy
aXNvbi5mdWxsTGFiZWwpXSk7CisKKyAgICAgICAgICAgIHRhYmxlc1dpdGhTdW1tYXJ5LnB1c2go
W2VsZW1lbnQoJ3RhYmxlJywge2NsYXNzOiAncmVzdWx0LXRhYmxlICd9LCBbY2FwdGlvbiwgdGFi
bGVCb2RpZXNdKV0pOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBl
bGVtZW50KCdoMScsIFtlbGVtZW50KCdlbScsIHRlc3RHcm91cC5uYW1lKCkpLCAnIC0gJywgZWxl
bWVudCgnZW0nLCBsaW5rKGFuYWx5c2lzVGFzay5uYW1lKCksIGFuYWx5c2lzVVJMKSldKTsKKwor
ICAgICAgICByZXR1cm4gW2Rlc2NyaXB0aW9uLCB0YWJsZXNXaXRoU3VtbWFyeV07CisgICAgfQor
CisKKyAgICByZW5kZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIucmVuZGVyKCk7CisgICAgICAg
IHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNvbnRlbnQoKSwgdGhpcy5fY29uc3RydWN0VGFibGVz
TGF6aWx5LmV2YWx1YXRlKHRoaXMuX3Rlc3RHcm91cCwgdGhpcy5fYW5hbHlzaXNSZXN1bHRzLCB0
aGlzLl9hbmFseXNpc1VSTCwgdGhpcy5fYW5hbHlzaXNUYXNrKSk7CisgICAgfQorCisgICAgc3Rh
dGljIGdldCBwYWdlQ29udGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gW107CisgICAgfQor
CisgICAgc3RhdGljIGdldCBzdHlsZVRlbXBsYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICAnYm9keSc6IHsKKyAgICAgICAgICAgICAgICAnZm9udC1mYW1pbHknOiAn
c2Fucy1zZXJpZicsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2gxJzogeworICAgICAg
ICAgICAgICAgICdmb250LXNpemUnOiAnMS4zcmVtJywKKyAgICAgICAgICAgICAgICAnZm9udC13
ZWlnaHQnOiAnbm9ybWFsJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZW0nOiB7Cisg
ICAgICAgICAgICAgICAgJ2ZvbnQtd2VpZ2h0JzogJ2JvbGQnLAorICAgICAgICAgICAgICAgICdm
b250LXN0eWxlJzogJ25vcm1hbCcsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2NhcHRp
b24nOiB7CisgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcxLjNyZW0nLAorICAgICAgICAg
ICAgICAgICdtYXJnaW4nOiAnMXJlbSAwJywKKyAgICAgICAgICAgICAgICAndGV4dC1hbGlnbic6
ICdsZWZ0JywKKyAgICAgICAgICAgICAgICAnd2hpdGUtc3BhY2UnOiAnbm93cmFwJywKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAndGQnOiB7CisgICAgICAgICAgICAgICAgJ3BhZGRpbmcn
OiAnMC4ycmVtJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLmZpcnN0LXJvdyc6IHsK
KyAgICAgICAgICAgICAgICAnYm9yZGVyLXRvcCc6ICdzb2xpZCAxcHggI2NjYycsCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgJy5uby13cmFwJzogeworICAgICAgICAgICAgICAgICd3aGl0
ZS1zcGFjZSc6ICdub3dyYXAnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0aCc6IHsK
KyAgICAgICAgICAgICAgICAncGFkZGluZyc6ICcwLjJyZW0nLAorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICcucmVzdWx0LXRhYmxlJzogeworICAgICAgICAgICAgICAgICdtYXJnaW4tdG9w
JzogJzFyZW0nLAorICAgICAgICAgICAgICAgICd0ZXh0LWFsaWduJzogJ2NlbnRlcicsCisgICAg
ICAgICAgICAgICAgJ2JvcmRlci1jb2xsYXBzZSc6ICdjb2xsYXBzZScsCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgJy5yZXN1bHQtY2VsbCc6IHsKKyAgICAgICAgICAgICAgICAnbWluLXdp
ZHRoJzogJzIwcmVtJywKKyAgICAgICAgICAgICAgICAncG9zaXRpb24nOiAncmVsYXRpdmUnLAor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICcud29yc2UtcmVzdWx0JzogeworICAgICAgICAg
ICAgICAgICdjb2xvcic6ICcjYzMzJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLmJl
dHRlci1yZXN1bHQnOiB7CisgICAgICAgICAgICAgICAgJ2NvbG9yJzogJyMzM2MnLAorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICcuaW5zaWduaWZpY2FudC1yZXN1bHQnOiB7CisgICAgICAg
ICAgICAgICAgJ2NvbG9yJzogJyM2NjYnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICcu
YmFyLWdyYXBoLWNvbnRhaW5lcic6IHsKKyAgICAgICAgICAgICAgICAncG9zaXRpb24nOiAnYWJz
b2x1dGUnLAorICAgICAgICAgICAgICAgICdsZWZ0JzogMCwKKyAgICAgICAgICAgICAgICAndG9w
JzogMCwKKyAgICAgICAgICAgICAgICAnd2lkdGgnOiAnY2FsYygxMDAlIC0gMnB4KScsCisgICAg
ICAgICAgICAgICAgJ2hlaWdodCc6ICdjYWxjKDEwMCUgLSAycHgpJywKKyAgICAgICAgICAgICAg
ICAncGFkZGluZyc6ICcxcHgnLAorICAgICAgICAgICAgICAgICd6LWluZGV4JzogLTEsCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgJy5iYXItZ3JhcGgtcGxhY2Vob2xkZXInOiB7CisgICAg
ICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2NjYycsCisgICAgICAgICAgICAgICAg
J2hlaWdodCc6ICcxMDAlJywKKyAgICAgICAgICAgICAgICAnd2lkdGgnOiAnMHJlbScsCisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK0NvbXBvbmVudEJhc2UuZGVmaW5lRWxl
bWVudCgndGVzdC1ncm91cC1yZXN1bHQtcGFnZScsIFRlc3RHcm91cFJlc3VsdFBhZ2UpOworCisK
K2lmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykKKyAgICBtb2R1bGUuZXhwb3J0cy5U
ZXN0R3JvdXBSZXN1bHRQYWdlID0gVGVzdEdyb3VwUmVzdWx0UGFnZTsKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvdjMtbW9kZWxzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1v
ZGVscy5qcwppbmRleCBlMWIyNDljNGYxNzQ1NDlhZDA2ODliZTYwZTlmNzliNzlmN2ViZTg0Li5m
MjA4ZTg0OGYwNTYzMzUwYzNhY2I1NTFmZjg5ODJhM2M4ZmY0MjgwIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMKQEAgLTExLDYgKzExLDcgQEAg
aW1wb3J0RnJvbVYzKCdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdEYXRhTW9kZWxPYmplY3QnKTsK
IGltcG9ydEZyb21WMygnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnTGFiZWxlZE9iamVjdCcpOwog
CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9hbmFseXNpcy10YXNrLmpzJywgJ0FuYWx5c2lzVGFzaycp
OworaW1wb3J0RnJvbVYzKCdtb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qcycsICdBbmFseXNpc1Jl
c3VsdHMnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL2J1Zy5qcycsICdCdWcnKTsKIGltcG9ydEZy
b21WMygnbW9kZWxzL2J1Zy10cmFja2VyLmpzJywgJ0J1Z1RyYWNrZXInKTsKIGltcG9ydEZyb21W
MygnbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMnLCAnQnVpbGRSZXF1ZXN0Jyk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvcnVuLWFuYWx5c2lzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3J1bi1hbmFseXNpcy5qcwppbmRleCAwODFhMGQxMDRj
YmQ0MjE1MDEyYjhiNmEzZGVkYmE4OTliODkzZDllLi5hN2E4Y2Y4MzI3YjI1ZjNiYWE0M2VlYzkw
NzJiNzA5ODM2Nzg4OGFmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvcnVuLWFuYWx5c2lzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9y
dW4tYW5hbHlzaXMuanMKQEAgLTMsNyArMywxMCBAQAogY29uc3QgZnMgPSByZXF1aXJlKCdmcycp
OwogY29uc3QgcGFyc2VBcmd1bWVudHMgPSByZXF1aXJlKCcuL2pzL3BhcnNlLWFyZ3VtZW50cy5q
cycpLnBhcnNlQXJndW1lbnRzOwogY29uc3QgUmVtb3RlQVBJID0gcmVxdWlyZSgnLi9qcy9yZW1v
dGUuanMnKS5SZW1vdGVBUEk7Ci1jb25zdCBNZWFzdXJlbWVudFNldEFuYWx5emVyID0gcmVxdWly
ZSgnLi9qcy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXInKS5NZWFzdXJlbWVudFNldEFuYWx5emVy
OworY29uc3QgTWVhc3VyZW1lbnRTZXRBbmFseXplciA9IHJlcXVpcmUoJy4vanMvbWVhc3VyZW1l
bnQtc2V0LWFuYWx5emVyLmpzJykuTWVhc3VyZW1lbnRTZXRBbmFseXplcjsKK2NvbnN0IEFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyID0gcmVxdWlyZSgnLi9qcy9hbmFseXNpcy1yZXN1bHRzLW5vdGlm
aWVyLmpzJykuQW5hbHlzaXNSZXN1bHRzTm90aWZpZXI7Citjb25zdCBOb3RpZmljYXRpb25TZXJ2
aWNlID0gcmVxdWlyZSgnLi9qcy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLmpzJykuTm90aWZp
Y2F0aW9uU2VydmljZTsKK2NvbnN0IFN1YnByb2Nlc3MgPSByZXF1aXJlKCcuL2pzL3N1YnByb2Nl
c3MuanMnKS5TdWJwcm9jZXNzOwogcmVxdWlyZSgnLi9qcy92My1tb2RlbHMuanMnKTsKIGdsb2Jh
bC5Qcml2aWxlZ2VkQVBJID0gcmVxdWlyZSgnLi9qcy9wcml2aWxlZ2VkLWFwaS5qcycpLlByaXZp
bGVnZWRBUEk7CiAKQEAgLTExLDYgKzE0LDcgQEAgZnVuY3Rpb24gbWFpbihhcmd2KQogewogICAg
IGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3VtZW50cyhhcmd2LCBbCiAgICAgICAgIHtuYW1lOiAn
LS1zZXJ2ZXItY29uZmlnLWpzb24nLCByZXF1aXJlZDogdHJ1ZX0sCisgICAgICAgIHtuYW1lOiAn
LS1ub3RpZmljYXRpb24tY29uZmlnLWpzb24nLCByZXF1aXJlZDogdHJ1ZX0sCiAgICAgICAgIHtu
YW1lOiAnLS1hbmFseXNpcy1yYW5nZS1pbi1kYXlzJywgdHlwZTogcGFyc2VGbG9hdCwgZGVmYXVs
dDogMTB9LAogICAgICAgICB7bmFtZTogJy0tc2Vjb25kcy10by1zbGVlcCcsIHR5cGU6IHBhcnNl
RmxvYXQsIGRlZmF1bHQ6IDEyMDB9LAogICAgIF0pOwpAQCAtMjYsNiArMzAsNyBAQCBhc3luYyBm
dW5jdGlvbiBhbmFseXNpc0xvb3Aob3B0aW9ucykKICAgICBsZXQgc2Vjb25kc1RvU2xlZXA7CiAg
ICAgdHJ5IHsKICAgICAgICAgY29uc3Qgc2VydmVyQ29uZmlnID0gSlNPTi5wYXJzZShmcy5yZWFk
RmlsZVN5bmMob3B0aW9uc1snLS1zZXJ2ZXItY29uZmlnLWpzb24nXSwgJ3V0Zi04JykpOworICAg
ICAgICBjb25zdCBub3RpZmljYXRpb25Db25maWcgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3lu
YyhvcHRpb25zWyctLW5vdGlmaWNhdGlvbi1jb25maWctanNvbiddLCAndXRmLTgnKSk7CiAgICAg
ICAgIGNvbnN0IGFuYWx5c2lzUmFuZ2VJbkRheXMgPSBvcHRpb25zWyctLWFuYWx5c2lzLXJhbmdl
LWluLWRheXMnXTsKICAgICAgICAgc2Vjb25kc1RvU2xlZXAgPSBvcHRpb25zWyctLXNlY29uZHMt
dG8tc2xlZXAnXTsKICAgICAgICAgZ2xvYmFsLlJlbW90ZUFQSSA9IG5ldyBSZW1vdGVBUEkoc2Vy
dmVyQ29uZmlnLnNlcnZlcik7CkBAIC00MCw2ICs0NSwxNSBAQCBhc3luYyBmdW5jdGlvbiBhbmFs
eXNpc0xvb3Aob3B0aW9ucykKIAogICAgICAgICBjb25zb2xlLmxvZyhgU3RhcnQgYW5hbHl6aW5n
IGxhc3QgJHthbmFseXNpc1JhbmdlSW5EYXlzfSBkYXlzIG1lYXN1cmVtZW50IHNldHMuYCk7CiAg
ICAgICAgIGF3YWl0IGFuYWx5emVyLmFuYWx5emVPbmNlKCk7CisKKyAgICAgICAgY29uc3QgdGVz
dEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEFsbFdpdGhOb3RpZmljYXRpb25SZWFkeSgp
OworCisgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblJlbW92ZUFQSSA9IG5ldyBSZW1vdGVBUEko
bm90aWZpY2F0aW9uQ29uZmlnLm5vdGlmaWNhdGlvblNlcnZlckNvbmZpZyk7CisgICAgICAgIGNv
bnN0IG5vdGlmaWNhdGlvbk1lc3NhZ2VDb25maWcgPSBub3RpZmljYXRpb25Db25maWcubm90aWZp
Y2F0aW9uTWVzc2FnZUNvbmZpZzsKKyAgICAgICAgY29uc3Qgbm90aWZpZXIgPSBuZXcgQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIobm90aWZpY2F0aW9uTWVzc2FnZUNvbmZpZy5tZXNzYWdlVGVtcGxh
dGUsIG5vdGlmaWNhdGlvbk1lc3NhZ2VDb25maWcuZmluYWxpemVTY3JpcHQsCisgICAgICAgICAg
ICBub3RpZmljYXRpb25NZXNzYWdlQ29uZmlnLm1lc3NhZ2VDb25zdHJ1Y3Rpb25SdWxlcywgbm90
aWZpY2F0aW9uUmVtb3ZlQVBJLCBub3RpZmljYXRpb25Db25maWcubm90aWZpY2F0aW9uU2VydmVy
Q29uZmlnLnBhdGgsIG5ldyBTdWJwcm9jZXNzKTsKKworICAgICAgICBhd2FpdCBub3RpZmllci5z
ZW5kTm90aWZpY2F0aW9uc0ZvclRlc3RHcm91cHModGVzdEdyb3Vwcyk7CiAgICAgfSBjYXRjaChl
cnJvcikgewogICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgYW5hbHl6ZSBtZWFzdXJlbWVu
dCBzZXRzIGR1ZSB0byAke2Vycm9yfWApOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXItdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1bHRz
LW5vdGlmaWVyLXRlc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NWJlZGU3OTliOTM1ZmU1NzVkZTk5ZmQ2
ZDFhZjEzOTg2YWMyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLXRlc3RzLmpzCkBAIC0wLDAg
KzEsOTcgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0
Jyk7Citjb25zdCBNb2NrUmVtb3RlQVBJID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1yZW1v
dGUtYXBpLmpzJykuTW9ja1JlbW90ZUFQSTsKK2NvbnN0IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVy
ID0gcmVxdWlyZSgnLi4vdG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci5qcycpLkFu
YWx5c2lzUmVzdWx0c05vdGlmaWVyOworY29uc3QgYXNzZXJ0VGhyb3dzID0gcmVxdWlyZSgnLi4v
c2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucycpLmFzc2VydFRocm93czsK
KworZGVzY3JpYmUoJ0FuYWx5c2lzUmVzdWx0c05vdGlmaWVyJywgKCkgPT4geworICAgIGRlc2Ny
aWJlKCdfbWF0Y2hlc1J1bGUnLCAoKSA9PiB7CisKKyAgICAgICAgY29uc3QgdHJ1bmtNYWNCb29r
ID0gJ1RydW5rIE1hY0Jvb2snOworICAgICAgICBjb25zdCB0cnVua01hY0Jvb2tQcm8gPSAnVHJ1
bmsgTWFjQm9vayBQcm8nOworICAgICAgICBjb25zdCB0cnVua01hY0Jvb2tBaXIgPSAnVHJ1bmsg
TWFjQm9vayBBaXInOworICAgICAgICBjb25zdCBzcGVlZG9tZXRlciA9ICdzcGVlZG9tZXRlcic7
CisgICAgICAgIGNvbnN0IHNwZWVkb21ldGVyMiA9ICdzcGVlZG9tZXRlci0yJzsKKyAgICAgICAg
Y29uc3QgamV0U3RyZWFtID0gJ0pldFN0cmVhbSc7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1
cm4gYSBncm91cCBvZiBtYXRjaGluZyBmdW5jdGlvbiBiYXNlZCBvbiBjb25maWd1cmF0aW9uJywg
KCkgPT4geworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9t
YXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgW3RydW5rTWFjQm9vaywgdHJ1
bmtNYWNCb29rUHJvXSwgW3NwZWVkb21ldGVyLCBzcGVlZG9tZXRlcjJdKSk7CisgICAgICAgICAg
ICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFj
Qm9va1Bybywgc3BlZWRvbWV0ZXIsIFt0cnVua01hY0Jvb2ssIHRydW5rTWFjQm9va1Byb10sIFtz
cGVlZG9tZXRlciwgc3BlZWRvbWV0ZXIyXSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21l
dGVyMiwgW3RydW5rTWFjQm9vaywgdHJ1bmtNYWNCb29rUHJvXSwgW3NwZWVkb21ldGVyLCBzcGVl
ZG9tZXRlcjJdKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlm
aWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIGpldFN0cmVhbSwgW3RydW5rTWFjQm9vaywg
dHJ1bmtNYWNCb29rUHJvXSwgW3NwZWVkb21ldGVyLCBzcGVlZG9tZXRlcjJdKSk7CisgICAgICAg
ICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVu
a01hY0Jvb2tBaXIsIHNwZWVkb21ldGVyLCBbdHJ1bmtNYWNCb29rLCB0cnVua01hY0Jvb2tQcm9d
LCBbc3BlZWRvbWV0ZXIsIHNwZWVkb21ldGVyMl0pKTsKKyAgICAgICAgICAgIGFzc2VydC5vaygh
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va0FpciwgamV0
U3RyZWFtLCBbdHJ1bmtNYWNCb29rLCB0cnVua01hY0Jvb2tQcm9dLCBbc3BlZWRvbWV0ZXIsIHNw
ZWVkb21ldGVyMl0pKTsKKworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlciwgbnVsbCwgW2pl
dFN0cmVhbV0pKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCBudWxsLCBbamV0U3Ry
ZWFtXSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5f
bWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgbnVsbCwgW2pldFN0cmVh
bV0pKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21h
dGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCBudWxsLCBbamV0U3RyZWFt
XSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRj
aGVzUnVsZSh0cnVua01hY0Jvb2ssIGpldFN0cmVhbSwgbnVsbCwgW2pldFN0cmVhbV0pKTsKKyAg
ICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUo
dHJ1bmtNYWNCb29rUHJvLCBqZXRTdHJlYW0sIG51bGwsIFtqZXRTdHJlYW1dKSk7CisgICAgICAg
ICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9va0FpciwgamV0U3RyZWFtLCBudWxsLCBbamV0U3RyZWFtXSkpOworCisgICAgICAgICAg
ICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01h
Y0Jvb2tBaXIsIGpldFN0cmVhbSwgbnVsbCwgbnVsbCkpOworICAgICAgICB9KTsKKyAgICB9KTsK
KworICAgIGRlc2NyaWJlKCdfYXBwbHlVcGRhdGUnLCAoKSA9PiB7CisgICAgICAgIGl0KCdzaG91
bGQgc2V0IHZhbHVlIGRpcmVjdGx5IGlmIGtleSBkb2VzIG5vdCBleGlzdCBpbiBhbm90aGVyIG9i
amVjdCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG1lcmdlZCA9IEFuYWx5c2lzUmVzdWx0
c05vdGlmaWVyLl9hcHBseVVwZGF0ZSh7YTogMX0sIHtiOiAyfSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG1lcmdlZCwge2E6IDEsIGI6IDJ9KTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoJ3Nob3VsZCBjb25jYXRlbmF0ZSBhcnJheXMgaWYgYm90aCBhcmUgYXJyYXknLCAoKSA9
PiB7CisgICAgICAgICAgICBjb25zdCBtZXJnZWQgPSBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5f
YXBwbHlVcGRhdGUoe2E6IFsxXX0sIHthOiBbMl19KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwobWVyZ2VkLCB7YTogWzEsIDJdfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdz
aG91bGQgYWRkIHRvIHRoZSBhcnJheSBpZiBvbmx5IG9uZSBzaWRlIGlzIGFycmF5JywgKCkgPT4g
eworICAgICAgICAgICAgY29uc3QgbWVyZ2VkID0gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX2Fw
cGx5VXBkYXRlKHthOiBbMV0sIGI6IDF9LCB7YTogMiwgYjogWzJdfSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG1lcmdlZCwge2E6IFsxLCAyXSwgYjogWzEsIDJdfSk7CisgICAgICAg
IH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbWVyZ2UgcmVjdXJzaXZlbHknLCAoKSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCBtZXJnZWQgPSBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fYXBwbHlV
cGRhdGUoe2E6IHtiOiAxfX0sIHthOiB7YjogWzJdfX0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChtZXJnZWQsIHthOiB7YjogWzEsIDJdfX0pOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgnc2hvdWxkIG1lcmdlIHZhbHVlcyBpbnRvIGFycmF5IGlmIG9uZSBvZiB2YWx1ZSB3aXRo
IHNhbWUga2V5IGlzIG9uZSBvZiBmb2xsb3cgcHJpbWl0aXZlIHR5cGVzOiBudW1iZXIsIHN0cmlu
ZyBhbmQgYm9vbGVhbicsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG1lcmdlZCA9IEFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9hcHBseVVwZGF0ZSh7YTogMSwgYjogImEiLCBjOiAxLCBkOiB0
cnVlLCBlOiB7fX0sIHthOiAyLCBiOiAiYiIsIGM6ICJiIiwgZDogMiwgZTogMX0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChtZXJnZWQsIHthOiBbMSwgMl0sIGI6IFsiYSIsICJiIl0s
IGM6IFsxLCAiYiJdLCBkOiBbdHJ1ZSwgMl0sIGU6IFt7fSwgMV19KTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CisKKyAgICBkZXNjcmliZSgnX3NlbmROb3RpZmljYXRpb24nLCAoKSA9PiB7CisgICAg
ICAgIGJlZm9yZUVhY2goKCkgPT4geworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgn
aHR0cDovL3NlbmQtbm90aWZpY2F0aW9uLndlYmtpdC5vcmcvJyk7CisgICAgICAgIH0pOworCisg
ICAgICAgIGl0KCdzZW5kIGEgbm90aWZpY2F0aW9uIHN1Y2Nlc3NmdWxseScsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IG5vdGlmaWVyID0gbmV3IEFuYWx5c2lzUmVzdWx0c05vdGlm
aWVyKG51bGwsIG51bGwsIG51bGwsIE1vY2tSZW1vdGVBUEksICdzZW5kLW5vdGlmaWNhdGlvbicp
OworICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IG5vdGlmaWVyLl9zZW5kTm90aWZpY2F0aW9u
KCd0ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5kYXRhLCAndGVz
dCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCAnc2VuZC1ub3RpZmlj
YXRpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0Lm1ldGhvZCwgJ1BPU1Qn
KTsKKworICAgICAgICAgICAgcmVxdWVzdC5yZXNvbHZlKCdvaycpOworICAgICAgICAgICAgY29u
c3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHQsICdvaycpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGZhaWwgaWYgbm90
aWZpY2F0aW9uIHJlcXVlc3QgZ2V0cyByZWplY3RlZCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IG5vdGlmaWVyID0gbmV3IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyKG51bGwsIG51
bGwsIG51bGwsIE1vY2tSZW1vdGVBUEksICdzZW5kLW5vdGlmaWNhdGlvbicpOworICAgICAgICAg
ICAgY29uc3QgcHJvbWlzZSA9IG5vdGlmaWVyLl9zZW5kTm90aWZpY2F0aW9uKCd0ZXN0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF07
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5kYXRhLCAndGVzdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCAnc2VuZC1ub3RpZmljYXRpb24nKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0Lm1ldGhvZCwgJ1BPU1QnKTsKKworICAgICAg
ICAgICAgcmVxdWVzdC5yZWplY3QoJ3VuYXZhaWxhYmxlJyk7CisgICAgICAgICAgICBhc3NlcnRU
aHJvd3MoJ3VuYXZhaWxhYmxlJywgKCkgPT4gcHJvbWlzZSk7CisgICAgICAgIH0pOworICAgIH0p
OworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtdGFzay10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXRhc2stdGVzdHMuanMKaW5k
ZXggMDA4ZGYzZjhhNWIwNjc2ZGIwZDE5MjRhM2E1NWI0NTNlMDkzNDc4OC4uZDg0NWM5MTBiYTc1
ZWNlMzQ5YWY0ZTM0ZDEyYzQ0M2Y0YTI0NzEwMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtdGFzay10ZXN0cy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC0z
MDQsNyArMzA0LDcgQEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFzaycsICgpID0+IHsKIAogICAgICAg
ICBpdCgnc2hvdWxkIGNyZWF0ZSBhbmFseXNpcyB0YXNrIHdpdGggY29uZmlybWluZyByZXBldGl0
aW9uIGNvdW50IHNwZWNpZmllZCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtz
dGFydFBvaW50LCBlbmRQb2ludF0gPSBtb2NrU3RhcnRBbmRFbmRQb2ludHMoKTsKLSAgICAgICAg
ICAgIEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2ludCwg
J0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0n
LCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0LCB0cnVlKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2Vu
Jyk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKQEAgLTMxNSw3ICszMTUsMjkg
QEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFzaycsICgpID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1sxXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2snKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCBy
ZXBldGl0aW9uQ291bnQ6IDQsCisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzFdLmRhdGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwgbmVlZHNOb3Rp
ZmljYXRpb246IHRydWUsCisgICAgICAgICAgICAgICAgc3RhcnRSdW46IDEsIGVuZFJ1bjogMiwg
dGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLCB0b2tlbjogJ2FiYycsIHJldmlzaW9uU2V0czogWwor
ICAgICAgICAgICAgICAgICAgICB7JzExJzoge3JldmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTEn
LCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAnMjInOiB7cmV2aXNpb246ICdpb3MtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51
bGwsIHBhdGNoOiBudWxsfX0sCisgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2aXNpb246
ICd3ZWJraXQtcmV2aXNpb24tMicsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICcyMic6IHsgcmV2aXNpb246ICdpb3MtcmV2aXNpb24t
MicsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX1dfQorICAgICAgICAgICAgKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYW5hbHlzaXMgdGFzayBh
bmQgdGVzdCBncm91cHMgd2l0aCAibmVlZHNOb3RpZmljYXRpb24iIHNldCB0byBmYWxzZSBpZiBz
cGVjaWZpZWQgaW4gY3JlYXRpb24nLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBb
c3RhcnRQb2ludCwgZW5kUG9pbnRdID0gbW9ja1N0YXJ0QW5kRW5kUG9pbnRzKCk7CisgICAgICAg
ICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwgZW5kUG9pbnQs
ICdDb25maXJtJywgNCwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAn
L3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYtdG9rZW4nKTsKKyAgICAgICAgICAgIHJlcXVl
c3RzWzBdLnJlc29sdmUoeworICAgICAgICAgICAgICAgIHRva2VuOiAnYWJjJywKKyAgICAgICAg
ICAgICAgICBleHBpcmF0aW9uOiBEYXRlLm5vdygpICsgMzYwMCAqIDEwMDAsCisgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzaycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzFdLmRhdGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwgbmVlZHNOb3Rp
ZmljYXRpb246IGZhbHNlLAogICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDIs
IHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgdG9rZW46ICdhYmMnLCByZXZpc2lvblNldHM6IFsK
ICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dlYmtpdC1yZXZpc2lvbi0x
Jywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgJzIyJzoge3JldmlzaW9uOiAnaW9zLXJldmlzaW9uLTEnLCBvd25lclJldmlzaW9uOiBu
dWxsLCBwYXRjaDogbnVsbH19LApAQCAtMzI2LDcgKzM0OCw3IEBAIGRlc2NyaWJlKCdBbmFseXNp
c1Rhc2snLCAoKSA9PiB7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzeW5jIHRoZSBuZXcgYW5hbHlz
aXMgdGFzayBzdGF0dXMgb25jZSBpdCBpcyBjcmVhdGVkJywgYXN5bmMgKCkgPT4gewogICAgICAg
ICAgICAgY29uc3QgW3N0YXJ0UG9pbnQsIGVuZFBvaW50XSA9IG1vY2tTdGFydEFuZEVuZFBvaW50
cygpOwotICAgICAgICAgICAgY29uc3QgY3JlYXRpbmdQcm9taXNlID0gQW5hbHlzaXNUYXNrLmNy
ZWF0ZSgnY29uZmlybScsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29uZmlybScsIDQpOworICAg
ICAgICAgICAgY29uc3QgY3JlYXRpbmdQcm9taXNlID0gQW5hbHlzaXNUYXNrLmNyZWF0ZSgnY29u
ZmlybScsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29uZmlybScsIDQsIHRydWUpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYt
dG9rZW4nKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoewpAQCAtMzM3LDcgKzM1
OSw3IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCAoKSA9PiB7CiAgICAgICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNr
Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdjb25maXJt
JywgcmVwZXRpdGlvbkNvdW50OiA0LAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDQsIG5lZWRz
Tm90aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiAxLCBlbmRSdW46
IDIsIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgdG9rZW46ICdhYmMnLCByZXZpc2lvblNldHM6
IFsKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dlYmtpdC1yZXZpc2lv
bi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LAogICAgICAgICAgICAgICAg
ICAgICAgICAgJzIyJzoge3JldmlzaW9uOiAnaW9zLXJldmlzaW9uLTEnLCBvd25lclJldmlzaW9u
OiBudWxsLCBwYXRjaDogbnVsbH19LApAQCAtMzg3LDcgKzQwOSw3IEBAIGRlc2NyaWJlKCdBbmFs
eXNpc1Rhc2snLCAoKSA9PiB7CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gYW4gcmVqZWN0
ZWQgcHJvbWlzZSB3aGVuIGFuYWx5c2lzIHRhc2sgY3JlYXRpb24gZmFpbGVkJywgYXN5bmMgKCkg
PT4gewogICAgICAgICAgICAgY29uc3QgW3N0YXJ0UG9pbnQsIGVuZFBvaW50XSA9IG1vY2tTdGFy
dEFuZEVuZFBvaW50cygpOwotICAgICAgICAgICAgY29uc3QgY3JlYXRpbmdQcm9taXNlID0gQW5h
bHlzaXNUYXNrLmNyZWF0ZSgnY29uZmlybScsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29uZmly
bScsIDQpOworICAgICAgICAgICAgY29uc3QgY3JlYXRpbmdQcm9taXNlID0gQW5hbHlzaXNUYXNr
LmNyZWF0ZSgnY29uZmlybScsIHN0YXJ0UG9pbnQsIGVuZFBvaW50LCAnQ29uZmlybScsIDQsIHRy
dWUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dl
bmVyYXRlLWNzcmYtdG9rZW4nKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoewpA
QCAtMzk4LDcgKzQyMCw3IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCAoKSA9PiB7CiAgICAg
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1h
bmFseXNpcy10YXNrJyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25h
bWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiA0LAorICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291
bnQ6IDQsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHN0YXJ0UnVu
OiAxLCBlbmRSdW46IDIsIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgdG9rZW46ICdhYmMnLCBy
ZXZpc2lvblNldHM6IFsKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dl
YmtpdC1yZXZpc2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgJzIyJzoge3JldmlzaW9uOiAnaW9zLXJldmlzaW9uLTEnLCBv
d25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19LApAQCAtNDMyLDEwICs0NTQsMTAgQEAg
ZGVzY3JpYmUoJ0FuYWx5c2lzVGFzaycsICgpID0+IHsKIAogICAgICAgICBpdCgnc2hvdWxkIGNy
ZWF0ZSBhbmFseXNpcyB0YXNrIHdpdGggY29uZmlybWluZyByZXBldGl0aW9uIGNvdW50IHNwZWNp
ZmllZCcsICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtzdGFydFBvaW50LCBlbmRQb2ludF0g
PSBtb2NrU3RhcnRBbmRFbmRQb2ludHMoKTsKLSAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVh
dGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0KTsKKyAgICAg
ICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2lu
dCwgJ0NvbmZpcm0nLCA0LCB0cnVlKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1swXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2snKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0
aW9uQ291bnQ6IDQsCisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRh
dGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwgbmVlZHNOb3RpZmljYXRp
b246IHRydWUsCiAgICAgICAgICAgICAgICAgc3RhcnRSdW46IDEsIGVuZFJ1bjogMiwgc2xhdmVO
YW1lOiAnd29ya2VyJywgc2xhdmVQYXNzd29yZDogJ3Bhc3N3b3JkJywKICAgICAgICAgICAgICAg
ICB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHJldmlzaW9uU2V0czogWwogICAgICAgICAgICAg
ICAgICAgICB7JzExJzoge3JldmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTEnLCBvd25lclJldmlz
aW9uOiBudWxsLCBwYXRjaDogbnVsbH0sCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXIt
dGVzdHMuanMKaW5kZXggNmE4OWYzNTMyNDQwZDMyNjkzNzhhMjdiODBhMGMzY2M0YzVkZjEzYy4u
YWE1MDA4MWQwYzlmYzVmNmVkYmFhMDY3NTUwNGEzODU4MTU3Mjc1NCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVy
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1
cmVtZW50LXNldC1hbmFseXplci10ZXN0cy5qcwpAQCAtMTg5LDYgKzE4OSw3IEBAIGRlc2NyaWJl
KCdNZWFzdXJlbWVudFNldEFuYWx5emVyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGVuZFJ1
bjogNjQ0MywKICAgICAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IDQsCiAgICAgICAgICAg
ICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLAorICAgICAgICAgICAgICAgIG5lZWRzTm90
aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czogW3snMTEnOiB7
cmV2aXNpb246IDM1LCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19LAogICAgICAg
ICAgICAgICAgICAgICB7JzExJzoge3JldmlzaW9uOiA0NCwgb3duZXJSZXZpc2lvbjogbnVsbCwg
cGF0Y2g6IG51bGx9fV0KICAgICAgICAgICAgIH0pOwpAQCAtMjQyLDYgKzI0Myw3IEBAIGRlc2Ny
aWJlKCdNZWFzdXJlbWVudFNldEFuYWx5emVyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGVu
ZFJ1bjogNjQ0MywKICAgICAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IDQsCiAgICAgICAg
ICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLAorICAgICAgICAgICAgICAgIG5lZWRz
Tm90aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czogW3snMTEn
OiB7cmV2aXNpb246IDM1LCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19LAogICAg
ICAgICAgICAgICAgICAgICB7JzExJzoge3JldmlzaW9uOiA0NCwgb3duZXJSZXZpc2lvbjogbnVs
bCwgcGF0Y2g6IG51bGx9fV0KICAgICAgICAgICAgIH0pOwpAQCAtMzg2LDYgKzM4OCw3IEBAIGRl
c2NyaWJlKCdNZWFzdXJlbWVudFNldEFuYWx5emVyJywgKCkgPT4gewogICAgICAgICAgICAgICAg
IGVuZFJ1bjogNjQ0OCwKICAgICAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IDQsCiAgICAg
ICAgICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLAorICAgICAgICAgICAgICAgIG5l
ZWRzTm90aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czogW3sn
MTEnOiB7cmV2aXNpb246IDQwLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19LAog
ICAgICAgICAgICAgICAgICAgICB7JzExJzoge3JldmlzaW9uOiA0OSwgb3duZXJSZXZpc2lvbjog
bnVsbCwgcGF0Y2g6IG51bGx9fV0KICAgICAgICAgICAgIH0pOwpAQCAtNDcyLDYgKzQ3NSw3IEBA
IGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldEFuYWx5emVyJywgKCkgPT4gewogICAgICAgICAgICAg
ICAgIGVuZFJ1bjogNjQwNywKICAgICAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IDQsCiAg
ICAgICAgICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLAorICAgICAgICAgICAgICAg
IG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czog
W3snMTEnOiB7cmV2aXNpb246IDMsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX0s
CiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2aXNpb246IDgsIG93bmVyUmV2aXNpb246
IG51bGwsIHBhdGNoOiBudWxsfX1dCiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGku
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay1y
ZW1vdGUtYXBpLmpzCmluZGV4IGJlNDNmZWViYmJhNzM1Y2Y4NTQ3YzFiMjY4NWUzNmZjMWQ5NTc2
NjAuLjJmNDUxZTRhYmNhMDBhY2NhMWQ3YWUyMTNiNzJhMzdjNzQzZjFlZTEgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXJlbW90
ZS1hcGkuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3Vy
Y2VzL21vY2stcmVtb3RlLWFwaS5qcwpAQCAtNjksMTQgKzY5LDE0IEBAIHZhciBNb2NrUmVtb3Rl
QVBJID0gewogICAgICAgICAgICAgZ2xvYmFsLlJlbW90ZUFQSSA9IE1vY2tSZW1vdGVBUEk7CiAg
ICAgICAgICAgICBvcmlnaW5hbFByaXZpbGVnZWRBUEkgPSBnbG9iYWwuUHJpdmlsZWdlZEFQSTsK
ICAgICAgICAgICAgIGdsb2JhbC5Qcml2aWxlZ2VkQVBJID0gcHJpdmlsZWdlZEFQSTsKLSAgICAg
ICAgICAgIGlmIChwcml2aWxlZ2VkQVBJLl90b2tlbikKKyAgICAgICAgICAgIGlmIChwcml2aWxl
Z2VkQVBJICYmIHByaXZpbGVnZWRBUEkuX3Rva2VuKQogICAgICAgICAgICAgICAgIHByaXZpbGVn
ZWRBUEkuX3Rva2VuID0gbnVsbDsKICAgICAgICAgfSk7CiAKICAgICAgICAgYWZ0ZXJFYWNoKCgp
ID0+IHsKICAgICAgICAgICAgIGdsb2JhbC5SZW1vdGVBUEkgPSBvcmlnaW5hbFJlbW90ZUFQSTsK
ICAgICAgICAgICAgIGdsb2JhbC5Qcml2aWxlZ2VkQVBJID0gb3JpZ2luYWxQcml2aWxlZ2VkQVBJ
OwotICAgICAgICAgICAgaWYgKHByaXZpbGVnZWRBUEkuX3Rva2VuKQorICAgICAgICAgICAgaWYg
KHByaXZpbGVnZWRBUEkgJiYgcHJpdmlsZWdlZEFQSS5fdG9rZW4pCiAgICAgICAgICAgICAgICAg
cHJpdmlsZWdlZEFQSS5fdG9rZW4gPSBudWxsOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5q
cwppbmRleCBkZTU5NjUyNTEyYzM4Yjg5OTIzYjk1ZmViZmUyYzVmMDdlYWQwY2ViLi5mYjg5MTYy
ZTJhOGM5N2ZlMGVkMjY0NDUxMzIxNTJjMTBlMDY3MGI5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qcwpAQCAt
MywxMCArMywxMSBAQAogY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CiByZXF1aXJl
KCcuLi90b29scy9qcy92My1tb2RlbHMuanMnKTsKIGNvbnN0IEJyb3dzZXJQcml2aWxlZ2VkQVBJ
ID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL3ByaXZpbGVnZWQtYXBpLmpzJykuUHJpdmlsZWdlZEFQ
STsKK2NvbnN0IE5vZGVQcml2aWxlZ2VkQVBJID0gcmVxdWlyZSgnLi4vdG9vbHMvanMvcHJpdmls
ZWdlZC1hcGkuanMnKS5Qcml2aWxlZ2VkQVBJOwogY29uc3QgTW9ja01vZGVscyA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzJykuTW9ja01vZGVsczsKIGNvbnN0IE1vY2tS
ZW1vdGVBUEkgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMnKS5Nb2Nr
UmVtb3RlQVBJOwogCi1mdW5jdGlvbiBzYW1wbGVUZXN0R3JvdXAoKSB7CitmdW5jdGlvbiBzYW1w
bGVUZXN0R3JvdXAobmVlZHNOb3RpZmljYXRpb249dHJ1ZSkgewogICAgIHJldHVybiB7CiAgICAg
ICAgICJ0ZXN0R3JvdXBzIjogW3sKICAgICAgICAgICAgICJpZCI6ICIyMTI4IiwKQEAgLTE2LDYg
KzE3LDcgQEAgZnVuY3Rpb24gc2FtcGxlVGVzdEdyb3VwKCkgewogICAgICAgICAgICAgImF1dGhv
ciI6ICJybml3YSIsCiAgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMCwKICAg
ICAgICAgICAgICJoaWRkZW4iOiBmYWxzZSwKKyAgICAgICAgICAgICJuZWVkc05vdGlmaWNhdGlv
biI6IG5lZWRzTm90aWZpY2F0aW9uLAogICAgICAgICAgICAgImJ1aWxkUmVxdWVzdHMiOiBbIjE2
OTg1IiwgIjE2OTg2IiwgIjE2OTg3IiwgIjE2OTg4IiwgIjE2OTg5IiwgIjE2OTkwIiwgIjE2OTkx
IiwgIjE2OTkyIl0sCiAgICAgICAgICAgICAiY29tbWl0U2V0cyI6IFsiNDI1NSIsICI0MjU2Il0s
CiAgICAgICAgIH1dLApAQCAtMTM3LDYgKzEzOSw0MSBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGRlc2NyaWJlKCduZWVk
c05vdGlmaWNhdGlvbicsICgpID0+IHsKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBNb2NrUmVt
b3RlQVBJLmluamVjdCgnaHR0cHM6Ly9wZXJmLndlYmtpdC5vcmcnLCBOb2RlUHJpdmlsZWdlZEFQ
SSk7CisgICAgICAgIGJlZm9yZUVhY2goKCkgPT4geworICAgICAgICAgICAgUHJpdmlsZWdlZEFQ
SS5jb25maWd1cmUoJ3Rlc3QnLCAncGFzc3dvcmQnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aXQoJ3Nob3VsZCB1cGRhdGUgbm90aWZpZWQgYXV0aG9yIGZsYWcnLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCBmZXRjaFByb21pc2UgPSBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKDEz
NzYpOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVUZXN0R3JvdXAoKSk7
CisgICAgICAgICAgICBsZXQgdGVzdEdyb3VwcyA9IGF3YWl0IGZldGNoUHJvbWlzZTsKKyAgICAg
ICAgICAgIGFzc2VydCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBsZXQgdGVz
dEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbnN0IHVwZGF0
ZVByb21pc2UgPSB0ZXN0R3JvdXAuZGlkU2VuZE5vdGlmaWNhdGlvbigpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcpOwor
ICAgICAgICAgICAgZGVsZXRlIHJlcXVlc3RzWzFdLmRhdGEubm90aWZpY2F0aW9uU2VudEF0Owor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sxXS5kYXRhLCB7Z3JvdXA6ICcy
MTI4JywgbmVlZHNOb3RpZmljYXRpb246IGZhbHNlLCBzbGF2ZU5hbWU6ICd0ZXN0Jywgc2xhdmVQ
YXNzd29yZDogJ3Bhc3N3b3JkJ30pOworICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSgp
OworCisgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3Rlc3QtZ3JvdXBzLzIxMjgnKTsKKyAg
ICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUZXN0R3JvdXAgPSBzYW1wbGVUZXN0R3JvdXAoZmFsc2Up
OworICAgICAgICAgICAgcmVxdWVzdHNbMl0ucmVzb2x2ZSh1cGRhdGVkVGVzdEdyb3VwKTsKKwor
ICAgICAgICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0IHVwZGF0ZVByb21pc2U7CisgICAgICAgICAg
ICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CisgICAgICAgIH0pOworICAgIH0p
OworCiAgICAgZGVzY3JpYmUoJ19jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIHRlc3QgZ3JvdXBzJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgdmFyIGdyb3VwcyA9IFRlc3RHcm91cC5fY3JlYXRlTW9k
ZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzKHNhbXBsZVRlc3RHcm91cCgpKTsKQEAgLTE0Nyw2ICsx
ODQsNyBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIDIxMjgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGdy
b3VwLmNyZWF0ZWRBdCgpIGluc3RhbmNlb2YgRGF0ZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAuaXNIaWRkZW4oKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KCtncm91cC5jcmVhdGVkQXQoKSwgMTQ1ODY4ODUxNDAwMCk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIHNhbXBsZVRlc3RHcm91cCgpWydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoIC8gMik7CiAgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuaGFzUGVu
ZGluZygpKTsKQEAgLTM2MSw3ICszOTksNyBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkoTW9ja01v
ZGVscy53ZWJraXQsICcxOTE2MjMnKTsKICAgICAgICAgICAgIHNldDIuc2V0UmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KE1vY2tNb2RlbHMuc2hhcmVkUmVwb3NpdG9yeSwgJzgwMjI5Jyk7CiAKLSAgICAg
ICAgICAgIGNvbnN0IHByb21pc2UgPSBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ3NvbWUtdGFz
aycsIE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0LCAnc29tZS1n
cm91cCcsIDQsIFtzZXQxLCBzZXQyXSk7CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gVGVz
dEdyb3VwLmNyZWF0ZVdpdGhUYXNrKCdzb21lLXRhc2snLCBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9y
bSwgTW9ja01vZGVscy5zb21lVGVzdCwgJ3NvbWUtZ3JvdXAnLCA0LCBbc2V0MSwgc2V0Ml0sIHRy
dWUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dl
bmVyYXRlLWNzcmYtdG9rZW4nKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoewpA
QCAtMzcxLDYgKzQwOSwxMCBAQCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXF1ZXN0c1syXS5kYXRhLCB7dGFza05hbWU6ICdzb21lLXRhc2snLCBuYW1l
OiAnc29tZS1ncm91cCcsIHBsYXRmb3JtOiA2NSwgdGVzdDogMSwKKyAgICAgICAgICAgICAgICBy
ZXBldGl0aW9uQ291bnQ6IDQsIHJldmlzaW9uU2V0czogW3snMTEnOiB7b3duZXJSZXZpc2lvbjog
bnVsbCwgcGF0Y2g6IG51bGwsIHJldmlzaW9uOiAiMTkxNjIyIn0sCisgICAgICAgICAgICAgICAg
ICAgICcxNic6IHtvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbCwgcmV2aXNpb246ICI4
MDIyOSJ9fSwgeycxMSc6IHtvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbCwgcmV2aXNp
b246ICIxOTE2MjMifSwKKyAgICAgICAgICAgICAgICAgICAgJzE2Jzoge293bmVyUmV2aXNpb246
IG51bGwsIHBhdGNoOiBudWxsLCByZXZpc2lvbjogIjgwMjI5In19XSwgbmVlZHNOb3RpZmljYXRp
b246IHRydWUsIHRva2VuOiAnYWJjJ30pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzJdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcpOwogICAgICAg
ICAgICAgcmVxdWVzdHNbMl0ucmVzb2x2ZSh7CiAgICAgICAgICAgICAgICAgdGFza0lkOiAxMjMs
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342101</attachid>
            <date>2018-06-06 17:58:32 -0700</date>
            <delta_ts>2018-06-06 21:12:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184340-20180606175832.patch</filename>
            <type>text/plain</type>
            <size>131168</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTI2CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBjOTU0M2ZmMDhkY2Y5ZTNjODVhMTcwZjk1ZTJiNGVlM2U4ODYzYzA2Li4yM2Y2MmU4MzIx
YzhjMWY0ZjVmZDk1ZDJlODNkOWFkNzM4ZTc1NjBhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMjUgQEAKKzIwMTgtMDUtMjQgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgc2VuZGluZyBub3RpZmljYXRpb24gZmVhdHVy
ZSB3aGVuIHRlc3QgZ3JvdXAgZmluaXNoZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCAndGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicg
ZmlsZWQgdG8gJ2FuYWx5c2lzX3Rlc3RfZ3JvdXAnIHRhYmxlIHRvIGluZGljYXRlIHdoZXRoZXIg
YSB0ZXN0IGdyb3VwCisgICAgICAgIGhhcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uLgorICAgICAg
ICBBZGRlZCAndGVzdGdyb3VwX25vdGlmaWNhdGlvbl9zZW50X2F0JyB0byByZWNvcmQgdGhlIGxh
c3Qgbm90aWZpY2F0aW9uIHNlbnQgdGltZS4KKyAgICAgICAgU1FMIHF1ZXJpZXMgdG8gdXBkYXRl
IGV4aXN0aW5nIGRhdGFiYXNlIGFyZToKKyAgICAgICAgICAgICdBTFRFUiBUQUJMRSBhbmFseXNp
c190ZXN0X2dyb3VwcyBBREQgQ09MVU1OIHRlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24gYm9v
bGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFOycKKyAgICAgICAgICAgICdBTFRFUiBUQUJMRSBh
bmFseXNpc190ZXN0X2dyb3VwcyBBREQgQ09MVU1OIHRlc3Rncm91cF9ub3RpZmljYXRpb25fc2Vu
dF9hdCB0aW1lc3RhbXAgREVGQVVMVCBOVUxMOycKKyAgICAgICAgVXBkYXRlZCAncnVuLWFuYWx5
c2lzJyBzY3JpcHQgdG8gYmUgYWJsZSB0byBzZW5kIG5vdGlmaWNhdGlvbiB3aGVuIHRlc3QgZ3Jv
dXAgZmluaXNoZXMuCisgICAgICAgIEFkZGVkICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hlY2ti
b3ggd2hpbGUgY3JlYXRpbmcvcmV0cnlpbmcvYmlzZWN0aW5nIGEgdGVzdCBncm91cC4KKworICAg
ICAgICAqIGJyb3dzZXItdGVzdHMvdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzOiBVcGRhdGVkIGV4
aXN0aW5nIHRlc3RzIGFuZCBhZGRlZCBhIG5ldyB0ZXN0LgorICAgICAgICAqIGJyb3dzZXItdGVz
dHMvdGVzdC1ncm91cC1yZXN1bHQtcGFnZS10ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0cyBmb3Ig
VGVzdEdyb3VwUmVzdWx0UGFnZS4KKyAgICAgICAgKiBpbml0LWRhdGFiYXNlLnNxbDogQWRkZWQg
J3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nIGZpbGVkIHRvICdhbmFseXNpc190ZXN0X2dy
b3VwJyB0YWJsZS4KKyAgICAgICAgKiBwdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocDogQWRkZWQg
Jy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicgQVBJIHRvICd0ZXN0LWdy
b3VwJyB0byBzaG93IGFsbAorICAgICAgICB0ZXN0IGdyb3VwcyB0aGF0IG5lZWQgdG8gc2VuZCBu
b3RpZmljYXRpb24uIE9ubHkgdGhlIG9uZXMgd2l0aCAnY29tcGxldGVkJywgJ2ZhaWxlZCcgb3Ig
J2NhbmNlbGxlZCcgc3RhdHVzIGFuZCBpdHMKKyAgICAgICAgJ3Rlc3Rncm91cF9uZWVkc19ub3Rp
ZmljYXRpb24nIGlzIHRydWUgd2lsbCBiZSByZXR1cm5lZCBieSB0aGlzIEFQSS4KKyAgICAgICAg
KiBwdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocDogQWRkZWQgJ2ZldGNo
X3JlcXVlc3RzX2Zvcl9ncm91cHMnIHRvIHJldHVybiB0ZXN0IGdyb3VwcyB3aXRoIGdpdmVuIGlk
cy4KKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocDogVXBk
YXRlZCB0aGUgbG9naWMgdG8gc3VwcG9ydCBzZXR0aW5nICd0ZXN0Z3JvdXBfbmVlZHNfbm90aWZp
Y2F0aW9uJworICAgICAgICB3aGlsZSBjcmVhdGUgYW4gYW5hbHlzaXNfdGVzdF9ncm91cHMuCisg
ICAgICAgICogcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocDog
VXBkYXRlZCB0aGUgbG9naWMgdG8gc3VwcG9ydCBzZXR0aW5nICd0ZXN0Z3JvdXBfbmVlZHNfbm90
aWZpY2F0aW9uJy4KKyAgICAgICAgKiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAucGhwOiBVcGRhdGVkIHRoZSBsb2dpYyB0byBzdXBwb3J0IHNldHRpbmcgJ3Rlc3Rncm91
cF9uZWVkc19ub3RpZmljYXRpb24nLgorICAgICAgICAqIHB1YmxpYy9wcml2aWxlZ2VkLWFwaS91
cGRhdGUtdGVzdC1ncm91cC5waHA6IFVwZGF0ZWQgdGhlIGxvZ2ljIHRvIHN1cHBvcnQgdXBkYXRp
bmcgJ3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nLgorICAgICAgICBFeHRlbmRlZCB0aGlz
IEFQSSB0byBhbGxvdyBhdXRoZW50aWNhdGlvbiBib3RoIGZyb20gQ1NSRiB0b2tlbiBhbmQgc2xh
dmUuCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWNvbmZpZ3VyYXRpb24t
dGVzdC1ncm91cC1mb3JtLmpzOgorICAgICAgICAoQ3VzdG9tQ29uZmlndXJhdGlvblRlc3RHcm91
cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6IFBhc3MgJ25vdGlmeU9uQ29tcGxldGlvbicg
aW5mb3JtYXRpb24gd2hpY2ggcmVwcmVzZW50cworICAgICAgICAndGVzdGdyb3VwX25lZWRzX25v
dGlmaWNhdGlvbicgZnJvbSBBUEkgcGVyc3BlY3RpdmUuCisgICAgICAgICogcHVibGljL3YzL2Nv
bXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qczoKKyAgICAgICAgKEN1c3Rv
bWl6YWJsZVRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6IFBhc3MgJ25vdGlm
eU9uQ29tcGxldGlvbicgaW5mb3JtYXRpb24gd2hpY2ggcmVwcmVzZW50cworICAgICAgICAndGVz
dGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbicgZnJvbSBBUEkgcGVyc3BlY3RpdmUuCisgICAgICAg
IChDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtLmNzc1RlbXBsYXRlKTogQWRkZWQgc3BhY2UgYmV0
d2VlbiAnTm90aWZ5IG9uIGNvbXBsZXRpb24nIGNoZWNrYm94IGFuZCB0ZXN0IGdyb3VwIGl0ZXJh
dGlvbiBzZWxlY3Rpb24gbGlzdC4KKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0
LWdyb3VwLWZvcm0uanM6CisgICAgICAgIChUZXN0R3JvdXBGb3JtKTogQWRkZWQgJ19ub3RpZnlP
bkNvbXBsZXRpb24nIGluc3RhbmNlIHZhcmlhYmxlLgorICAgICAgICAoVGVzdEdyb3VwRm9ybS5w
cm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6IEFkZGVkICdvbmNoYW5nZScgZXZlbnQg
Zm9yIG5vdGlmeSBvbiBjb21wbGV0aW9uIGNoZWNrYm94LgorICAgICAgICAoVGVzdEdyb3VwRm9y
bS5wcm90b3R5cGUuc3RhcnRUZXN0aW5nKTogUGFzcyAnbm90aWZ5T25Db21wbGV0aW9uJyBpbmZv
cm1hdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAgICAgICd0ZXN0Z3JvdXBfbmVlZHNfbm90aWZp
Y2F0aW9uJyBmcm9tIEFQSSBwZXJzcGVjdGl2ZS4KKyAgICAgICAgKFRlc3RHcm91cEZvcm0uY3Nz
VGVtcGxhdGUpOiBBZGRlZCBzcGFjZSBiZXR3ZWVuICdOb3RpZnkgb24gY29tcGxldGlvbicgY2hl
Y2tib3ggYW5kIHRlc3QgZ3JvdXAgaXRlcmF0aW9uIHNlbGVjdGlvbiBsaXN0LgorICAgICAgICAq
IHB1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qczogRXhwb3J0ICdBbmFseXNpc1Jl
c3VsdHMnLgorICAgICAgICAoQW5hbHlzaXNSZXN1bHRzLmZldGNoKTogVXBkYXRlIEFQSSBwYXRo
IHRvIHVzZSBhYnNvbHV0ZSB1cmwuCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMpOgorICAgICAg
ICAqIHB1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qczoKKyAgICAgICAgKEFuYWx5c2lz
VGFzay5hc3luYy5jcmVhdGUpOiBFeHRlbmQgdGhpcyBmdW5jdGlvbiB0byB0YWtlIG5vdGlmeU9u
Q29tcGxldGlvbiBhcyBhcmd1bWVudCB3aGljaCB3aWxsIGJlIHVzZWQgYXMKKyAgICAgICAgJ25l
ZWRzTm90aWZpY2F0aW9uJyB0byBzZW5kIHRvIHNlcnZlci4KKyAgICAgICAgKEFuYWx5c2lzVGFz
ayk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzOgorICAgICAgICAo
VGVzdEdyb3VwKTogQWRkZWQgJ19uZWVkc05vdGlmaWNhdGlvbicgZmllbGQuCisgICAgICAgIChU
ZXN0R3JvdXAucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6IEFkZGVkIGxvZ2ljIHRvIHVwZGF0
ZSAnX25lZWRzTm90aWZpY2F0aW9uJyBmaWVsZC4KKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5
cGUubmVlZHNOb3RpZmljYXRpb24pOiBSZXR1cm5zICdfbmVlZHNOb3RpZmljYXRpb24nIGZpZWxk
LgorICAgICAgICAoVGVzdEdyb3VwLnByb3RvdHlwZS5hdXRob3IpOiBSZXR1cm5zIGF1dGhvciBp
bmZvcm1hdGlvbi4KKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5cGUuYXN5bmMuZGlkU2VuZE5v
dGlmaWNhdGlvbik6IEFQSSB0aGF0IHVwZGF0ZXMgJ3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRp
b24nIHRvIHRydWUuCisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLmFzeW5jLmZldGNoVGFz
ayk6IEFQSSB0byBmZXRjaCB0aGUgdGFzayB3aGVuIGl0IGhhcyBub3QgYmVlbiBmZXRjaGVkLgor
ICAgICAgICAoVGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNrKTogVXBkYXRlZCB0aGlzIGZ1bmN0aW9u
IHRvIGFjY2VwdCAnbm90aWZ5T25Db21wbGV0aW9uJyB3aGljaCB3aWxsIGJlIHVzZWQgYXMKKyAg
ICAgICAgJ25lZWRzTm90aWZpY2F0aW9uJyB0byBzZW5kIHRvIHNlcnZlci4KKyAgICAgICAgKFRl
c3RHcm91cC5jcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlvbik6IFVwZGF0ZWQgdGhpcyBmdW5j
dGlvbiB0byBhY2NlcHQgJ25vdGlmeU9uQ29tcGxldGlvbicgd2hpY2ggd2lsbCBiZSB1c2VkIGFz
CisgICAgICAgICduZWVkc05vdGlmaWNhdGlvbicgdG8gc2VuZCB0byBzZXJ2ZXIuCisgICAgICAg
IChUZXN0R3JvdXAuY3JlYXRlQW5kUmVmZXRjaFRlc3RHcm91cHMpOiBVcGRhdGVkIHRoaXMgZnVu
Y3Rpb24gdG8gYWNjZXB0ICdub3RpZnlPbkNvbXBsZXRpb24nIHdoaWNoIHdpbGwgYmUgdXNlZCBh
cworICAgICAgICAnbmVlZHNOb3RpZmljYXRpb24nIHRvIHNlbmQgdG8gc2VydmVyLgorICAgICAg
ICAoVGVzdEdyb3VwLmZldGNoQWxsV2l0aE5vdGlmaWNhdGlvblJlYWR5KTogTmV3IGZ1bmN0aW9u
IHRoYXQgaW52b2tlcyAnL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJy4K
KyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzOiBVcGRhdGUg
bG9naWMgdG8gJ25vdGlmeU9uQ29tcGxldGlvbicgYXJvdW5kCisgICAgICAgIChBbmFseXNpc1Rh
c2tDaGFydFBhbmUucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAo
QW5hbHlzaXNUYXNrUmVzdWx0c1BhbmUucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUp
OgorICAgICAgICAoQW5hbHlzaXNUYXNrVGVzdEdyb3VwUGFuZS5wcm90b3R5cGUuZGlkQ29uc3Ry
dWN0U2hhZG93VHJlZSk6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5kaWRD
b25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBl
Ll9yZXRyeUN1cnJlbnRUZXN0R3JvdXApOgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90
b3R5cGUuYXN5bmMuX2Jpc2VjdEN1cnJlbnRUZXN0R3JvdXApOgorICAgICAgICAoQW5hbHlzaXNU
YXNrUGFnZS5wcm90b3R5cGUuX2NyZWF0ZVRlc3RHcm91cEFmdGVyVmVyaWZ5aW5nQ29tbWl0U2V0
TGlzdC5zZXQgY29uc3QpOgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuX2Ny
ZWF0ZVRlc3RHcm91cEFmdGVyVmVyaWZ5aW5nQ29tbWl0U2V0TGlzdCk6CisgICAgICAgIChBbmFs
eXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fY3JlYXRlQ3VzdG9tVGVzdEdyb3VwKToKKyAgICAgICAg
KiBwdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qczogQWRkZWQgJ05vdGlmeSBvbiBjb21wbGV0
aW9uJyBjaGVja2JveC4KKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0
U2hhZG93VHJlZSk6CisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLmFzeW5jLl9hbmFseXpl
UmFuZ2UpOgorICAgICAgICAqIHB1YmxpYy92My9wYWdlcy9jcmVhdGUtYW5hbHlzaXMtdGFzay1w
YWdlLmpzOiBBZGFwdGVkIEFQSSBjaGFuZ2UuCisgICAgICAgIChDcmVhdGVBbmFseXNpc1Rhc2tQ
YWdlLnByb3RvdHlwZS5fY3JlYXRlQW5hbHlzaXNUYXNrV2l0aEdyb3VwKToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBzLmpzOiBBZGRlZCB0ZXN0cyBmb3IgJy9hcGkvdGVz
dC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicuCisgICAgICAgICogc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzOiBVcGRhdGVkIHRl
c3RzIHRvIGFkYXB0IHRoaXMgY2hhbmdlLgorICAgICAgICBBZGRlZCBuZXcgdGVzdHMuCisgICAg
ICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3Rz
LmpzOiBBZGRlZCBuZXcgdGVzdHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzOiBBZGRlZCB1bml0IHRlc3QgZm9yICd1cGRh
dGUtdGVzdC1ncm91cCcgQVBJLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9j
ay1kYXRhLmpzOiBhZGRNb2NrRGF0YSBzaG91bGQgc2V0ICd0ZXN0Z3JvdXBfbmVlZHNfbm90aWZp
Y2F0aW9uJyB0byBiZSB0cnVlLgorICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1
aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzOiBVcGRhdGVkIHRlc3RzIHRvIGFkYXB0IHRoaXMg
Y2hhbmdlLgorICAgICAgICAoYXN5bmMuY3JlYXRlVGVzdEdyb3VwV2loUGF0Y2gpOgorICAgICAg
ICAoY3JlYXRlVGVzdEdyb3VwV2loT3duZWRDb21taXQpOgorICAgICAgICAqIHRvb2xzL2pzL2Fu
YWx5c2lzLXJlc3VsdHMtbm90aWZpZXIuanM6IEFkZGVkIG5vdGlmaWVyIHRvIHNlbmQgbm90aWZp
Y2F0aW9uIGZvciBjb21wbGV0ZWQgdGVzdCBncm91cHMuCisgICAgICAgIChBbmFseXNpc1Jlc3Vs
dHNOb3RpZmllcik6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5wcm90b3R5cGUu
YXN5bmMuc2VuZE5vdGlmaWNhdGlvbnNGb3JUZXN0R3JvdXBzKToKKyAgICAgICAgKEFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyLnByb3RvdHlwZS5fc2VuZE5vdGlmaWNhdGlvbik6IEludm9rZSByZW1v
dGUgQVBJIHRvIHNlbmQgbm90aWZpY2F0aW9uLgorICAgICAgICAoQW5hbHlzaXNSZXN1bHRzTm90
aWZpZXIucHJvdG90eXBlLl9jb25zdHJ1Y3RNZXNzYWdlQnlSdWxlcyk6CisgICAgICAgIChBbmFs
eXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUpOgorICAgICAgICAoQW5hbHlzaXNSZXN1
bHRzTm90aWZpZXIuX2FwcGx5VXBkYXRlKToKKyAgICAgICAgKEFuYWx5c2lzUmVzdWx0c05vdGlm
aWVyLmFzeW5jLl9tZXNzYWdlRm9yVGVzdEdyb3VwKTogQnVpbGQgaHRtbCBhcyBtZXNzYWdlIGJv
ZHkgZm9yIGEgdGVzdCBncm91cC4KKyAgICAgICAgKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9V
UkxGb3JBbmFseXNpc1Rhc2spOiBSZXR1cm5zIFVSTCBmb3IgYW4gYW5hbHlzaXMgdGFzay4KKyAg
ICAgICAgKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9pbnN0YW50aWF0ZU5vdGlmaWNhdGlvblRl
bXBsYXRlKToKKyAgICAgICAgKiB0b29scy9qcy90ZXN0LWdyb3VwLXJlc3VsdC1wYWdlLmpzOiBB
ZGRlZCAnVGVzdEdyb3VwUmVzdWx0UGFnZScgYW5kICdCYXJHcmFwaCcgdG8gc2hvdyB0ZXN0IGdy
b3VwIHJlc3VsdC4KKyAgICAgICAgKFRlc3RHcm91cFJlc3VsdFBhZ2UpOgorICAgICAgICAoVGVz
dEdyb3VwUmVzdWx0UGFnZS5wcm90b3R5cGUuY29uc3RydWN0VGFibGVzKToKKyAgICAgICAgKFRl
c3RHcm91cFJlc3VsdFBhZ2UucHJvdG90eXBlLnNldFRlc3RHcm91cCk6CisgICAgICAgIChUZXN0
R3JvdXBSZXN1bHRQYWdlLnByb3RvdHlwZS5yZW5kZXIpOgorICAgICAgICAoVGVzdEdyb3VwUmVz
dWx0UGFnZS5wcm90b3R5cGUuZ2V0IHBhZ2VDb250ZW50KToKKyAgICAgICAgKFRlc3RHcm91cFJl
c3VsdFBhZ2UucHJvdG90eXBlLmdldCBzdHlsZVRlbXBsYXRlKToKKyAgICAgICAgKEJhckdyYXBo
KToKKyAgICAgICAgKEJhckdyYXBoLnByb3RvdHlwZS5zZXRXaWR0aCk6CisgICAgICAgIChCYXJH
cmFwaC5wcm90b3R5cGUuX2NvbnN0cnVjdEJhckdyYXBoKToKKyAgICAgICAgKEJhckdyYXBoLnBy
b3RvdHlwZS5nZXQgcGFnZUNvbnRlbnQpOgorICAgICAgICAoQmFyR3JhcGgucHJvdG90eXBlLmdl
dCBzdHlsZVRlbXBsYXRlKToKKyAgICAgICAgKiB0b29scy9qcy9tZWFzdXJlbWVudC1zZXQtYW5h
bHl6ZXIuanM6IEFkYXB0ZWQgJ0FuYWx5c2lzVGFzay5jcmVhdGUnIGNoYW5nZS4KKyAgICAgICAg
KE1lYXN1cmVtZW50U2V0QW5hbHl6ZXIucHJvdG90eXBlLmFzeW5jLl9hbmFseXplTWVhc3VyZW1l
bnRTZXQpOgorICAgICAgICAoTWVhc3VyZW1lbnRTZXRBbmFseXplcik6CisgICAgICAgICogdG9v
bHMvanMvdjMtbW9kZWxzLmpzOgorICAgICAgICAqIHRvb2xzL3J1bi1hbmFseXNpcy5qczogQWRk
ZWQgdGhlIGxvZ2ljIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9uIGZvciBjb21wbGV0ZWQgdGVzdCBn
cm91cHMuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKGFzeW5jLmFuYWx5c2lzTG9vcCk6Cisg
ICAgICAgICogdW5pdC10ZXN0cy9hbmFseXNpcy10YXNrLXRlc3RzLmpzOgorICAgICAgICAqIHVu
aXQtdGVzdHMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci10ZXN0cy5qczogQWRkZWQgYSB1bml0
IHRlc3QgZm9yICdBbmFseXNpc1Jlc3VsdHNOb3RpZmllcicgYW5kICdOb3RpZmljYXRpb25TZXJ2
aWNlJy4KKyAgICAgICAgKiB1bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC1hbmFseXplci10ZXN0
cy5qczogVXBkYXRlZCB1bml0IHRlc3RzIHBlciB0aGlzIGNoYW5nZS4KKyAgICAgICAgKiB1bml0
LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzOiBBZGRlZCB1bml0IHRlc3RzIGZvciAnVGVzdEdy
b3VwLm5lZWRzTm90aWZpY2F0aW9uJy4KKyAgICAgICAgKiB1bml0LXRlc3RzL3Jlc291cmNlcy9t
b2NrLXJlbW90ZS1hcGkuanM6IE9ubHkgc2V0ICdwcml2aWxlZ2VkQVBJJyB3aGVuIGl0IGV4aXRz
LgorCiAyMDE4LTA1LTIzICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAg
ICAgIE9TQnVpbGRGZXRjaGVyIHNob3VsZCByZXNwZWN0IG1heFJldmlzaW9uIHdoaWxlIGZpbmRp
bmcgT1MgYnVpbGRzIHRvIHJlcG9ydC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9icm93c2VyLXRlc3RzL2luZGV4Lmh0bWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
YnJvd3Nlci10ZXN0cy9pbmRleC5odG1sCmluZGV4IGRkZWQxNzkwNTAzNDIyNTQxZWE5MDM0MzI0
NGEzM2JhYTg5MDY0NTAuLjdiYzFmOWI1NzA5ZGUwNjAzZmZlY2M2ZmJjMWIxOWZkYmY0MDg5YTQg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2luZGV4
Lmh0bWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvaW5kZXgu
aHRtbApAQCAtMjcsNiArMjcsNyBAQCBtb2NoYS5zZXR1cCgnYmRkJyk7CiA8c2NyaXB0IHNyYz0i
Y2hhcnQtcmV2aXNpb24tcmFuZ2UtdGVzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9ImNv
bW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJ0ZXN0LWdy
b3VwLWZvcm0tdGVzdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRlc3QtZ3JvdXAtcmVz
dWx0LXBhZ2UtdGVzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAogYWZ0ZXJFYWNoKCgpID0+
IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rl
c3QtZ3JvdXAtZm9ybS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2Vy
LXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwppbmRleCAyNjUzNTY3Mjg0OWExOWRkZmRm
ZjkyYjQ1OTg3OTUzYjBkZTgwZDcyLi4xMTY0MDQwNDFiNDlkNDFmNWZhMGEwZGExOThmZTY5YjE1
MWY5ZTJlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0
cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCkBAIC0xOCw3ICsxOCw3IEBA
IGRlc2NyaWJlKCdUZXN0R3JvdXBGb3JtVGVzdHMnLCAoKSA9PiB7CiAgICAgICAgICAgICB0ZXN0
R3JvdXBGb3JtLmxpc3RlblRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAoLi4uYXJncykgPT4gY2Fs
bHMucHVzaChhcmdzKSk7CiAgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbCh7fSk7CiAg
ICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7
Ci0gICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzRdXSk7CisgICAgICAgICAgICBl
eHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRydWVdXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0yOSwxMiArMjksMzEgQEAgZGVzY3JpYmUoJ1Rlc3RHcm91cEZvcm1UZXN0cycsICgpID0+
IHsKICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0ubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGlu
ZycsICguLi5hcmdzKSA9PiBjYWxscy5wdXNoKGFyZ3MpKTsKICAgICAgICAgICAgIGV4cGVjdChj
YWxscykudG8uZXFsKHt9KTsKICAgICAgICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgnc3Rh
cnQtYnV0dG9uJykuY2xpY2soKTsKLSAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtb
NF1dKTsKKyAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNCwgdHJ1ZV1dKTsKICAg
ICAgICAgICAgIGNvbnN0IGNvdW50Rm9ybSA9IHRlc3RHcm91cEZvcm0uY29udGVudCgncmVwZXRp
dGlvbi1jb3VudCcpOwogICAgICAgICAgICAgY291bnRGb3JtLnZhbHVlID0gJzYnOwotICAgICAg
ICAgICAgY291bnRGb3JtLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnKSk7IAorICAg
ICAgICAgICAgY291bnRGb3JtLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnKSk7CiAg
ICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7
Ci0gICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzRdLCBbNl1dKTsKKyAgICAgICAg
ICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNCwgdHJ1ZV0sIFs2LCB0cnVlXV0pOworICAgICAg
ICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdtdXN0IHVwZGF0ZSAibm90aWZ5IG9uIGNvbXBsZXRp
b24iIHdoZW4gaXQgaXMgdW5jaGVja2VkJywgKCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0
ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3Vw
Rm9ybVdpdGhDb250ZXh0KGNvbnRleHQpLnRoZW4oKHRlc3RHcm91cEZvcm0pID0+IHsKKyAgICAg
ICAgICAgIGNvbnN0IGNhbGxzID0gW107CisgICAgICAgICAgICB0ZXN0R3JvdXBGb3JtLmxpc3Rl
blRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAoLi4uYXJncykgPT4gY2FsbHMucHVzaChhcmdzKSk7
CisgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbCh7fSk7CisgICAgICAgICAgICB0ZXN0
R3JvdXBGb3JtLmNvbnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7CisgICAgICAgICAgICBl
eHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRydWVdXSk7CisgICAgICAgICAgICBjb25zdCBjb3Vu
dEZvcm0gPSB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3JlcGV0aXRpb24tY291bnQnKTsKKyAgICAg
ICAgICAgIGNvdW50Rm9ybS52YWx1ZSA9ICc2JzsKKyAgICAgICAgICAgIGNvdW50Rm9ybS5kaXNw
YXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykpOworICAgICAgICAgICAgY29uc3Qgbm90aWZ5
T25Db21wbGV0aW9uQ2hlY2tib3ggPSB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ25vdGlmeS1vbi1j
b21wbGV0aW9uLWNoZWNrYm94Jyk7CisgICAgICAgICAgICBub3RpZnlPbkNvbXBsZXRpb25DaGVj
a2JveC5jaGVja2VkID0gZmFsc2U7CisgICAgICAgICAgICBub3RpZnlPbkNvbXBsZXRpb25DaGVj
a2JveC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykpOworICAgICAgICAgICAgdGVz
dEdyb3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24nKS5jbGljaygpOworICAgICAgICAgICAg
ZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCB0cnVlXSwgWzYsIGZhbHNlXV0pOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtNTcsMTAgKzc2LDEwIEBAIGRlc2NyaWJlKCdUZXN0R3JvdXBGb3Jt
VGVzdHMnLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgdGVzdEdyb3VwRm9ybS5saXN0ZW5Ub0Fj
dGlvbignc3RhcnRUZXN0aW5nJywgKC4uLmFyZ3MpID0+IGNhbGxzLnB1c2goYXJncykpOwogICAg
ICAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKHt9KTsKICAgICAgICAgICAgICAgICB0
ZXN0R3JvdXBGb3JtLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdidXR0b24nKS5jbGljaygpOwot
ICAgICAgICAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNF1dKTsKKyAgICAgICAgICAg
ICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRydWVdXSk7CiAgICAgICAgICAgICAgICAg
dGVzdEdyb3VwRm9ybS5zZXRSZXBldGl0aW9uQ291bnQoOCk7CiAgICAgICAgICAgICAgICAgdGVz
dEdyb3VwRm9ybS5jb250ZW50KCkucXVlcnlTZWxlY3RvcignYnV0dG9uJykuY2xpY2soKTsKLSAg
ICAgICAgICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzRdLCBbOF1dKTsKKyAgICAgICAg
ICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQsIHRydWVdLCBbOCwgdHJ1ZV1dKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtcmVzdWx0LXBhZ2UtdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy90ZXN0LWdyb3Vw
LXJlc3VsdC1wYWdlLXRlc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxNGUyOWI2YTE5MWJiM2U1NGRjYzg0
YWFiNmU3YTQ2ODQzZTI1NWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvYnJvd3Nlci10ZXN0cy90ZXN0LWdyb3VwLXJlc3VsdC1wYWdlLXRlc3RzLmpzCkBAIC0w
LDAgKzEsODEgQEAKK2Rlc2NyaWJlKCdUZXN0R3JvdXBSZXN1bHRQYWdlJywgKCkgPT4geworCisg
ICAgYXN5bmMgZnVuY3Rpb24gaW1wb3J0TWFya3VwQ29tcG9uZW50KGNvbnRleHQpCisgICAgewor
ICAgICAgICByZXR1cm4gYXdhaXQgY29udGV4dC5pbXBvcnRTY3JpcHRzKFsnbGF6aWx5LWV2YWx1
YXRlZC1mdW5jdGlvbi5qcycsICcuLi9zaGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNlLmpzJywg
Jy4uLy4uL3Rvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMnLCAnLi4vLi4vdG9vbHMvanMvdGVz
dC1ncm91cC1yZXN1bHQtcGFnZS5qcycsCisgICAgICAgICAgICAnbW9kZWxzL2RhdGEtbW9kZWwu
anMnLCAnbW9kZWxzL21ldHJpYy5qcycsICcuLi9zaGFyZWQvc3RhdGlzdGljcy5qcycsXSwgJ1Rl
c3RHcm91cFJlc3VsdFBhZ2UnLCAnTWV0cmljJyk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rp
b24gcHJlcGFyZVRlc3RHcm91cFJlc3VsdFBhZ2UoY29udGV4dCwgcmVzdWx0QSwgcmVzdWx0QikK
KyAgICB7CisgICAgICAgIGNvbnN0IFtUZXN0R3JvdXBSZXN1bHRQYWdlLCBNZXRyaWNdID0gYXdh
aXQgaW1wb3J0TWFya3VwQ29tcG9uZW50KGNvbnRleHQpOworCisgICAgICAgIGNvbnN0IG1vY2tB
bmFseXNpc1Rhc2sgPSB7CisgICAgICAgICAgICBtZXRyaWM6ICgpID0+ICh7CisgICAgICAgICAg
ICAgICAgbWFrZUZvcm1hdHRlcjogKHNpZ0ZpZywgYWx3YXlzU2hvd1NpZ24pID0+IE1ldHJpYy5t
YWtlRm9ybWF0dGVyKCdNQicsIHNpZ0ZpZywgYWx3YXlzU2hvd1NpZ24pLAorICAgICAgICAgICAg
ICAgIGFnZ3JlZ2F0b3JMYWJlbDogKCkgPT4gJ0FyaXRobWV0aWMgbWVhbicKKyAgICAgICAgICAg
IH0pLAorICAgICAgICAgICAgbmFtZTogKCkgPT4gJ21vY2stYW5hbHlzaXMtdGFzaycKKyAgICAg
ICAgfTsKKworICAgICAgICBjb25zdCBtb2NrVGVzdEdyb3VwID0geworICAgICAgICAgICAgcmVx
dWVzdGVkQ29tbWl0U2V0czogKCkgPT4gWydBJywgJ0InXSwKKyAgICAgICAgICAgIHRlc3Q6ICgp
ID0+ICh7dGVzdDogKCkgPT4gJ3NwZWVvZG1ldGVyLTInLCBuYW1lOiAoKSA9PiAnc3BlZWRvbWV0
ZXItMid9KSwKKyAgICAgICAgICAgIGxhYmVsRm9yQ29tbWl0U2V0OiAoY29tbWl0U2V0KSA9PiBj
b21taXRTZXQsCisgICAgICAgICAgICByZXF1ZXN0c0ZvckNvbW1pdFNldDogKGNvbW1pdFNldCkg
PT4gKHsnQSc6IHJlc3VsdEEsICdCJzogcmVzdWx0Qn1bY29tbWl0U2V0XSksCisgICAgICAgICAg
ICBjb21wYXJlVGVzdFJlc3VsdHM6ICguLi5hcmdzKSA9PiAoe2lzU3RhdGlzdGljYWxseVNpZ25p
ZmljYW50OiB0cnVlLCBjaGFuZ2VUeXBlOiAnd29yc2UnfSksCisgICAgICAgICAgICBuYW1lOiAo
KSA9PiAnbW9jay10ZXN0LWdyb3VwJywKKyAgICAgICAgfTsKKworICAgICAgICBjb25zdCBtb2Nr
QW5hbHlzaXNSZXN1bHRzID0geworICAgICAgICAgICAgdmlld0Zvck1ldHJpYzogKG1ldHJpYykg
PT4gKHtyZXN1bHRGb3JSZXF1ZXN0OiAoYnVpbGRSZXF1ZXN0KSA9PiAoYnVpbGRSZXF1ZXN0ID09
PSBudWxsID8gbnVsbCA6IHt2YWx1ZTogYnVpbGRSZXF1ZXN0fSl9KQorICAgICAgICB9OworCisg
ICAgICAgIGNvbnN0IHBhZ2UgPSBuZXcgVGVzdEdyb3VwUmVzdWx0UGFnZSgndGVzdCcpOworICAg
ICAgICBwYWdlLl90ZXN0R3JvdXAgPSBtb2NrVGVzdEdyb3VwOworICAgICAgICBwYWdlLl9hbmFs
eXNpc1Rhc2sgPSBtb2NrQW5hbHlzaXNUYXNrOworICAgICAgICBwYWdlLl9hbmFseXNpc1Jlc3Vs
dHMgPSBtb2NrQW5hbHlzaXNSZXN1bHRzOworICAgICAgICBwYWdlLl9hbmFseXNpc1VSTCA9ICdo
dHRwOi8vbG9jYWxob3N0JzsKKworICAgICAgICByZXR1cm4gcGFnZTsKKyAgICB9CisKKyAgICBp
dCgnc2hvdWxkIHJlbmRlciBmYWlsZWQgdGVzdCBncm91cCB3aXRoIGVtcHR5IGJhcicsIGFzeW5j
ICgpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsK
KyAgICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHByZXBhcmVUZXN0R3JvdXBSZXN1bHRQYWdlKGNv
bnRleHQsIFtudWxsLCAzLCA1XSwgWzIsIDQsIDZdKTsKKyAgICAgICAgYXdhaXQgcGFnZS5lbnF1
ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBjb250ZXh0LmRvY3VtZW50
OworICAgICAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgICAgIGRvY3VtZW50LndyaXRlKHBhZ2Uu
Z2VuZXJhdGVNYXJrdXAoKSk7CisgICAgICAgIGRvY3VtZW50LmNsb3NlKCk7CisKKyAgICAgICAg
Y29uc29sZS5sb2coY29udGV4dC5kb2N1bWVudC5ib2R5KTsKKyAgICAgICAgZXhwZWN0KGNvbnRl
eHQuZ2xvYmFsLmdldENvbXB1dGVkU3R5bGUoY29udGV4dC5kb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCcuYmFyLWdyYXBoLXBsYWNlaG9sZGVyJykpLndpZHRoKS50by5iZSgnMHB4Jyk7CisgICAgfSk7
CisKKyAgICBpdCgnc2hvdWxkIHJlbmRlciByaWdodCByYXRpbyBiYXNlZCBvbiB0ZXN0IGdyb3Vw
IHJlc3VsdCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBCcm93
c2luZ0NvbnRleHQoKTsKKyAgICAgICAgY29uc3QgcmVzdWx0QSA9IFsxLCAzLCA1XTsKKyAgICAg
ICAgY29uc3QgcmVzdWx0QiA9IFsyLCA0LCA2XTsKKyAgICAgICAgY29uc3QgcGFnZSA9IGF3YWl0
IHByZXBhcmVUZXN0R3JvdXBSZXN1bHRQYWdlKGNvbnRleHQsIHJlc3VsdEEsIHJlc3VsdEIpOwor
ICAgICAgICBwYWdlLmVucXVldWVUb1JlbmRlcigpOworICAgICAgICBjb25zdCBkb2N1bWVudCA9
IGNvbnRleHQuZG9jdW1lbnQ7CisgICAgICAgIGRvY3VtZW50Lm9wZW4oKTsKKyAgICAgICAgZG9j
dW1lbnQud3JpdGUocGFnZS5nZW5lcmF0ZU1hcmt1cCgpKTsKKyAgICAgICAgZG9jdW1lbnQuY2xv
c2UoKTsKKworICAgICAgICBjb25zdCBtaW4gPSAwLjU7CisgICAgICAgIGNvbnN0IG1heCA9IDYu
NTsKKyAgICAgICAgY29uc3QgZXhwZWN0ZWRQZXJjZW50YWdlcyA9IFsuLi5yZXN1bHRBLCAuLi5y
ZXN1bHRCXS5tYXAoKHJlc3VsdCkgPT4gKHJlc3VsdCAtIG1pbikgLyAobWF4IC0gbWluKSk7Cisg
ICAgICAgIGNvbnN0IGJhck5vZGVzID0gY29udGV4dC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCcuYmFyLWdyYXBoLXBsYWNlaG9sZGVyJyk7CisgICAgICAgIGV4cGVjdChiYXJOb2Rlcy5sZW5n
dGgpLnRvLmJlKDYpOworCisgICAgICAgIGNvbnN0IGFsbW9zdEVxdWFsID0gKGEsIGIpID0+IE1h
dGguYWJzKGEgLSBiKSA8IDAuMDAxOworICAgICAgICBsZXQgcHJldmlvdXNOb2RlV2lkdGggPSBw
YXJzZUZsb2F0KGNvbnRleHQuZ2xvYmFsLmdldENvbXB1dGVkU3R5bGUoYmFyTm9kZXNbMF0pLndp
ZHRoKTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCA2OyArKyBpKSB7CisgICAgICAgICAg
ICBjb25zdCBjdXJyZW50Tm9kZVdpZHRoID0gcGFyc2VGbG9hdChjb250ZXh0Lmdsb2JhbC5nZXRD
b21wdXRlZFN0eWxlKGJhck5vZGVzW2ldKS53aWR0aCk7CisgICAgICAgICAgICBleHBlY3QoYWxt
b3N0RXF1YWwoY3VycmVudE5vZGVXaWR0aCAvIHByZXZpb3VzTm9kZVdpZHRoLCBleHBlY3RlZFBl
cmNlbnRhZ2VzW2ldIC8gZXhwZWN0ZWRQZXJjZW50YWdlc1tpIC0gMV0pKS50by5iZSh0cnVlKTsK
KyAgICAgICAgICAgIHByZXZpb3VzTm9kZVdpZHRoID0gY3VycmVudE5vZGVXaWR0aDsKKyAgICAg
ICAgfQorICAgIH0pOworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCmluZGV4IGM0NzQyZTdiNmRjM2VhODA1
YjAzOWUwZDE4Nzc1YzUyZjJmN2QwNjcuLjkxMzI0MGE4MjY5NzkzZDZhM2JhMDNmMzQ5NWUxMjJh
ZTFhOWZjYWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFi
YXNlLnNxbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwK
QEAgLTI3OSw2ICsyNzksOCBAQCBDUkVBVEUgVEFCTEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgKAog
ICAgIHRlc3Rncm91cF9hdXRob3IgdmFyY2hhcigyNTYpLAogICAgIHRlc3Rncm91cF9jcmVhdGVk
X2F0IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChDVVJSRU5UX1RJTUVTVEFNUCBBVCBUSU1F
IFpPTkUgJ1VUQycpLAogICAgIHRlc3Rncm91cF9oaWRkZW4gYm9vbGVhbiBOT1QgTlVMTCBERUZB
VUxUIEZBTFNFLAorICAgIHRlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24gYm9vbGVhbiBOT1Qg
TlVMTCBERUZBVUxUIEZBTFNFLAorICAgIHRlc3Rncm91cF9ub3RpZmljYXRpb25fc2VudF9hdCB0
aW1lc3RhbXAgREVGQVVMVCBOVUxMLAogICAgIENPTlNUUkFJTlQgdGVzdGdyb3VwX25hbWVfbXVz
dF9iZV91bmlxdWVfZm9yX2VhY2hfdGFzayBVTklRVUUodGVzdGdyb3VwX3Rhc2ssIHRlc3Rncm91
cF9uYW1lKSk7CiBDUkVBVEUgSU5ERVggdGVzdGdyb3VwX3Rhc2tfaW5kZXggT04gYW5hbHlzaXNf
dGVzdF9ncm91cHModGVzdGdyb3VwX3Rhc2spOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2FwaS90ZXN0LWdyb3Vwcy5waHAgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL2FwaS90ZXN0LWdyb3Vwcy5waHAKaW5kZXggNDJkZGQzMDkzNTA5ZGQy
ZjRhZDYzMGU4NGU0ZDNhMDVlN2IwOTYxYy4uNjI0MGFjZDM1MmIyMDc5ZmQxMDIwMjE3OTI1MmNj
MzE4NGJhMTkxOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9h
cGkvdGVzdC1ncm91cHMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
YXBpL3Rlc3QtZ3JvdXBzLnBocApAQCAtMTMsMTQgKzEzLDcgQEAgZnVuY3Rpb24gbWFpbigkcGF0
aCkgewogCiAgICAgJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXIgPSBuZXcgQnVpbGRSZXF1ZXN0c0Zl
dGNoZXIoJGRiKTsKIAotICAgIGlmIChjb3VudCgkcGF0aCkgPiAwICYmICRwYXRoWzBdKSB7Ci0g
ICAgICAgICRncm91cF9pZCA9IGludHZhbCgkcGF0aFswXSk7Ci0gICAgICAgICRncm91cCA9ICRk
Yi0+c2VsZWN0X2ZpcnN0X3JvdygnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCAndGVzdGdyb3VwJywg
YXJyYXkoJ2lkJyA9PiAkZ3JvdXBfaWQpKTsKLSAgICAgICAgaWYgKCEkZ3JvdXApCi0gICAgICAg
ICAgICBleGl0X3dpdGhfZXJyb3IoJ0dyb3VwTm90Rm91bmQnLCBhcnJheSgnaWQnID0+ICRncm91
cF9pZCkpOwotICAgICAgICAkdGVzdF9ncm91cHMgPSBhcnJheSgkZ3JvdXApOwotICAgICAgICAk
YnVpbGRfcmVxdWVzdHNfZmV0Y2hlci0+ZmV0Y2hfZm9yX2dyb3VwKCRncm91cFsndGVzdGdyb3Vw
X3Rhc2snXSwgJGdyb3VwX2lkKTsKLSAgICB9IGVsc2UgeworICAgIGlmICghY291bnQoJHBhdGgp
KSB7CiAgICAgICAgICR0YXNrX2lkID0gYXJyYXlfZ2V0KCRfR0VULCAndGFzaycpOwogICAgICAg
ICBpZiAoISR0YXNrX2lkKQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdUYXNrSWROb3RT
cGVjaWZpZWQnKTsKQEAgLTI5LDYgKzIyLDI4IEBAIGZ1bmN0aW9uIG1haW4oJHBhdGgpIHsKICAg
ICAgICAgaWYgKCFpc19hcnJheSgkdGVzdF9ncm91cHMpKQogICAgICAgICAgICAgZXhpdF93aXRo
X2Vycm9yKCdGYWlsZWRUb0ZldGNoVGVzdEdyb3VwcycpOwogICAgICAgICAkYnVpbGRfcmVxdWVz
dHNfZmV0Y2hlci0+ZmV0Y2hfZm9yX3Rhc2soJHRhc2tfaWQpOworICAgIH0gZWxzZWlmICgkcGF0
aFswXSA9PSAncmVhZHktZm9yLW5vdGlmaWNhdGlvbicpIHsKKyAgICAgICAgJHRlc3RfZ3JvdXBz
ID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCJTRUxFQ1QgKiBGUk9NIGFuYWx5c2lzX3Rlc3Rf
Z3JvdXBzCisgICAgICAgICAgICBXSEVSRSBFWElTVFMoU0VMRUNUIDEgRlJPTSBidWlsZF9yZXF1
ZXN0cworICAgICAgICAgICAgICAgIFdIRVJFIHJlcXVlc3RfZ3JvdXAgPSB0ZXN0Z3JvdXBfaWQK
KyAgICAgICAgICAgICAgICAgICAgQU5EIHJlcXVlc3Rfc3RhdHVzIElOICgncGVuZGluZycsICdz
Y2hlZHVsZWQnLCAncnVubmluZycsICdjYW5jZWxlZCcpKSBJUyBGQUxTRQorICAgICAgICAgICAg
ICAgICAgICBBTkQgdGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiBJUyBUUlVFIGFuZCB0ZXN0
Z3JvdXBfaGlkZGVuIElTIEZBTFNFIik7CisKKyAgICAgICAgaWYgKCFjb3VudCgkdGVzdF9ncm91
cHMpKSB7CisgICAgICAgICAgICBleGl0X3dpdGhfc3VjY2VzcyhhcnJheSgndGVzdEdyb3Vwcycg
PT4gYXJyYXkoKSwKKyAgICAgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0cycgPT4gYXJyYXkoKSwK
KyAgICAgICAgICAgICAgICAnY29tbWl0U2V0cycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICAg
ICAnY29tbWl0cycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICAgICAndXBsb2FkZWRGaWxlcycg
PT4gYXJyYXkoKSkpOworICAgICAgICB9CisgICAgICAgICRidWlsZF9yZXF1ZXN0c19mZXRjaGVy
LT5mZXRjaF9yZXF1ZXN0c19mb3JfZ3JvdXBzKCR0ZXN0X2dyb3Vwcyk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgJGdyb3VwX2lkID0gaW50dmFsKCRwYXRoWzBdKTsKKyAgICAgICAgJGdyb3VwID0g
JGRiLT5zZWxlY3RfZmlyc3Rfcm93KCdhbmFseXNpc190ZXN0X2dyb3VwcycsICd0ZXN0Z3JvdXAn
LCBhcnJheSgnaWQnID0+ICRncm91cF9pZCkpOworICAgICAgICBpZiAoISRncm91cCkKKyAgICAg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignR3JvdXBOb3RGb3VuZCcsIGFycmF5KCdpZCcgPT4gJGdy
b3VwX2lkKSk7CisgICAgICAgICR0ZXN0X2dyb3VwcyA9IGFycmF5KCRncm91cCk7CisgICAgICAg
ICRidWlsZF9yZXF1ZXN0c19mZXRjaGVyLT5mZXRjaF9mb3JfZ3JvdXAoJGdyb3VwWyd0ZXN0Z3Jv
dXBfdGFzayddLCAkZ3JvdXBfaWQpOwogICAgIH0KICAgICBpZiAoISRidWlsZF9yZXF1ZXN0c19m
ZXRjaGVyLT5oYXNfcmVzdWx0cygpKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRv
RmV0Y2hCdWlsZFJlcXVlc3RzJyk7CkBAIC02Myw4ICs3OCwxMCBAQCBmdW5jdGlvbiBmb3JtYXRf
dGVzdF9ncm91cCgkZ3JvdXBfcm93KSB7CiAgICAgICAgICd0YXNrJyA9PiAkZ3JvdXBfcm93Wyd0
ZXN0Z3JvdXBfdGFzayddLAogICAgICAgICAnbmFtZScgPT4gJGdyb3VwX3Jvd1sndGVzdGdyb3Vw
X25hbWUnXSwKICAgICAgICAgJ2F1dGhvcicgPT4gJGdyb3VwX3Jvd1sndGVzdGdyb3VwX2F1dGhv
ciddLAotICAgICAgICAnY3JlYXRlZEF0JyA9PiBzdHJ0b3RpbWUoJGdyb3VwX3Jvd1sndGVzdGdy
b3VwX2NyZWF0ZWRfYXQnXSkgKiAxMDAwLAorICAgICAgICAnY3JlYXRlZEF0JyA9PiBEYXRhYmFz
ZTo6dG9fanNfdGltZSgkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfY3JlYXRlZF9hdCddKSwKKyAgICAg
ICAgJ25vdGlmaWNhdGlvblNlbnRBdCcgPT4gRGF0YWJhc2U6OnRvX2pzX3RpbWUoJGdyb3VwX3Jv
d1sndGVzdGdyb3VwX25vdGlmaWNhdGlvbl9zZW50X2F0J10pLAogICAgICAgICAnaGlkZGVuJyA9
PiBEYXRhYmFzZTo6aXNfdHJ1ZSgkZ3JvdXBfcm93Wyd0ZXN0Z3JvdXBfaGlkZGVuJ10pLAorICAg
ICAgICAnbmVlZHNOb3RpZmljYXRpb24nID0+IERhdGFiYXNlOjppc190cnVlKCRncm91cF9yb3db
J3Rlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24nXSksCiAgICAgICAgICdidWlsZFJlcXVlc3Rz
JyA9PiBhcnJheSgpLAogICAgICAgICAnY29tbWl0U2V0cycgPT4gYXJyYXkoKSwKICAgICApOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxk
LXJlcXVlc3RzLWZldGNoZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9p
bmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwCmluZGV4IDI3ZjAyNDA3ZGE3NDkxNzU4
ZGVkYWUwODNmNGMzNDBjMWIzNmRhMzEuLmIzODg3NzliMjdkM2Y5MzA1NDM4OGNmOTVlNjJjMzE5
MDcxOWFlMjggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5j
bHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAKQEAgLTMwLDYg
KzMwLDE3IEBAIGNsYXNzIEJ1aWxkUmVxdWVzdHNGZXRjaGVyIHsKICAgICAgICAgICAgICRyb3db
J3Rhc2tfaWQnXSA9ICR0YXNrX2lkOwogICAgIH0KIAorICAgIGZ1bmN0aW9uIGZldGNoX3JlcXVl
c3RzX2Zvcl9ncm91cHMoJHRlc3RfZ3JvdXBzKSB7CisgICAgICAgICR0ZXN0X2dyb3VwX2lkX2xp
c3QgPSBhcnJheSgpOworICAgICAgICBmb3JlYWNoKCR0ZXN0X2dyb3VwcyBhcyAkZ3JvdXApCisg
ICAgICAgICAgICBhcnJheV9wdXNoKCR0ZXN0X2dyb3VwX2lkX2xpc3QsIGludHZhbCgkZ3JvdXBb
J3Rlc3Rncm91cF9pZCddKSk7CisKKyAgICAgICAgJHRoaXMtPnJvd3MgPSAkdGhpcy0+ZGItPnF1
ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqLCB0ZXN0Z3JvdXBfdGFzayBhcyB0YXNrX2lkCisg
ICAgICAgICAgICBGUk9NIGJ1aWxkX3JlcXVlc3RzLCBhbmFseXNpc190ZXN0X2dyb3VwcworICAg
ICAgICAgICAgV0hFUkUgcmVxdWVzdF9ncm91cCA9IHRlc3Rncm91cF9pZCBBTkQgdGVzdGdyb3Vw
X2lkID0gQU5ZKCQxKQorICAgICAgICAgICAgT1JERVIgQlkgcmVxdWVzdF9ncm91cCwgcmVxdWVz
dF9vcmRlcicsIGFycmF5KCd7JyAuIGltcGxvZGUoJywgJywgJHRlc3RfZ3JvdXBfaWRfbGlzdCkg
LiAnfScpKTsKKyAgICB9CisKICAgICBmdW5jdGlvbiBmZXRjaF9pbmNvbXBsZXRlX3JlcXVlc3Rz
X2Zvcl90cmlnZ2VyYWJsZSgkdHJpZ2dlcmFibGVfaWQpIHsKICAgICAgICAgJHRoaXMtPnJvd3Mg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqLCB0ZXN0X2dyb3Vwcy50
ZXN0Z3JvdXBfdGFzayBhcyB0YXNrX2lkIEZST00gYnVpbGRfcmVxdWVzdHMsCiAgICAgICAgICAg
ICAoU0VMRUNUIHRlc3Rncm91cF9pZCwgdGVzdGdyb3VwX3Rhc2ssIChjYXNlIHdoZW4gdGVzdGdy
b3VwX2F1dGhvciBpcyBub3QgbnVsbCB0aGVuIDAgZWxzZSAxIGVuZCkgYXMgYXV0aG9yX29yZGVy
LCB0ZXN0Z3JvdXBfY3JlYXRlZF9hdApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwCmluZGV4
IGE3YWRjNGY4YTMyZDc2ZjViZTQ1N2JiNzM3ZWRkZjE0ZWRmYThiMjIuLmJlYzdkNDg2ZjJiMDdh
ZWQzNmRkMmUyYmZlMjdiNzEwOTk0M2E2NDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocAorKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5w
aHAKQEAgLTQsMTIgKzQsMTIgQEAgcmVxdWlyZV9vbmNlKCdyZXBvc2l0b3J5LWdyb3VwLWZpbmRl
ci5waHAnKTsKIHJlcXVpcmVfb25jZSgnY29tbWl0LWxvZy1mZXRjaGVyLnBocCcpOwogCiAjIEZJ
WE1FOiBTaG91bGQgY3JlYXRlIGEgaGVscGVyIGNsYXNzIGZvciBiZWxvdyAzIGhlbHBlciBmdW5j
dGlvbnMgdG8gYXZvaWQgcGFzc2luZyBsb25nIGFyZ3VtZW50IGxpc3QuCi1mdW5jdGlvbiBjcmVh
dGVfdGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNr
X2lkLCAkbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0
X2lkLCAkcmVwZXRpdGlvbl9jb3VudCkgeworZnVuY3Rpb24gY3JlYXRlX3Rlc3RfZ3JvdXBfYW5k
X2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9zZXRzLCAkdGFza19pZCwgJG5hbWUsICRhdXRo
b3IsICR0cmlnZ2VyYWJsZV9pZCwgJHBsYXRmb3JtX2lkLCAkdGVzdF9pZCwgJHJlcGV0aXRpb25f
Y291bnQsICRuZWVkc19ub3RpZmljYXRpb24pIHsKIAogICAgIGxpc3QgKCRidWlsZF9jb25maWd1
cmF0aW9uX2xpc3QsICR0ZXN0X2NvbmZpZ3VyYXRpb25fbGlzdCkgPSBpbnNlcnRfY29tbWl0X3Nl
dHNfYW5kX2NvbnN0cnVjdF9jb25maWd1cmF0aW9uX2xpc3QoJGRiLCAkY29tbWl0X3NldHMpOwog
CiAgICAgJGdyb3VwX2lkID0gJGRiLT5pbnNlcnRfcm93KCdhbmFseXNpc190ZXN0X2dyb3Vwcycs
ICd0ZXN0Z3JvdXAnLAotICAgICAgICBhcnJheSgndGFzaycgPT4gJHRhc2tfaWQsICduYW1lJyA9
PiAkbmFtZSwgJ2F1dGhvcicgPT4gJGF1dGhvcikpOworICAgICAgICBhcnJheSgndGFzaycgPT4g
JHRhc2tfaWQsICduYW1lJyA9PiAkbmFtZSwgJ2F1dGhvcicgPT4gJGF1dGhvciwgJ25lZWRzX25v
dGlmaWNhdGlvbicgPT4gJG5lZWRzX25vdGlmaWNhdGlvbikpOwogCiAgICAgJGJ1aWxkX2NvdW50
ID0gY291bnQoJGJ1aWxkX2NvbmZpZ3VyYXRpb25fbGlzdCk7CiAgICAgJG9yZGVyID0gLSRidWls
ZF9jb3VudDsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKaW5k
ZXggOTQwZjgwYjk3YTA1Y2JhZmEwNDU3ZDM5ZDEzNzMwZDI2NmY4ZmNmOS4uNDgwNGNjNzViMjE1
ZjcxNzQzZjc2ODM4MTU4MDdiNjNiNThlYmRhMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtYW5hbHlzaXMtdGFzay5waHAKQEAgLTEwLDYgKzEwLDcgQEAgZnVuY3Rpb24gbWFpbigpIHsK
ICAgICAkYXV0aG9yID0gcmVtb3RlX3VzZXJfbmFtZSgkZGF0YSk7CiAgICAgJG5hbWUgPSBhcnJh
eV9nZXQoJGRhdGEsICduYW1lJyk7CiAgICAgJHJlcGV0aXRpb25fY291bnQgPSBhcnJheV9nZXQo
JGRhdGEsICdyZXBldGl0aW9uQ291bnQnKTsKKyAgICAkbmVlZHNfbm90aWZpY2F0aW9uID0gYXJy
YXlfZ2V0KCRkYXRhLCAnbmVlZHNOb3RpZmljYXRpb24nLCBGYWxzZSk7CiAgICAgJHRlc3RfZ3Jv
dXBfbmFtZSA9IGFycmF5X2dldCgkZGF0YSwgJ3Rlc3RHcm91cE5hbWUnKTsKICAgICAkcmV2aXNp
b25fc2V0X2xpc3QgPSBhcnJheV9nZXQoJGRhdGEsICdyZXZpc2lvblNldHMnKTsKIApAQCAtODQs
NyArODUsNyBAQCBmdW5jdGlvbiBtYWluKCkgewogICAgICAgICAkdHJpZ2dlcmFibGVfaWQgPSAk
dHJpZ2dlcmFibGVbJ2lkJ107CiAgICAgICAgICR0ZXN0X2lkID0gJHRyaWdnZXJhYmxlWyd0ZXN0
J107CiAgICAgICAgICRjb21taXRfc2V0cyA9IGNvbW1pdF9zZXRzX2Zyb21fcmV2aXNpb25fc2V0
cygkZGIsICR0cmlnZ2VyYWJsZV9pZCwgJHJldmlzaW9uX3NldF9saXN0KTsKLSAgICAgICAgY3Jl
YXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9zZXRzLCAkdGFz
a19pZCwgJHRlc3RfZ3JvdXBfbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkY29uZmln
Wydjb25maWdfcGxhdGZvcm0nXSwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50KTsKKyAgICAg
ICAgY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9zZXRz
LCAkdGFza19pZCwgJHRlc3RfZ3JvdXBfbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAk
Y29uZmlnWydjb25maWdfcGxhdGZvcm0nXSwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50LCAk
bmVlZHNfbm90aWZpY2F0aW9uKTsKICAgICB9CiAKICAgICAkZGItPmNvbW1pdF90cmFuc2FjdGlv
bigpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocAppbmRleCA1NmI0NzU1
OGY4MGQzZmVkOGRhMjljOTMyYWFkODZkNzk2NWQ4OTU4Li4xMDIzZDRiY2I2OTBjN2YxODc5NDUx
NzczNjZjYjM0NDRlOTZiNmFjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocAorKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
LnBocApAQCAtMTgsNiArMTgsNyBAQCBmdW5jdGlvbiBtYWluKCkKICAgICAkdGFza19pZCA9IGFy
cmF5X2dldCgkYXJndW1lbnRzLCAndGFzaycpOwogICAgICR0YXNrX25hbWUgPSBhcnJheV9nZXQo
JGRhdGEsICd0YXNrTmFtZScpOwogICAgICRyZXBldGl0aW9uX2NvdW50ID0gJGFyZ3VtZW50c1sn
cmVwZXRpdGlvbkNvdW50J107CisgICAgJG5lZWRzX25vdGlmaWNhdGlvbiA9IGFycmF5X2dldCgk
ZGF0YSwgJ25lZWRzTm90aWZpY2F0aW9uJywgRmFsc2UpOwogICAgICRwbGF0Zm9ybV9pZCA9IGFy
cmF5X2dldCgkZGF0YSwgJ3BsYXRmb3JtJyk7CiAgICAgJHRlc3RfaWQgPSBhcnJheV9nZXQoJGRh
dGEsICd0ZXN0Jyk7CiAgICAgJHJldmlzaW9uX3NldF9saXN0ID0gYXJyYXlfZ2V0KCRkYXRhLCAn
cmV2aXNpb25TZXRzJyk7CkBAIC04NSw3ICs4Niw3IEBAIGZ1bmN0aW9uIG1haW4oKQogICAgIGlm
ICgkdGFza19uYW1lKQogICAgICAgICAkdGFza19pZCA9ICRkYi0+aW5zZXJ0X3JvdygnYW5hbHlz
aXNfdGFza3MnLCAndGFzaycsIGFycmF5KCduYW1lJyA9PiAkdGFza19uYW1lLCAnYXV0aG9yJyA9
PiAkYXV0aG9yKSk7CiAKLSAgICAkZ3JvdXBfaWQgPSBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVp
bGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAkbmFtZSwgJGF1dGhvciwg
JHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lkLCAkcmVwZXRpdGlvbl9jb3Vu
dCk7CisgICAgJGdyb3VwX2lkID0gY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3Rz
KCRkYiwgJGNvbW1pdF9zZXRzLCAkdGFza19pZCwgJG5hbWUsICRhdXRob3IsICR0cmlnZ2VyYWJs
ZV9pZCwgJHBsYXRmb3JtX2lkLCAkdGVzdF9pZCwgJHJlcGV0aXRpb25fY291bnQsICRuZWVkc19u
b3RpZmljYXRpb24pOwogCiAgICAgJGRiLT5jb21taXRfdHJhbnNhY3Rpb24oKTsKIApkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS91cGRh
dGUtdGVzdC1ncm91cC5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZp
bGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocAppbmRleCBkYjFlZDM4MzkyYTU3MjAxY2Mw
NzY1MjhlNDhhNDk2OGQyMGU5ZWU4Li5hZDE3NTVmZWQyNjIxYTQ2NDJmYzA3ZDMzMjQ1NDA3OWU3
MmQ3MTVlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZp
bGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwLnBocApAQCAtMyw3
ICszLDggQEAKIHJlcXVpcmVfb25jZSgnLi4vaW5jbHVkZS9qc29uLWhlYWRlci5waHAnKTsKIAog
ZnVuY3Rpb24gbWFpbigpIHsKLSAgICAkZGF0YSA9IGVuc3VyZV9wcml2aWxlZ2VkX2FwaV9kYXRh
X2FuZF90b2tlbigpOworICAgICRkYiA9IGNvbm5lY3QoKTsKKyAgICAkZGF0YSA9IGVuc3VyZV9w
cml2aWxlZ2VkX2FwaV9kYXRhX2FuZF90b2tlbl9vcl9zbGF2ZSgkZGIpOwogCiAgICAgJHRlc3Rf
Z3JvdXBfaWQgPSBhcnJheV9nZXQoJGRhdGEsICdncm91cCcpOwogICAgIGlmICghJHRlc3RfZ3Jv
dXBfaWQpCkBAIC0xNywxMCArMTgsMjAgQEAgZnVuY3Rpb24gbWFpbigpIHsKICAgICBpZiAoYXJy
YXlfa2V5X2V4aXN0cygnaGlkZGVuJywgJGRhdGEpKQogICAgICAgICAkdmFsdWVzWydoaWRkZW4n
XSA9IERhdGFiYXNlOjp0b19kYXRhYmFzZV9ib29sZWFuKCRkYXRhWydoaWRkZW4nXSk7CiAKKyAg
ICAkaGFzX25lZWRzX25vdGlmaWNhdGlvbl9maWVsZCA9IGFycmF5X2tleV9leGlzdHMoJ25lZWRz
Tm90aWZpY2F0aW9uJywgJGRhdGEpOworICAgICRoYXNfbm90aWZpY2F0aW9uX3NlbnRfYXRfZmll
bGQgPSBhcnJheV9rZXlfZXhpc3RzKCdub3RpZmljYXRpb25TZW50QXQnLCAkZGF0YSk7CisKKyAg
ICBpZiAoJGhhc19uZWVkc19ub3RpZmljYXRpb25fZmllbGQgfHwgJGhhc19ub3RpZmljYXRpb25f
c2VudF9hdF9maWVsZCkgeworICAgICAgICBpZiAoISEkaGFzX25vdGlmaWNhdGlvbl9zZW50X2F0
X2ZpZWxkID09ICEhJGRhdGFbJ25lZWRzTm90aWZpY2F0aW9uJ10pCisgICAgICAgICAgICBleGl0
X3dpdGhfZXJyb3IoJ05vdGlmaWNhdGlvblNlbnRBdEZpZWxkU2hvdWxkT25seUJlU2V0V2hlbk5l
ZWRzTm90aWZpY2F0aW9uSXNGYWxzZScpOworCisgICAgICAgICR2YWx1ZXNbJ25lZWRzX25vdGlm
aWNhdGlvbiddID0gRGF0YWJhc2U6OnRvX2RhdGFiYXNlX2Jvb2xlYW4oJGRhdGFbJ25lZWRzTm90
aWZpY2F0aW9uJ10pOworICAgICAgICBpZiAoISRkYXRhWyduZWVkc05vdGlmaWNhdGlvbiddKQor
ICAgICAgICAgICAgJHZhbHVlc1snbm90aWZpY2F0aW9uX3NlbnRfYXQnXSA9ICRkYXRhWydub3Rp
ZmljYXRpb25TZW50QXQnXTsKKyAgICB9CisKICAgICBpZiAoISR2YWx1ZXMpCiAgICAgICAgIGV4
aXRfd2l0aF9lcnJvcignTm90aGluZ1RvVXBkYXRlJyk7Ci0KLSAgICAkZGIgPSBjb25uZWN0KCk7
CiAgICAgJGRiLT5iZWdpbl90cmFuc2FjdGlvbigpOwogCiAgICAgaWYgKCEkZGItPnVwZGF0ZV9y
b3coJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywgJ3Rlc3Rncm91cCcsIGFycmF5KCdpZCcgPT4gJHRl
c3RfZ3JvdXBfaWQpLCAkdmFsdWVzKSkgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3Jv
dXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy9jdXN0b20tY29uZmlndXJhdGlvbi10ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggNThlYmJhYWRj
OGNlNTYyN2RmMDYyNmRlODAzMDk5Mzk0ZTIzN2I4MC4uMmEyYjg2N2Y1ZmIzNjIyOGY1ZDhiYTYw
NTAxNjg4NzAyODliMzRmNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3Vz
dG9tLWNvbmZpZ3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNs
YXNzIEN1c3RvbUNvbmZpZ3VyYXRpb25UZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9y
bSB7CiAgICAgICAgIGNvbnN0IGNvbW1pdFNldHMgPSBjb25maWd1cmF0b3IuY29tbWl0U2V0cygp
OwogICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IGNvbmZpZ3VyYXRvci5wbGF0Zm9ybSgpOwogICAg
ICAgICBjb25zdCB0ZXN0ID0gY29uZmlndXJhdG9yLnRlc3RzKClbMF07IC8vIEZJWE1FOiBBZGQg
dGhlIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgbXVsdGlwbGUgdGVzdHMuCi0gICAgICAgIHRoaXMu
ZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRpb25Db3VudCwgdGVz
dEdyb3VwTmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRlc3QsIHRhc2tOYW1lKTsKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNv
dW50LCB0ZXN0R3JvdXBOYW1lLCBjb21taXRTZXRzLCBwbGF0Zm9ybSwgdGVzdCwgdGFza05hbWUs
IHRoaXMuX25vdGlmeU9uQ29tcGxldGlvbik7CiAgICAgfQogCiAgICAgZGlkQ29uc3RydWN0U2hh
ZG93VHJlZSgpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91
cC1mb3JtLmpzCmluZGV4IDUzZWY3ZjdmNTc3MzgzYWRjYjJlNmMyM2FjODA2MTVjN2Y4NGNiMWQu
LjIwNDQxYzExOGIzZDllZDE1OWFhOWQ3ZDdjZGZkOTc5ZDUyMTU5NTEgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUt
dGVzdC1ncm91cC1mb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0yNSw3ICsy
NSw3IEBAIGNsYXNzIEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBG
b3JtIHsKIAogICAgIHN0YXJ0VGVzdGluZygpCiAgICAgewotICAgICAgICB0aGlzLmRpc3BhdGNo
QWN0aW9uKCdzdGFydFRlc3RpbmcnLCB0aGlzLl9yZXBldGl0aW9uQ291bnQsIHRoaXMuX25hbWUs
IHRoaXMuX2NvbXB1dGVDb21taXRTZXRNYXAoKSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rp
b24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRpb25Db3VudCwgdGhpcy5fbmFtZSwgdGhp
cy5fY29tcHV0ZUNvbW1pdFNldE1hcCgpLCB0aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24pOwogICAg
IH0KIAogICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQpAQCAtMjg2LDYgKzI4NiwxMCBAQCBj
bGFzcyBDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAg
ICAgICAgICAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAg
ICNjdXN0b21pemUtbGluay1jb250YWluZXIgeworICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0
OiAwLjRyZW07CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgICNjdXN0b20tdGFibGU6bm90
KDplbXB0eSkgewogICAgICAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwOwogICAgICAgICAgICAg
fQpAQCAtMzIwLDYgKzMyNCwxMCBAQCBjbGFzcyBDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtIGV4
dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAgICAgICAgICAgICAjY3VzdG9tLXRhYmxlIHRoIHsKICAg
ICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICNub3RpZnktb24tY29tcGxldGlvbi1jaGVja2JveCB7CisgICAgICAgICAgICAgICAg
bWFyZ2luLWxlZnQ6IDAuNHJlbTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGA7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvdGVzdC1ncm91cC1mb3JtLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcwppbmRleCBjNDRiNjZmYTA1ZDBhNjI0
MjI3ZjZiYWM1MzkwMWVjNzQ4NDBiNGQ1Li5hNDNlZGYzNTA4YmNmMDc0NjI1ZGI5OTY0ZjYwNGRl
MTgwODI5NjRmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMKQEAgLTUsNiArNSw3
IEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICB7CiAg
ICAgICAgIHN1cGVyKG5hbWUgfHwgJ3Rlc3QtZ3JvdXAtZm9ybScpOwogICAgICAgICB0aGlzLl9y
ZXBldGl0aW9uQ291bnQgPSA0OworICAgICAgICB0aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24gPSB0
cnVlOwogICAgIH0KIAogICAgIHNldFJlcGV0aXRpb25Db3VudChjb3VudCkKQEAgLTE4LDEzICsx
OSwxNSBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAg
ICAgIGNvbnN0IHJlcGV0aXRpb25Db3VudFNlbGVjdCA9IHRoaXMuY29udGVudCgncmVwZXRpdGlv
bi1jb3VudCcpOwogICAgICAgICByZXBldGl0aW9uQ291bnRTZWxlY3Qub25jaGFuZ2UgPSAoKSA9
PiB7CiAgICAgICAgICAgICB0aGlzLl9yZXBldGl0aW9uQ291bnQgPSByZXBldGl0aW9uQ291bnRT
ZWxlY3QudmFsdWU7Ci0gICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgY29uc3Qgbm90aWZ5
T25Db21wbGV0aW9uQ2hlY2tCb3ggPSB0aGlzLmNvbnRlbnQoJ25vdGlmeS1vbi1jb21wbGV0aW9u
LWNoZWNrYm94Jyk7CisgICAgICAgIG5vdGlmeU9uQ29tcGxldGlvbkNoZWNrQm94Lm9uY2hhbmdl
ID0gKCkgPT4gdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uID0gbm90aWZ5T25Db21wbGV0aW9uQ2hl
Y2tCb3guY2hlY2tlZDsKICAgICAgICAgdGhpcy5jb250ZW50KCdmb3JtJykub25zdWJtaXQgPSB0
aGlzLmNyZWF0ZUV2ZW50SGFuZGxlcigoKSA9PiB0aGlzLnN0YXJ0VGVzdGluZygpKTsKICAgICB9
CiAKICAgICBzdGFydFRlc3RpbmcoKQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlv
bignc3RhcnRUZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50KTsKKyAgICAgICAgdGhpcy5k
aXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCB0aGlz
Ll9ub3RpZnlPbkNvbXBsZXRpb24pOwogICAgIH0KIAogICAgIHN0YXRpYyBodG1sVGVtcGxhdGUo
KQpAQCAtMzgsNiArNDEsMTEgQEAgY2xhc3MgVGVzdEdyb3VwRm9ybSBleHRlbmRzIENvbXBvbmVu
dEJhc2UgewogICAgICAgICAgICAgOmhvc3QgewogICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJs
b2NrOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjbm90aWZ5LW9uLWNvbXBsZXRpb24t
Y2hlY2tib3ggeworICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDFyZW07CisgICAgICAgICAgICB9CiAgICAgICAgIGA7CiAgICAgfQog
CkBAIC01OCw2ICs2Niw3IEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0ZW5kcyBDb21wb25lbnRC
YXNlIHsKICAgICAgICAgICAgICAgICA8b3B0aW9uPjEwPC9vcHRpb24+CiAgICAgICAgICAgICA8
L3NlbGVjdD4KICAgICAgICAgICAgIGl0ZXJhdGlvbnMgcGVyIHNldAorICAgICAgICAgICAgPGlu
cHV0IGlkPSJub3RpZnktb24tY29tcGxldGlvbi1jaGVja2JveCIgdHlwZT0iY2hlY2tib3giIGNo
ZWNrZWQvPk5vdGlmeSBvbiBjb21wbGV0aW9uCiAgICAgICAgIGA7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1y
ZXN1bHRzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5h
bHlzaXMtcmVzdWx0cy5qcwppbmRleCBkMDQ4YmVlZDZkMmEwY2ZmZDkxMTZmOTJkYTkyMmQ2YTBh
ZjhhOTUyLi4yNTk1NTNjY2JiNDFlMWUxZDVlODhmM2Y1YWUwMGEzYjBlYTk0YWJhIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1y
ZXN1bHRzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxz
L2FuYWx5c2lzLXJlc3VsdHMuanMKQEAgLTg0LDcgKzg0LDcgQEAgY2xhc3MgQW5hbHlzaXNSZXN1
bHRzIHsKICAgICBzdGF0aWMgZmV0Y2godGFza0lkKQogICAgIHsKICAgICAgICAgdGFza0lkID0g
cGFyc2VJbnQodGFza0lkKTsKLSAgICAgICAgcmV0dXJuIFJlbW90ZUFQSS5nZXRKU09OV2l0aFN0
YXR1cyhgLi4vYXBpL21lYXN1cmVtZW50LXNldD9hbmFseXNpc1Rhc2s9JHt0YXNrSWR9YCkudGhl
bihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIFJlbW90ZUFQSS5nZXRKU09O
V2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQ/YW5hbHlzaXNUYXNrPSR7dGFza0lkfWAp
LnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAKICAgICAgICAgICAgIEluc3RydW1lbnRhdGlv
bi5zdGFydE1lYXN1cmluZ1RpbWUoJ0FuYWx5c2lzUmVzdWx0cycsICdmZXRjaCcpOwogCkBAIC0x
MTYsMyArMTE2LDggQEAgY2xhc3MgQW5hbHlzaXNSZXN1bHRzVmlldyB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9yZXN1bHRzLmZpbmRSZXN1bHQoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgdGhpcy5f
bWV0cmljLmlkKCkpOwogICAgIH0KIH0KKworCitpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVm
aW5lZCcpIHsKKyAgICBtb2R1bGUuZXhwb3J0cy5BbmFseXNpc1Jlc3VsdHMgPSBBbmFseXNpc1Jl
c3VsdHM7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMK
aW5kZXggNWRiNDUyNDI4OTVlMmM0YTFlMTQ0YjlmYjM0MTUzYjRhODMzMTllOS4uZGJiN2MyZTA5
MGE2NjA3YzUzMGY5ZGQ4OTk4N2FiMzQ1MjIzMjgwZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzCkBA
IC0zMDMsNyArMzAzLDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVj
dCB7CiAgICAgICAgIHJldHVybiByZXN1bHRzOwogICAgIH0KIAotICAgIHN0YXRpYyBhc3luYyBj
cmVhdGUobmFtZSwgc3RhcnRQb2ludCwgZW5kUG9pbnQsIHRlc3RHcm91cE5hbWU9bnVsbCwgcmVw
ZXRpdGlvbkNvdW50PTApCisgICAgc3RhdGljIGFzeW5jIGNyZWF0ZShuYW1lLCBzdGFydFBvaW50
LCBlbmRQb2ludCwgdGVzdEdyb3VwTmFtZT1udWxsLCByZXBldGl0aW9uQ291bnQ9MCwgbm90aWZ5
T25Db21wbGV0aW9uPWZhbHNlKQogICAgIHsKICAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHtu
YW1lLCBzdGFydFJ1bjogc3RhcnRQb2ludC5pZCwgZW5kUnVuOiBlbmRQb2ludC5pZH07CiAgICAg
ICAgIGlmICh0ZXN0R3JvdXBOYW1lKSB7CkBAIC0zMTEsNiArMzExLDcgQEAgY2xhc3MgQW5hbHlz
aXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzWydy
ZXZpc2lvblNldHMnXSA9IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9tQ29tbWl0U2V0cyhbc3Rh
cnRQb2ludC5jb21taXRTZXQoKSwgZW5kUG9pbnQuY29tbWl0U2V0KCldKTsKICAgICAgICAgICAg
IHBhcmFtZXRlcnNbJ3JlcGV0aXRpb25Db3VudCddID0gcmVwZXRpdGlvbkNvdW50OwogICAgICAg
ICAgICAgcGFyYW1ldGVyc1sndGVzdEdyb3VwTmFtZSddID0gdGVzdEdyb3VwTmFtZTsKKyAgICAg
ICAgICAgIHBhcmFtZXRlcnNbJ25lZWRzTm90aWZpY2F0aW9uJ10gPSBub3RpZnlPbkNvbXBsZXRp
b247CiAgICAgICAgIH0KICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHBhcmFtZXRlcnMpOwogICAg
ICAgICByZXR1cm4gQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXNwb25zZS50YXNrSWQsIHRydWUp
OwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
dGVzdC1ncm91cC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxz
L3Rlc3QtZ3JvdXAuanMKaW5kZXggMDMxN2UwNWE5NzllYTcyY2VjMDZhMGQ4MjBmZDdlODFhYjQy
MjZjNC4uNGQzYmIwNDRhYTVmMDUxZjQxNzNhYWZiNjA2OTVjMzk3YjIwNmM5MiAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdy
b3VwLmpzCkBAIC05LDYgKzksNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2Jq
ZWN0IHsKICAgICAgICAgdGhpcy5fYXV0aG9yTmFtZSA9IG9iamVjdC5hdXRob3I7CiAgICAgICAg
IHRoaXMuX2NyZWF0ZWRBdCA9IG5ldyBEYXRlKG9iamVjdC5jcmVhdGVkQXQpOwogICAgICAgICB0
aGlzLl9pc0hpZGRlbiA9IG9iamVjdC5oaWRkZW47CisgICAgICAgIHRoaXMuX25lZWRzTm90aWZp
Y2F0aW9uID0gb2JqZWN0Lm5lZWRzTm90aWZpY2F0aW9uOwogICAgICAgICB0aGlzLl9idWlsZFJl
cXVlc3RzID0gW107CiAgICAgICAgIHRoaXMuX29yZGVyQnVpbGRSZXF1ZXN0c0xhemlseSA9IG5l
dyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbigoLi4uYnVpbGRSZXF1ZXN0cykgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIGJ1aWxkUmVxdWVzdHMuc29ydCgoYSwgYikgPT4gYS5vcmRlcigpIC0gYi5v
cmRlcigpKTsKQEAgLTMwLDEyICszMSwxNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJl
bGVkT2JqZWN0IHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcGxhdGZvcm0gPT0gb2Jq
ZWN0LnBsYXRmb3JtKTsKIAogICAgICAgICB0aGlzLl9pc0hpZGRlbiA9IG9iamVjdC5oaWRkZW47
CisgICAgICAgIHRoaXMuX25lZWRzTm90aWZpY2F0aW9uID0gb2JqZWN0Lm5lZWRzTm90aWZpY2F0
aW9uOworICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZW50QXQgPSBvYmplY3Qubm90aWZpY2F0
aW9uU2VudEF0OwogICAgIH0KIAogICAgIHRhc2soKSB7IHJldHVybiBBbmFseXNpc1Rhc2suZmlu
ZEJ5SWQodGhpcy5fdGFza0lkKTsgfQogICAgIGNyZWF0ZWRBdCgpIHsgcmV0dXJuIHRoaXMuX2Ny
ZWF0ZWRBdDsgfQogICAgIGlzSGlkZGVuKCkgeyByZXR1cm4gdGhpcy5faXNIaWRkZW47IH0KICAg
ICBidWlsZFJlcXVlc3RzKCkgeyByZXR1cm4gdGhpcy5fYnVpbGRSZXF1ZXN0czsgfQorICAgIG5l
ZWRzTm90aWZpY2F0aW9uKCkgeyByZXR1cm4gdGhpcy5fbmVlZHNOb3RpZmljYXRpb247IH0KKyAg
ICBub3RpZmljYXRpb25TZW50QXQoKSB7IHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25TZW50QXQ7
IH0KKyAgICBhdXRob3IoKSB7IHJldHVybiB0aGlzLl9hdXRob3JOYW1lOyB9CiAgICAgYWRkQnVp
bGRSZXF1ZXN0KHJlcXVlc3QpCiAgICAgewogICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RzLnB1
c2gocmVxdWVzdCk7CkBAIC00OSw2ICs1NSwxMyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBM
YWJlbGVkT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIHJlcXVlc3QgPyByZXF1ZXN0LnRlc3QoKSA6
IG51bGw7CiAgICAgfQogCisgICAgYXN5bmMgZmV0Y2hUYXNrKCkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy50YXNrKCkpCisgICAgICAgICAgICBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlk
KHRoaXMuX3Rhc2tJZCk7CisgICAgICAgIHJldHVybiB0aGlzLnRhc2soKTsKKyAgICB9CisKICAg
ICBwbGF0Zm9ybSgpIHsgcmV0dXJuIHRoaXMuX3BsYXRmb3JtOyB9CiAKICAgICBfbGFzdFJlcXVl
c3QoKQpAQCAtMTg1LDExICsxOTgsMjMgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxl
ZE9iamVjdCB7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHN0YXRpYyBjcmVhdGVXaXRoVGFz
ayh0YXNrTmFtZSwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBj
b21taXRTZXRzKQorICAgIGFzeW5jIGRpZFNlbmROb3RpZmljYXRpb24oKQorICAgIHsKKyAgICAg
ICAgY29uc3QgaWQgPSB0aGlzLmlkKCk7CisgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywgeworICAgICAgICAgICAgZ3JvdXA6IGlkLAor
ICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246IGZhbHNlLAorICAgICAgICAgICAgbm90aWZp
Y2F0aW9uU2VudEF0OiAobmV3IERhdGUpLnRvSVNPU3RyaW5nKCkKKyAgICAgICAgfSk7CisgICAg
ICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBUZXN0R3JvdXAuY2FjaGVkRmV0Y2goYC9hcGkvdGVzdC1n
cm91cHMvJHtpZH1gLCB7fSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBUZXN0R3JvdXAuX2NyZWF0
ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3VwcyhkYXRhKTsKKyAgICB9CisKKyAgICBzdGF0aWMg
Y3JlYXRlV2l0aFRhc2sodGFza05hbWUsIHBsYXRmb3JtLCB0ZXN0LCBncm91cE5hbWUsIHJlcGV0
aXRpb25Db3VudCwgY29tbWl0U2V0cywgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKICAgICAg
ICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7CiAgICAgICAgIGNvbnN0
IHJldmlzaW9uU2V0cyA9IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9tQ29tbWl0U2V0cyhjb21t
aXRTZXRzKTsKLSAgICAgICAgY29uc3QgcGFyYW1zID0ge3Rhc2tOYW1lLCBuYW1lOiBncm91cE5h
bWUsIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCksIHJlcGV0aXRpb25D
b3VudCwgcmV2aXNpb25TZXRzfTsKKyAgICAgICAgY29uc3QgcGFyYW1zID0ge3Rhc2tOYW1lLCBu
YW1lOiBncm91cE5hbWUsIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCks
IHJlcGV0aXRpb25Db3VudCwgcmV2aXNpb25TZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogISFub3Rp
ZnlPbkNvbXBsZXRpb259OwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCBwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGRhdGFbJ3Rhc2tJZCddLCB0cnVlKTsK
ICAgICAgICAgfSkudGhlbigodGFzaykgPT4gewpAQCAtMTk3LDE3ICsyMjIsMTcgQEAgY2xhc3Mg
VGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIH0pOwogICAgIH0KIAot
ICAgIHN0YXRpYyBjcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlvbih0YXNrLCBwbGF0Zm9ybSwg
dGVzdCwgZ3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMpCisgICAgc3RhdGlj
IGNyZWF0ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKHRhc2ssIHBsYXRmb3JtLCB0ZXN0LCBncm91
cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cywgbm90aWZ5T25Db21wbGV0aW9uKQog
ICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7CiAg
ICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9tQ29t
bWl0U2V0cyhjb21taXRTZXRzKTsKLSAgICAgICAgY29uc3QgcGFyYW1zID0ge3Rhc2s6IHRhc2su
aWQoKSwgbmFtZTogZ3JvdXBOYW1lLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKSwgdGVzdDogdGVz
dC5pZCgpLCByZXBldGl0aW9uQ291bnQsIHJldmlzaW9uU2V0c307CisgICAgICAgIGNvbnN0IHBh
cmFtcyA9IHt0YXNrOiB0YXNrLmlkKCksIG5hbWU6IGdyb3VwTmFtZSwgcGxhdGZvcm06IHBsYXRm
b3JtLmlkKCksIHRlc3Q6IHRlc3QuaWQoKSwgcmVwZXRpdGlvbkNvdW50LCByZXZpc2lvblNldHMs
IG5lZWRzTm90aWZpY2F0aW9uOiAhIW5vdGlmeU9uQ29tcGxldGlvbn07CiAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBhcmFtcyku
dGhlbigoZGF0YSkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hGb3JUYXNrKGRh
dGFbJ3Rhc2tJZCddLCB0cnVlKTsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNy
ZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRhc2ssIG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29t
bWl0U2V0cykKKyAgICBzdGF0aWMgY3JlYXRlQW5kUmVmZXRjaFRlc3RHcm91cHModGFzaywgbmFt
ZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAg
ewogICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKICAgICAg
ICAgY29uc3QgcmV2aXNpb25TZXRzID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRT
ZXRzKGNvbW1pdFNldHMpOwpAQCAtMjE2LDYgKzI0MSw3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRl
bmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAg
IHJlcGV0aXRpb25Db3VudDogcmVwZXRpdGlvbkNvdW50LAogICAgICAgICAgICAgcmV2aXNpb25T
ZXRzOiByZXZpc2lvblNldHMsCisgICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogISFub3Rp
ZnlPbkNvbXBsZXRpb24sCiAgICAgICAgIH0pLnRoZW4oKGRhdGEpID0+IHRoaXMuZmV0Y2hGb3JU
YXNrKGRhdGFbJ3Rhc2tJZCddLCB0cnVlKSk7CiAgICAgfQogCkBAIC0yMjksNiArMjU1LDExIEBA
IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICByZXR1cm4g
dGhpcy5jYWNoZWRGZXRjaCgnL2FwaS90ZXN0LWdyb3VwcycsIHt0YXNrOiB0YXNrSWR9LCBpZ25v
cmVDYWNoZSkudGhlbih0aGlzLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMuYmlu
ZCh0aGlzKSk7CiAgICAgfQogCisgICAgc3RhdGljIGZldGNoQWxsV2l0aE5vdGlmaWNhdGlvblJl
YWR5KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmNhY2hlZEZldGNoKCcvYXBpL3Rlc3Qt
Z3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nLCBudWxsLCB0cnVlKS50aGVuKHRoaXMuX2Ny
ZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3Vwcy5iaW5kKHRoaXMpKTsKKyAgICB9CisKICAg
ICBzdGF0aWMgX2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3VwcyhkYXRhKQogICAgIHsK
ICAgICAgICAgdmFyIHRlc3RHcm91cHMgPSBkYXRhWyd0ZXN0R3JvdXBzJ10ubWFwKGZ1bmN0aW9u
IChyb3cpIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
cGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMKaW5kZXggNWFhZjA2OGY1NGI1MmRh
MzllYmUwYTMyNzNjZDkyMTIxM2Q2YzY5ZC4uMTRlM2E3MjlhYzAxYWVmNGYwODk4YjYyOWU1ODg2
ZmY1M2I3YTMxOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMKQEAgLTI0LDggKzI0LDgg
QEAgY2xhc3MgQW5hbHlzaXNUYXNrQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAK
ICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKICAgICB7Ci0gICAgICAgIHRoaXMucGFydCgn
Zm9ybScpLmxpc3RlblRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50LCBu
YW1lLCBjb21taXRTZXRNYXApID0+IHsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24o
J25ld1Rlc3RHcm91cCcsIG5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFwKTsKKyAg
ICAgICAgdGhpcy5wYXJ0KCdmb3JtJykubGlzdGVuVG9BY3Rpb24oJ3N0YXJ0VGVzdGluZycsIChy
ZXBldGl0aW9uQ291bnQsIG5hbWUsIGNvbW1pdFNldE1hcCwgbm90aWZ5T25Db21wbGV0aW9uKSA9
PiB7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCduZXdUZXN0R3JvdXAnLCBuYW1l
LCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldE1hcCwgbm90aWZ5T25Db21wbGV0aW9uKTsKICAg
ICAgICAgfSk7CiAgICAgfQogCkBAIC0xMDYsOCArMTA2LDggQEAgY2xhc3MgQW5hbHlzaXNUYXNr
UmVzdWx0c1BhbmUgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgcmVwb3NpdG9yeVBp
Y2tlci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLmVucXVldWVUb1JlbmRl
cigpKTsKICAgICAgICAgdGhpcy5wYXJ0KCdjb21taXQtdmlld2VyJykuc2V0U2hvd1JlcG9zaXRv
cnlOYW1lKGZhbHNlKTsKIAotICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS5saXN0ZW5Ub0FjdGlv
bignc3RhcnRUZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCwgbmFtZSwgY29tbWl0U2V0TWFwKSA9
PiB7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCduZXdUZXN0R3JvdXAnLCBuYW1l
LCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldE1hcCk7CisgICAgICAgIHRoaXMucGFydCgnZm9y
bScpLmxpc3RlblRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50LCBuYW1l
LCBjb21taXRTZXRNYXAsIG5vdGlmeU9uQ29tcGxldGlvbikgPT4geworICAgICAgICAgICAgdGhp
cy5kaXNwYXRjaEFjdGlvbignbmV3VGVzdEdyb3VwJywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBj
b21taXRTZXRNYXAsIG5vdGlmeU9uQ29tcGxldGlvbik7CiAgICAgICAgIH0pOwogICAgIH0KIApA
QCAtMjY3LDE0ICsyNjcsMTQgQEAgY2xhc3MgQW5hbHlzaXNUYXNrVGVzdEdyb3VwUGFuZSBleHRl
bmRzIENvbXBvbmVudEJhc2UgewogICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQogICAgIHsK
ICAgICAgICAgdGhpcy5jb250ZW50KCdoaWRlLWJ1dHRvbicpLm9uY2xpY2sgPSAoKSA9PiB0aGlz
LmRpc3BhdGNoQWN0aW9uKCd0b2dnbGVUZXN0R3JvdXBWaXNpYmlsaXR5JywgdGhpcy5fY3VycmVu
dFRlc3RHcm91cCk7Ci0gICAgICAgIHRoaXMucGFydCgncmV0cnktZm9ybScpLmxpc3RlblRvQWN0
aW9uKCdzdGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50KSA9PiB7Ci0gICAgICAgICAgICB0
aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXRyeVRlc3RHcm91cCcsIHRoaXMuX2N1cnJlbnRUZXN0R3Jv
dXAsIHJlcGV0aXRpb25Db3VudCk7CisgICAgICAgIHRoaXMucGFydCgncmV0cnktZm9ybScpLmxp
c3RlblRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNv
bXBsZXRpb24pID0+IHsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3JldHJ5VGVz
dEdyb3VwJywgdGhpcy5fY3VycmVudFRlc3RHcm91cCwgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlP
bkNvbXBsZXRpb24pOwogICAgICAgICB9KTsKLSAgICAgICAgdGhpcy5wYXJ0KCdiaXNlY3QtZm9y
bScpLmxpc3RlblRvQWN0aW9uKCdzdGFydFRlc3RpbmcnLCAocmVwZXRpdGlvbkNvdW50KSA9PiB7
CisgICAgICAgIHRoaXMucGFydCgnYmlzZWN0LWZvcm0nKS5saXN0ZW5Ub0FjdGlvbignc3RhcnRU
ZXN0aW5nJywgKHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBiaXNlY3RpbmdDb21taXRTZXQgPSB0aGlzLl9iaXNlY3RpbmdDb21taXRT
ZXRCeVRlc3RHcm91cC5nZXQodGhpcy5fY3VycmVudFRlc3RHcm91cCk7CiAgICAgICAgICAgICBj
b25zdCBbb25lQ29tbWl0U2V0LCBhbm90aGVyQ29tbWl0U2V0XSA9IHRoaXMuX2N1cnJlbnRUZXN0
R3JvdXAucmVxdWVzdGVkQ29tbWl0U2V0cygpOwogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0
cyA9IFtvbmVDb21taXRTZXQsIGJpc2VjdGluZ0NvbW1pdFNldCwgYW5vdGhlckNvbW1pdFNldF07
Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdiaXNlY3RUZXN0R3JvdXAnLCB0aGlz
Ll9jdXJyZW50VGVzdEdyb3VwLCBjb21taXRTZXRzLCByZXBldGl0aW9uQ291bnQpOworICAgICAg
ICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignYmlzZWN0VGVzdEdyb3VwJywgdGhpcy5fY3VycmVu
dFRlc3RHcm91cCwgY29tbWl0U2V0cywgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRp
b24pOwogICAgICAgICB9KTsKICAgICB9CiAKQEAgLTU0Myw4ICs1NDMsOCBAQCBjbGFzcyBBbmFs
eXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgZ3JvdXBQYW5l
Lmxpc3RlblRvQWN0aW9uKCdzaG93SGlkZGVuVGVzdEdyb3VwcycsICgpID0+IHRoaXMuX3Nob3dB
bGxUZXN0R3JvdXBzKCkpOwogICAgICAgICBncm91cFBhbmUubGlzdGVuVG9BY3Rpb24oJ3JlbmFt
ZVRlc3RHcm91cCcsICh0ZXN0R3JvdXAsIG5ld05hbWUpID0+IHRoaXMuX3VwZGF0ZVRlc3RHcm91
cE5hbWUodGVzdEdyb3VwLCBuZXdOYW1lKSk7CiAgICAgICAgIGdyb3VwUGFuZS5saXN0ZW5Ub0Fj
dGlvbigndG9nZ2xlVGVzdEdyb3VwVmlzaWJpbGl0eScsICh0ZXN0R3JvdXApID0+IHRoaXMuX2hp
ZGVDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCkpOwotICAgICAgICBncm91cFBhbmUubGlzdGVu
VG9BY3Rpb24oJ3JldHJ5VGVzdEdyb3VwJywgKHRlc3RHcm91cCwgcmVwZXRpdGlvbkNvdW50KSA9
PiB0aGlzLl9yZXRyeUN1cnJlbnRUZXN0R3JvdXAodGVzdEdyb3VwLCByZXBldGl0aW9uQ291bnQp
KTsKLSAgICAgICAgZ3JvdXBQYW5lLmxpc3RlblRvQWN0aW9uKCdiaXNlY3RUZXN0R3JvdXAnLCAo
dGVzdEdyb3VwLCBjb21taXRTZXRzLCByZXBldGl0aW9uQ291bnQpID0+IHRoaXMuX2Jpc2VjdEN1
cnJlbnRUZXN0R3JvdXAodGVzdEdyb3VwLCBjb21taXRTZXRzLCByZXBldGl0aW9uQ291bnQpKTsK
KyAgICAgICAgZ3JvdXBQYW5lLmxpc3RlblRvQWN0aW9uKCdyZXRyeVRlc3RHcm91cCcsICh0ZXN0
R3JvdXAsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25Db21wbGV0aW9uKSA9PiB0aGlzLl9yZXRy
eUN1cnJlbnRUZXN0R3JvdXAodGVzdEdyb3VwLCByZXBldGl0aW9uQ291bnQsIG5vdGlmeU9uQ29t
cGxldGlvbikpOworICAgICAgICBncm91cFBhbmUubGlzdGVuVG9BY3Rpb24oJ2Jpc2VjdFRlc3RH
cm91cCcsICh0ZXN0R3JvdXAsIGNvbW1pdFNldHMsIHJlcGV0aXRpb25Db3VudCwgbm90aWZ5T25D
b21wbGV0aW9uKSA9PiB0aGlzLl9iaXNlY3RDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgY29t
bWl0U2V0cywgcmVwZXRpdGlvbkNvdW50LCBub3RpZnlPbkNvbXBsZXRpb24pKTsKIAogICAgICAg
ICB0aGlzLnBhcnQoJ2NhdXNlLWxpc3QnKS5saXN0ZW5Ub0FjdGlvbignYWRkSXRlbScsIChyZXBv
c2l0b3J5LCByZXZpc2lvbikgPT4gewogICAgICAgICAgICAgdGhpcy5fYXNzb2NpYXRlQ29tbWl0
KCdjYXVzZScsIHJlcG9zaXRvcnksIHJldmlzaW9uKTsKQEAgLTgxOSwxOSArODE5LDE5IEBAIGNs
YXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICB9
KTsKICAgICB9CiAKLSAgICBfcmV0cnlDdXJyZW50VGVzdEdyb3VwKHRlc3RHcm91cCwgcmVwZXRp
dGlvbkNvdW50KQorICAgIF9yZXRyeUN1cnJlbnRUZXN0R3JvdXAodGVzdEdyb3VwLCByZXBldGl0
aW9uQ291bnQsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7CiAgICAgICAgIGNvbnN0IGV4aXN0
aW5nTmFtZXMgPSAodGhpcy5fdGVzdEdyb3VwcyB8fCBbXSkubWFwKChncm91cCkgPT4gZ3JvdXAu
bmFtZSgpKTsKICAgICAgICAgY29uc3QgbmV3TmFtZSA9IENvbW1pdFNldC5jcmVhdGVOYW1lV2l0
aG91dENvbGxpc2lvbih0ZXN0R3JvdXAubmFtZSgpLCBuZXcgU2V0KGV4aXN0aW5nTmFtZXMpKTsK
ICAgICAgICAgY29uc3QgY29tbWl0U2V0TGlzdCA9IHRlc3RHcm91cC5yZXF1ZXN0ZWRDb21taXRT
ZXRzKCk7CiAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gdGhpcy5fdGFzay5wbGF0Zm9ybSgpIHx8
IHRlc3RHcm91cC5wbGF0Zm9ybSgpOwotICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0ZVdp
dGhDdXN0b21Db25maWd1cmF0aW9uKHRoaXMuX3Rhc2ssIHBsYXRmb3JtLCB0ZXN0R3JvdXAudGVz
dCgpLCBuZXdOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldExpc3QpCisgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuY3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24odGhpcy5fdGFzaywg
cGxhdGZvcm0sIHRlc3RHcm91cC50ZXN0KCksIG5ld05hbWUsIHJlcGV0aXRpb25Db3VudCwgY29t
bWl0U2V0TGlzdCwgbm90aWZ5T25Db21wbGV0aW9uKQogICAgICAgICAgICAgLnRoZW4odGhpcy5f
ZGlkRmV0Y2hUZXN0R3JvdXBzLmJpbmQodGhpcyksIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAg
ICAgICAgYWxlcnQoJ0ZhaWxlZCB0byBjcmVhdGUgYSBuZXcgdGVzdCBncm91cDogJyArIGVycm9y
KTsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgYXN5bmMgX2Jpc2VjdEN1cnJlbnRUZXN0R3Jv
dXAodGVzdEdyb3VwLCBjb21taXRTZXRzLCByZXBldGl0aW9uQ291bnQpCisgICAgYXN5bmMgX2Jp
c2VjdEN1cnJlbnRUZXN0R3JvdXAodGVzdEdyb3VwLCBjb21taXRTZXRzLCByZXBldGl0aW9uQ291
bnQsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRl
c3RHcm91cC50YXNrKCkpOwogICAgICAgICBjb25zdCBleGlzdGluZ1Rlc3RHcm91cE5hbWVzID0g
bmV3IFNldCgodGhpcy5fdGVzdEdyb3VwcyB8fCBbXSkubWFwKCh0ZXN0R3JvdXApID0+IHRlc3RH
cm91cC5uYW1lKCkpKTsKQEAgLTg0MSw3ICs4NDEsNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdl
IGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb21t
aXRTZXQgPSBjb21taXRTZXRzW2ldOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwTmFtZSA9
IENvbW1pdFNldC5jcmVhdGVOYW1lV2l0aG91dENvbGxpc2lvbihDb21taXRTZXQuZGlmZihwcmV2
aW91c0NvbW1pdFNldCwgY3VycmVudENvbW1pdFNldCksIGV4aXN0aW5nVGVzdEdyb3VwTmFtZXMp
OwogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0g
YXdhaXQgVGVzdEdyb3VwLmNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRlc3RHcm91cC50YXNr
KCksIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgW3ByZXZpb3VzQ29tbWl0U2V0LCBj
dXJyZW50Q29tbWl0U2V0XSk7CisgICAgICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3
YWl0IFRlc3RHcm91cC5jcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0ZXN0R3JvdXAudGFzaygp
LCB0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIFtwcmV2aW91c0NvbW1pdFNldCwgY3Vy
cmVudENvbW1pdFNldF0sIG5vdGlmeU9uQ29tcGxldGlvbik7CiAgICAgICAgICAgICAgICAgYXdh
aXQgdGhpcy5fZGlkRmV0Y2hUZXN0R3JvdXBzKHRlc3RHcm91cHMpOwogICAgICAgICAgICAgfSBj
YXRjaChlcnJvcikgewogICAgICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gY3JlYXRlIGEg
bmV3IHRlc3QgZ3JvdXA6ICcgKyBlcnJvcik7CkBAIC04NTAsNyArODUwLDcgQEAgY2xhc3MgQW5h
bHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBfY3JlYXRlVGVzdEdyb3VwQWZ0ZXJWZXJpZnlpbmdDb21taXRTZXRMaXN0KHRlc3RH
cm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0TWFwKQorICAgIF9jcmVhdGVUZXN0
R3JvdXBBZnRlclZlcmlmeWluZ0NvbW1pdFNldExpc3QodGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlv
bkNvdW50LCBjb21taXRTZXRNYXAsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7CiAgICAgICAg
IGlmICh0aGlzLl9oYXNEdXBsaWNhdGVUZXN0R3JvdXBOYW1lKHRlc3RHcm91cE5hbWUpKSB7CiAg
ICAgICAgICAgICBhbGVydChgVGhlcmUgaXMgYWxyZWFkeSBhIHRlc3QgZ3JvdXAgbmFtZWQgIiR7
dGVzdEdyb3VwTmFtZX0iYCk7CkBAIC04NzYsMTMgKzg3NiwxMyBAQCBjbGFzcyBBbmFseXNpc1Rh
c2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgZm9yIChsZXQgbGFiZWwg
aW4gY29tbWl0U2V0TWFwKQogICAgICAgICAgICAgY29tbWl0U2V0cy5wdXNoKGNvbW1pdFNldE1h
cFtsYWJlbF0pOwogCi0gICAgICAgIHJldHVybiBUZXN0R3JvdXAuY3JlYXRlQW5kUmVmZXRjaFRl
c3RHcm91cHModGhpcy5fdGFzaywgdGVzdEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21t
aXRTZXRzKQorICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3Jv
dXBzKHRoaXMuX3Rhc2ssIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0
cywgbm90aWZ5T25Db21wbGV0aW9uKQogICAgICAgICAgICAgLnRoZW4odGhpcy5fZGlkRmV0Y2hU
ZXN0R3JvdXBzLmJpbmQodGhpcyksIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgICAgICAgYWxl
cnQoJ0ZhaWxlZCB0byBjcmVhdGUgYSBuZXcgdGVzdCBncm91cDogJyArIGVycm9yKTsKICAgICAg
ICAgfSk7CiAgICAgfQogCi0gICAgX2NyZWF0ZUN1c3RvbVRlc3RHcm91cChyZXBldGl0aW9uQ291
bnQsIHRlc3RHcm91cE5hbWUsIGNvbW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0KQorICAgIF9jcmVh
dGVDdXN0b21UZXN0R3JvdXAocmVwZXRpdGlvbkNvdW50LCB0ZXN0R3JvdXBOYW1lLCBjb21taXRT
ZXRzLCBwbGF0Zm9ybSwgdGVzdCwgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQodGhpcy5fdGFzay5pc0N1c3RvbSgpKTsKICAgICAgICAgaWYgKHRoaXMu
X2hhc0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUodGVzdEdyb3VwTmFtZSkpIHsKQEAgLTg5MCw3ICs4
OTAsNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFRlc3RHcm91cC5jcmVh
dGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlvbih0aGlzLl90YXNrLCBwbGF0Zm9ybSwgdGVzdCwgdGVz
dEdyb3VwTmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzKQorICAgICAgICBUZXN0R3Jv
dXAuY3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24odGhpcy5fdGFzaywgcGxhdGZvcm0sIHRl
c3QsIHRlc3RHcm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cywgbm90aWZ5T25D
b21wbGV0aW9uKQogICAgICAgICAgICAgLnRoZW4odGhpcy5fZGlkRmV0Y2hUZXN0R3JvdXBzLmJp
bmQodGhpcyksIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgICAgICAgYWxlcnQoJ0ZhaWxlZCB0
byBjcmVhdGUgYSBuZXcgdGVzdCBncm91cDogJyArIGVycm9yKTsKICAgICAgICAgfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBh
bmUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBh
bmUuanMKaW5kZXggOGNkN2FhMDA0N2Y3YWRmY2NkNmJmZjQwNGY4NzRjZTEzN2ZlMzA3MC4uY2Q3
NDhkZWI0OWNlZTA5OGIzZjQ5NmNhYzg4ZDM1MjNmNzNmZWYzMCAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcwpAQCAt
MTE5LDcgKzExOSw4IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2Ugewog
ICAgICAgICB9KTsKICAgICAgICAgY29uc3QgY3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94ID0g
dGhpcy5jb250ZW50KCdjcmVhdGUtd2l0aC10ZXN0LWdyb3VwJyk7CiAgICAgICAgIGNvbnN0IHJl
cGV0aXRpb25Db3VudCA9IHRoaXMuY29udGVudCgnY29uZmlybS1yZXBldGl0aW9uJyk7Ci0gICAg
ICAgIGNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2JveC5vbmNoYW5nZSA9ICgpID0+IHJlcGV0aXRp
b25Db3VudC5kaXNhYmxlZCA9ICFjcmVhdGVXaXRoVGVzdEdyb3VwQ2hlY2tib3guY2hlY2tlZDsK
KyAgICAgICAgY29uc3Qgbm90aWZ5T25Db21wbGV0aW9uID0gdGhpcy5jb250ZW50KCdub3RpZnkt
b24tY29tcGxldGlvbicpOworICAgICAgICBjcmVhdGVXaXRoVGVzdEdyb3VwQ2hlY2tib3gub25j
aGFuZ2UgPSAoKSA9PiByZXBldGl0aW9uQ291bnQuZGlzYWJsZWQgPSBub3RpZnlPbkNvbXBsZXRp
b24uZGlzYWJsZWQgPSAhY3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94LmNoZWNrZWQ7CiAgICAg
fQogCiAgICAgc2VyaWFsaXplU3RhdGUoKQpAQCAtMjM3LDEwICsyMzgsMTEgQEAgY2xhc3MgQ2hh
cnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlz
LmNvbnRlbnQoJ3Rhc2stbmFtZScpLnZhbHVlOwogICAgICAgICBjb25zdCBjcmVhdGVXaXRoVGVz
dEdyb3VwID0gdGhpcy5jb250ZW50KCdjcmVhdGUtd2l0aC10ZXN0LWdyb3VwJykuY2hlY2tlZDsK
ICAgICAgICAgY29uc3QgcmVwZXRpdGlvbkNvdW50ID0gdGhpcy5jb250ZW50KCdjb25maXJtLXJl
cGV0aXRpb24nKS52YWx1ZTsKKyAgICAgICAgY29uc3Qgbm90aWZ5T25Db21wbGV0aW9uID0gdGhp
cy5jb250ZW50KCdub3RpZnktb24tY29tcGxldGlvbicpLmNoZWNrZWQ7CiAKICAgICAgICAgdHJ5
IHsKICAgICAgICAgICAgIGNvbnN0IGFuYWx5c2lzVGFzayA9IGF3YWl0IChjcmVhdGVXaXRoVGVz
dEdyb3VwID8KLSAgICAgICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKG5hbWUsIHN0YXJ0
UG9pbnQsIGVuZFBvaW50LCAnQ29uZmlybScsIHJlcGV0aXRpb25Db3VudCkgOiBBbmFseXNpc1Rh
c2suY3JlYXRlKG5hbWUsIHN0YXJ0UG9pbnQsIGVuZFBvaW50KSk7CisgICAgICAgICAgICAgICAg
QW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0n
LCByZXBldGl0aW9uQ291bnQsIG5vdGlmeU9uQ29tcGxldGlvbikgOiBBbmFseXNpc1Rhc2suY3Jl
YXRlKG5hbWUsIHN0YXJ0UG9pbnQsIGVuZFBvaW50KSk7CiAgICAgICAgICAgICBuZXdXaW5kb3cu
bG9jYXRpb24uaHJlZiA9IHJvdXRlci51cmwoJ2FuYWx5c2lzL3Rhc2svJyArIGFuYWx5c2lzVGFz
ay5pZCgpKTsKICAgICAgICAgICAgIHRoaXMuZmV0Y2hBbmFseXNpc1Rhc2tzKHRydWUpOwogICAg
ICAgICB9IGNhdGNoKGVycm9yKSB7CkBAIC01ODMsNiArNTg1LDcgQEAgY2xhc3MgQ2hhcnRQYW5l
IGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8b3B0aW9uPjEwPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5pdGVyYXRpb25z
PC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9
ImNoZWNrYm94IiBpZD0ibm90aWZ5LW9uLWNvbXBsZXRpb24iIGNoZWNrZWQ+IE5vdGlmeSBvbiBj
b21wbGV0aW9uPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAg
ICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJjaGFy
dC1wYW5lLWZpbHRlcmluZy1vcHRpb25zIHBvcG92ZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jcmVh
dGUtYW5hbHlzaXMtdGFzay1wYWdlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9wYWdlcy9jcmVhdGUtYW5hbHlzaXMtdGFzay1wYWdlLmpzCmluZGV4IGE5ZjA4OTBjMTli
ZWZiNjMwYmYwN2RiYmI1ZTVjZTNlZTJiMzY1YWMuLjMwMWZkMmEyOTA2NTFkNTEyOGMzNTIzYWY0
OTgyMGYyMDNiYzY2YTMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFnZS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NyZWF0ZS1hbmFseXNpcy10YXNrLXBhZ2Uu
anMKQEAgLTIyLDkgKzIyLDkgQEAgY2xhc3MgQ3JlYXRlQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRz
IFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgIHRoaXMucGFydCgnZm9ybScpLmxpc3RlblRvQWN0
aW9uKCdzdGFydFRlc3RpbmcnLCB0aGlzLl9jcmVhdGVBbmFseXNpc1Rhc2tXaXRoR3JvdXAuYmlu
ZCh0aGlzKSk7CiAgICAgfQogCi0gICAgX2NyZWF0ZUFuYWx5c2lzVGFza1dpdGhHcm91cChyZXBl
dGl0aW9uQ291bnQsIHRlc3RHcm91cE5hbWUsIGNvbW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0LCB0
YXNrTmFtZSkKKyAgICBfY3JlYXRlQW5hbHlzaXNUYXNrV2l0aEdyb3VwKHJlcGV0aXRpb25Db3Vu
dCwgdGVzdEdyb3VwTmFtZSwgY29tbWl0U2V0cywgcGxhdGZvcm0sIHRlc3QsIHRhc2tOYW1lLCBu
b3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewotICAgICAgICBUZXN0R3JvdXAuY3JlYXRlV2l0aFRh
c2sodGFza05hbWUsIHBsYXRmb3JtLCB0ZXN0LCB0ZXN0R3JvdXBOYW1lLCByZXBldGl0aW9uQ291
bnQsIGNvbW1pdFNldHMpLnRoZW4oKHRhc2spID0+IHsKKyAgICAgICAgVGVzdEdyb3VwLmNyZWF0
ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9ybSwgdGVzdCwgdGVzdEdyb3VwTmFtZSwgcmVwZXRp
dGlvbkNvdW50LCBjb21taXRTZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pLnRoZW4oKHRhc2spID0+
IHsKICAgICAgICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyKCkudXJsKGBhbmFseXNpcy90
YXNrLyR7dGFzay5pZCgpfWApOwogICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IHRoaXMucm91
dGVyKCkudXJsKGBhbmFseXNpcy90YXNrLyR7dGFzay5pZCgpfWApOwogICAgICAgICB9LCAoZXJy
b3IpID0+IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXRlc3QtZ3JvdXBzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktdGVzdC1ncm91cHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZjNjc2YWJjYzFkZTc0YzZlYzll
OGRiYzU2ZjI3ODgwY2FmZWU2MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBzLmpzCkBAIC0wLDAgKzEsODggQEAK
Kyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7Citjb25z
dCBNb2NrRGF0YSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stZGF0YS5qcycpOworY29uc3Qg
VGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7Citjb25z
dCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRp
b25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7CisKK2Rlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBz
JywgZnVuY3Rpb24gKCkgeworICAgIHByZXBhcmVTZXJ2ZXJUZXN0KHRoaXMpOworCisgICAgZGVz
Y3JpYmUoJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicsICgpID0+IHsK
KworICAgICAgICBpdCgnc2hvdWxkIGdpdmUgYW4gZW1wdHkgbGlzdCBpZiB0aGVyZSBpcyBub3Qg
ZXhpc3RpbmcgdGVzdCBncm91cCBhdCBhbGwnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBj
b25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBub3QgaW5jbHVkZSBhIHRlc3QgZ3JvdXAgd2l0aCAiY2FuY2VsZWQiIHN0YXRlIGluIGF0IGxl
YXN0IG9uZSBidWlsZCByZXF1ZXN0JywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQg
TW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcs
ICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NhbmNlbGVkJ10pOworICAgICAgICAgICAgY29u
c3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90
ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
bGlzdCBhbGwgdGVzdCBncm91cHMgd2l0aCBwZW5kaW5nIG5vdGlmaWNhdGlvbicsIGFzeW5jICgp
ID0+IHsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21w
bGV0ZWQnXSk7CisgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRp
b24nKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdyb3Vwc1sw
XTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuaGlkZGVuLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMn
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5jb21taXRTZXRzLCBb
JzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQo
J3Nob3VsZCBub3QgbGlzdCBoaWRkZW4gdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgICAgIGNvbnN0IGRhdGFiYXNlID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAg
ICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2UsIFsnY29tcGxldGVkJywgJ2Nv
bXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOworICAgICAgICAgICAgYXdhaXQg
ZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3Vw
X2hpZGRlbiA9IFRSVUUgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7CisgICAgICAgICAgICBj
b25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBub3QgbGlzdCB0ZXN0IGdyb3VwcyB3aXRob3V0IG5lZWRzIG5vdGlmaWNhdGlvbiBmbGFnJywg
YXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRh
dGFiYXNlKCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFz
ZSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnXSk7
CisgICAgICAgICAgICBhd2FpdCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rlc3Rf
Z3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbmVlZHNfbm90aWZpY2F0aW9uID0gRkFMU0UgV0hFUkUgdGVz
dGdyb3VwX2lkID0gNjAwJyk7CisgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1u
b3RpZmljYXRpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcywg
W10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3QgbGlzdCBhIHRlc3QgZ3JvdXAg
dGhhdCBoYXMgc29tZSBpbmNvbXBsZXRlZCBidWlsZCByZXF1ZXN0cycsIGFzeW5jICgpID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAg
ICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2UsIFsnY29tcGxldGVk
JywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAncnVubmluZyddKTsKKyAgICAgICAgICAgIGNv
bnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
dGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC5jb21taXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCmluZGV4IGM3YTZkMTc3MWY5YjQyYzRhMmZk
MDdmNjcyYTIzZGEyNGRjN2NkODkuLmYyZDAxZmE2ZmY2MGI1ZmE3ZjNkNzAxYTAxM2Y3YTlkOThk
OWIwZjYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5h
bHlzaXMtdGFzay10ZXN0cy5qcwpAQCAtNiw2ICs2LDcgQEAgbGV0IE1vY2tEYXRhID0gcmVxdWly
ZSgnLi9yZXNvdXJjZXMvbW9jay1kYXRhLmpzJyk7CiBsZXQgVGVzdFNlcnZlciA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBhZGRCdWlsZGVyRm9yUmVwb3J0
ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRCdWlsZGVy
Rm9yUmVwb3J0OwogY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OworY29uc3QgYXNzZXJ0
VGhyb3dzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hc3Nl
cnRUaHJvd3M7CiAKIGNvbnN0IHJlcG9ydFdpdGhSZXZpc2lvbiA9IFt7CiAgICAgImJ1aWxkTnVt
YmVyIjogIjEyNCIsCkBAIC0zNTMsMTcgKzM1NCwxMCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1
bgogICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246
ICcxOTE2MjInfX07CiAgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0
SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CiAKLSAgICAgICAgbGV0IHJhaXNlRXhjZXB0aW9u
ID0gZmFsc2U7Ci0KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdjb25maXJtJywg
cmVwZXRpdGlvbkNvdW50OiAxLAorICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ1RyaWdnZXJh
YmxlTm90Rm91bmRGb3JUYXNrJywgKCkgPT4KKyAgICAgICAgICAgIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdjb25maXJtJywgcmVwZXRp
dGlvbkNvdW50OiAxLAogICAgICAgICAgICAgICAgIHJldmlzaW9uU2V0czogW29uZVJldmlzaW9u
U2V0LCBhbm90aGVyUmV2aXNpb25TZXRdLAotICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0
UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwotICAgICAgICB9IGNh
dGNoIChlcnJvcikgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnVHJpZ2dlcmFi
bGVOb3RGb3VuZEZvclRhc2snKTsKLSAgICAgICAgICAgIHJhaXNlRXhjZXB0aW9uID0gdHJ1ZTsK
LSAgICAgICAgfQotICAgICAgICBhc3NlcnQub2socmFpc2VFeGNlcHRpb24pOworICAgICAgICAg
ICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsn
aWQnXX0pKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRh
c2sgd2l0aCBubyB0ZXN0IGdyb3VwIHdoZW4gcmVwZXRpdGlvbiBjb3VudCBpcyAwJywgYXN5bmMg
KCkgPT4gewpAQCAtNDU2LDYgKzQ1MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
bmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05v
dGlmaWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCk7CiAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0
aCwgMik7CiAKQEAgLTUxMywxNyArNTA4LDEwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAg
ICAgICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5
MTYyMid9fTsKICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06
IHtyZXZpc2lvbjogJzE5MTYyMyd9fTsKIAotICAgICAgICBsZXQgcmFpc2VFeGNlcHRpb24gPSBm
YWxzZTsKLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBl
dGl0aW9uQ291bnQ6IDEsCisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnU2xhdmVOb3RGb3Vu
ZCcsICgpID0+CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
YW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMSwKICAg
ICAgICAgICAgICAgICByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlz
aW9uU2V0XSwKLSAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVu
ZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKLSAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1NsYXZlTm90Rm91bmQnKTsKLSAgICAgICAg
ICAgIHJhaXNlRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBhc3NlcnQub2so
cmFpc2VFeGNlcHRpb24pOworICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsn
aWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pKTsKIAogICAgICAgICBjb25zdCBhbGxB
bmFseXNpc1Rhc2tzID0gYXdhaXQgZGIuc2VsZWN0Um93cygnYW5hbHlzaXNfdGFza3MnKTsKICAg
ICAgICAgYXNzZXJ0Lm9rKCFhbGxBbmFseXNpc1Rhc2tzLmxlbmd0aCk7CkBAIC01ODQsNiArNTcy
LDg3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0
aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNb
MF07CiAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwor
ICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKKyAgICAg
ICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJs
ZUlkKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUo
KS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0
Zm9ybSgpKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNp
c1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworCisgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKworICAgICAgICBhc3NlcnQub2soIWJ1
aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVl
c3RzWzFdLmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmlz
VGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uaXNUZXN0KCkpOwor
CisgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRT
ZXQoKTsKKyAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5j
b21taXRTZXQoKTsKKyAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQod2Via2l0SWQpOworICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIy
Jyk7CisgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgfSk7CisK
KyAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91cCBh
bmQgcmVzcGVjdCB0aGUgIm5lZWRzTm90aWZpY2F0aW9uIiBmbGFnIGluIHRoZSBodHRwIHJlcXVl
c3QnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHdlYmtpdElkID0gMTsKKyAgICAgICAg
Y29uc3QgcGxhdGZvcm1JZCA9IDE7CisgICAgICAgIGNvbnN0IHRlc3QxSWQgPSAyOworICAgICAg
ICBjb25zdCB0cmlnZ2VyYWJsZUlkID0gMTIzNDsKKworICAgICAgICBjb25zdCBkYiA9IFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0ZXN0cycsIHtpZDog
MSwgbmFtZTogJ1N1aXRlJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Rlc3RzJywge2lk
OiB0ZXN0MUlkLCBuYW1lOiAndGVzdDEnLCBwYXJlbnQ6IDF9KTsKKyAgICAgICAgYXdhaXQgZGIu
aW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IHdlYmtpdElkLCBuYW1lOiAnV2ViS2l0J30pOwor
ICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3BsYXRmb3JtcycsIHtpZDogcGxhdGZvcm1JZCwgbmFt
ZTogJ3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJp
Z2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKKyAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDog
MjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsK
KyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVw
b3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dGVzdDogdGVzdDFJZCwgcGxhdGZvcm06
IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKKworICAgICAgICBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBv
cnRXaXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAg
ICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKworICAgICAgICBsZXQgdGVzdDEgPSBUZXN0LmZp
bmRCeUlkKHRlc3QxSWQpOworICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmlu
ZEJ5SWQocGxhdGZvcm1JZCk7CisgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNl
bGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmlj
cygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOworICAgICAgICBjb25z
dCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNv
bmZpZ1Jvd1snaWQnXX0pOworICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAy
KTsKKworICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNp
b246ICcxOTE2MjInfX07CisgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Vi
a2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CisKKyAgICAgICAgY29uc3QgY29udGVudCA9
IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywg
e25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiAxLAorICAgICAgICAgICAgdGVzdEdy
b3VwTmFtZTogJ0NvbmZpcm0nLCByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhl
clJldmlzaW9uU2V0XSwKKyAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwg
ZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXSwgbmVlZHNOb3RpZmljYXRpb246IHRydWV9KTsKKwor
ICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50
Wyd0YXNrSWQnXSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0n
KTsKKyAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CisgICAgICAgIGFzc2VydCh0
YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNr
LmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtd
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBh
c3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisKKyAg
ICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
ay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5vayh0ZXN0
R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwogICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0cy5sZW5ndGgsIDIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1j
cmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCAyZjNiMjk3NjhhNjI2ZDRlMTZhZmU5MzNl
ZDgyMTk1ZmZjYzc4MDlhLi5hMWJmZWE2NmUwMGRkMTM3ZDM4ZGE5ODQxNDA0MThmMDM2MWUyMDhl
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAt
dGVzdHMuanMKQEAgLTQwMSw2ICs0MDEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGdy
b3VwSWQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7
CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAg
YXNzZXJ0KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CkBAIC00NDcsNiArNDQ4LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBncm91cElkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQub2soIWdyb3Vw
Lm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91
cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwpAQCAt
NDg0LDYgKzQ4Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRl
ZEdyb3VwSWQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlm
aWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxk
UmVxdWVzdHMoKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAyKTsKIApAQCAtNTIyLDYgKzUyNSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91
cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAyKTsKIApAQCAtNTUzLDYgKzU1Nyw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBjb25zdCB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5u
YW1lKCkgPT0gJ1dlYktpdCcpWzBdOwpAQCAtNTk5LDYgKzYwNCw3IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIApAQCAtNjQwLDYgKzY0Niw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIApAQCAtNjg4LDYg
KzY5NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBd
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlv
bigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVz
dHMoKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsK
IApAQCAtNzM2LDYgKzc0NCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRH
cm91cElkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMik7CisgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChN
b2NrRGF0YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5w
bGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7
CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKQEAg
LTgwMCw2ICs4MDksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBz
WzBdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJ
ZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0Rh
dGEuc29tZVRlc3RJZCgpKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZv
cm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAg
ICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CkBAIC04NzQs
NiArODg0LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCks
IFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAg
ICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwpAQCAtOTU2LDYgKzk2
Nyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAg
ICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVz
dElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0
Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKQEAgLTEwNTAsNiArMTA2Miw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwg
Mik7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlk
KE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0
Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwpAQCAtMTE0NSw2ICsxMTU4
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRm
b3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwpAQCAtMTIwNywzOCArMTIyMSw2
MiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAotICAgIGl0KCdzaG91bGQgY3JlYXRlIGEg
dGVzdCBncm91cCB3aXRoIGFuIGFuYWx5c2lzIHRhc2snLCAoKSA9PiB7Ci0gICAgICAgIGxldCBp
bnNlcnRlZEdyb3VwSWQ7Ci0gICAgICAgIGxldCB3ZWJraXQ7Ci0gICAgICAgIHJldHVybiBhZGRU
cmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJl
cG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKLSAgICAgICAgICAgIGNvbnN0IHJldmlz
aW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtp
dC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKLSAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCi0gICAgICAgICAgICAg
ICAge25hbWU6ICd0ZXN0JywgdGFza05hbWU6ICdvdGhlciB0YXNrJywgcGxhdGZvcm06IE1vY2tE
YXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcmV2aXNp
b25TZXRzfSk7Ci0gICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgaW5z
ZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwotICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHJlc3VsdFsndGFza0lkJ10pLCBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpXSk7Ci0gICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywg
dGVzdEdyb3Vwc10gPSByZXN1bHQ7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNp
c1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDEpOwotICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICBpdCgn
c2hvdWxkIGNyZWF0ZSBhIHRlc3QgZ3JvdXAgd2l0aCBhbiBhbmFseXNpcyB0YXNrIHdpdGggbmVl
ZHMtbm90aWZpY2F0aW9uIGZsYWcgc2V0JywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBh
ZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOworICAgICAgICBjb25zdCB3
ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9y
eS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOworICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBb
e1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHty
ZXZpc2lvbjogJzE5MTYyMyd9fV07CisgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCisgICAgICAgICAgICB7bmFt
ZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBuZWVkc05vdGlmaWNh
dGlvbjogdHJ1ZSwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJ
ZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKKworICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNr
LCB0ZXN0R3JvdXBzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlk
KHJlc3VsdFsndGFza0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lk
J10sIHRydWUpXSk7CisgICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAn
b3RoZXIgdGFzaycpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5vayhncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7CisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwor
CisgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKKyAgICAgICAg
Y29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAg
fSk7CiAKLSAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwotICAgICAgICB9KTsKKyAgICBpdCgnc2hv
dWxkIGJlIGFibGUgdG8gY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIG5lZWRzLW5vdGlmaWNhdGlv
biBmbGFnIG5vdCBzZXQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJh
YmxlQW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJyk7CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJl
cG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9
PSAnV2ViS2l0JylbMF07CisgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5p
ZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAn
MTkxNjIzJ319XTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywKKyAgICAgICAgICAgIHtuYW1lOiAndGVzdCcs
IHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpLCB0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIG5lZWRzTm90aWZpY2F0aW9uOiBmYWxz
ZSwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3Vs
dFsndGVzdEdyb3VwSWQnXTsKKworICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNrLCB0ZXN0R3Jv
dXBzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHJlc3VsdFsn
dGFza0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUp
XSk7CisgICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFz
aycpOworCisgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3Rp
ZmljYXRpb24oKSk7CisgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0
cygpOworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKworICAgICAg
ICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CisgICAgICAgIGNvbnN0IHNl
dDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5y
ZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEu
Y3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAg
ICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBjdXN0b20gdGVzdCBncm91cCBmb3IgYW4gZXhpc3Rpbmcg
Y3VzdG9tIGFuYWx5c2lzIHRhc2snLCAoKSA9PiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3Vw
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxl
Z2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDlmNjA0MTAw
ZjE1NWFlMzZkYjIzMzdiOWMxODZmMWQwMjgyM2JlCi0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVz
dC1ncm91cC10ZXN0cy5qcwpAQCAtMCwwICsxLDIwNyBAQAorJ3VzZSBzdHJpY3QnOworCitjb25z
dCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKKworY29uc3QgTW9ja0RhdGEgPSByZXF1aXJl
KCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKK2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJl
KCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgYWRkU2xhdmVGb3JSZXBvcnQg
PSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFkZFNsYXZlRm9y
UmVwb3J0OworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9j
b21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OworY29uc3QgYXNzZXJ0VGhy
b3dzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hc3NlcnRU
aHJvd3M7CisKK2FzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFzayhuYW1lLCB3ZWJraXRS
ZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKK3sKKyAgICBjb25zdCByZXBvcnRXaXRo
UmV2aXNpb24gPSBbeworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTI0IiwKKyAgICAgICAgImJ1
aWxkVGltZSI6ICIyMDE1LTEwLTI3VDE1OjM0OjUxIiwKKyAgICAgICAgInJldmlzaW9ucyI6IHsK
KyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogd2Vi
a2l0UmV2aXNpb25zWzBdLAorICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAnMjAxNS0xMC0y
N1QxMTozNjo1Ni44Nzg0NzNaJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAibWFjT1Mi
OiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE1QTI4NCIsCisgICAgICAgICAgICB9
CisgICAgICAgIH0sCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAg
ICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAi
c29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3JtIjogInNvbWUgcGxhdGZvcm0iLAorICAg
ICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAic29tZSB0ZXN0IjogeworICAgICAgICAgICAg
ICAgICJtZXRyaWNzIjogeworICAgICAgICAgICAgICAgICAgICAiVGltZSI6IFsiQXJpdGhtZXRp
YyJdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgInRlc3RzIjogeworICAg
ICAgICAgICAgICAgICAgICAidGVzdDEiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAibWV0
cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTFdIH19LAorICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfX1dOworCisg
ICAgY29uc3QgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbiA9IFt7CisgICAgICAgICJidWlsZE51
bWJlciI6ICIxMjUiLAorICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTUtMTAtMjdUMTc6Mjc6NDEi
LAorICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiB3ZWJraXRSZXZpc2lvbnNbMV0sCisgICAgICAgICAgICAg
ICAgInRpbWVzdGFtcCI6ICcyMDE1LTEwLTI3VDE2OjM4OjEwLjc2ODk5NVonLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICJtYWNPUyI6IHsKKyAgICAgICAgICAgICAgICAicmV2aXNpb24i
OiAiMTVBMjg0IiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgImJ1aWxkZXJO
YW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAor
ICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAicGxhdGZv
cm0iOiAic29tZSBwbGF0Zm9ybSIsCisgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICJz
b21lIHRlc3QiOiB7CisgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7CisgICAgICAgICAgICAg
ICAgICAgICJUaW1lIjogWyJBcml0aG1ldGljIl0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsx
Ml0gfX0sCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9LAorICAgICAgICB9fV07CisKKyAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKTsKKyAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgIGF3
YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7CisgICAgYXdhaXQg
cmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOworICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgYW5vdGhlclJlcG9ydFdpdGhS
ZXZpc2lvbik7CisgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAgICBjb25zdCB0ZXN0ID0g
VGVzdC5maW5kQnlQYXRoKFsnc29tZSB0ZXN0JywgJ3Rlc3QxJ10pOworICAgIGNvbnN0IHBsYXRm
b3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScpOworICAgIGNvbnN0IGNv
bmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywg
e21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9
KTsKKyAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycs
IHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOworCisgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5z
Lmxlbmd0aCwgMik7CisgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgeworICAgICAgICBuYW1lOiBuYW1lLAor
ICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCisgICAgICAgIGVuZFJ1bjogdGVz
dFJ1bnNbMV1bJ2lkJ10sCisgICAgICAgIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLAorICAgIH0p
OworICAgIHJldHVybiBjb250ZW50Wyd0YXNrSWQnXTsKK30KKworYXN5bmMgZnVuY3Rpb24gYWRk
VHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucykKK3sKKyAgICBj
b25zdCByZXBvcnQgPSB7CisgICAgICAgICdzbGF2ZU5hbWUnOiAnYW5vdGhlclNsYXZlJywKKyAg
ICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAnYW5vdGhlclBhc3N3b3JkJywKKyAgICAgICAgJ3RyaWdn
ZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCisgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKKyAg
ICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0
YS5zb21lUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVz
dElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKX0sCisgICAgICAgIF0s
CisgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWworICAgICAgICAgICAge25hbWU6ICdvcy1v
bmx5JywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWworICAgICAgICAgICAgICAg
IHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6
IGZhbHNlfSwKKyAgICAgICAgICAgIF19LAorICAgICAgICAgICAge25hbWU6ICd3ZWJraXQtb25s
eScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6IFsKKyAgICAgICAgICAgICAgICB7
cmVwb3NpdG9yeTogTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDog
dHJ1ZX0sCisgICAgICAgICAgICBdfSwKKyAgICAgICAgICAgIHtuYW1lOiAnc3lzdGVtLWFuZC13
ZWJraXQnLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVzOiBbCisgICAgICAgICAgICAg
ICAge3JlcG9zaXRvcnk6IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRj
aDogZmFsc2V9LAorICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiB0cnVlfQorICAgICAgICAgICAgXX0sCisgICAg
ICAgICAgICB7bmFtZTogJ3N5c3RlbS13ZWJraXQtc2pjJywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJl
cG9zaXRvcmllczogWworICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNv
c1JlcG9zaXRvcnlJZCgpLCBhY2NlcHRzUGF0Y2g6IGZhbHNlfSwKKyAgICAgICAgICAgICAgICB7
cmVwb3NpdG9yeTogTW9ja0RhdGEuanNjUmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogZmFs
c2V9LAorICAgICAgICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKSwgYWNjZXB0c1BhdGNoOiB0cnVlfQorICAgICAgICAgICAgXX0sCisgICAgICAgIF0K
KyAgICB9OworICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKSk7CisgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQocmVwb3J0KTsKKyAgICBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCByZXBvcnQpOworICAgIGF3YWl0IGNyZWF0ZUFuYWx5c2lzVGFzayhuYW1lLCB3ZWJraXRSZXZp
c2lvbnMpOworfQorCitkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24oKXsKKyAgICBwcmVwYXJlU2VydmVyVGVzdCh0aGlzLCAnbm9kZScpOworICAg
IGJlZm9yZUVhY2goKCkgPT4geworICAgICAgICBQcml2aWxlZ2VkQVBJLmNvbmZpZ3VyZSgndGVz
dCcsICdwYXNzd29yZCcpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCByZXR1cm4gIlNsYXZl
Tm90Rm91bmQiIGlmIGludmFsaWQgc2xhdmUgbmFtZSBhbmQgcGFzc3dvcmQgY29tYmluYXRpb24g
aXMgcHJvdmlkZWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxl
QW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJyk7CisgICAgICAgIFByaXZpbGVnZWRBUEkuY29uZmln
dXJlKCd0ZXN0JywgJ3dyb25ncGFzc3dvcmQnKTsKKworICAgICAgICBhd2FpdCBhc3NlcnRUaHJv
d3MoJ1NsYXZlTm90Rm91bmQnLCAoKSA9PiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRh
dGUtdGVzdC1ncm91cCcsIHt9KSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJldHVybiAi
VGVzdEdyb3VwTm90U3BlY2lmaWVkIiBpZiB0ZXN0IGdyb3VwIGlzIG5vdCBzcGVjaWZpZWQnLCBh
c3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzaygn
c29tZSB0YXNrJyk7CisKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdUZXN0R3JvdXBOb3RT
cGVjaWZpZWQnLCAoKSA9PiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1n
cm91cCcsIHt9KSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJldHVybiAiTm90aWZpY2F0
aW9uU2VudEF0RmllbGRTaG91bGRPbmx5QmVTZXRXaGVuTmVlZHNOb3RpZmljYXRpb25Jc0ZhbHNl
IiBpZiAibmVlZHNOb3RpZmljYXRpb24iIGlzIGZhbHNlIGJ1dCAibm90aWZpY2F0aW9uU2VudEF0
IiBpcyBub3Qgc2V0JywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRUcmlnZ2VyYWJs
ZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOworCisgICAgICAgIGF3YWl0IGFzc2VydFRocm93
cygnTm90aWZpY2F0aW9uU2VudEF0RmllbGRTaG91bGRPbmx5QmVTZXRXaGVuTmVlZHNOb3RpZmlj
YXRpb25Jc0ZhbHNlJywgKCkgPT4KKyAgICAgICAgICAgIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiAxLCBuZWVkc05vdGlmaWNhdGlvbjogZmFs
c2V9KSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJldHVybiAiTm90aWZpY2F0aW9uU2Vu
dEF0RmllbGRTaG91bGRPbmx5QmVTZXRXaGVuTmVlZHNOb3RpZmljYXRpb25Jc0ZhbHNlIiBpZiAi
bmVlZHNOb3RpZmljYXRpb24iIGlzIHRydWUgYnV0ICJub3RpZmljYXRpb25TZW50QXQiIGlzIHNl
dCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVU
YXNrKCdzb21lIHRhc2snKTsKKworICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ05vdGlmaWNh
dGlvblNlbnRBdEZpZWxkU2hvdWxkT25seUJlU2V0V2hlbk5lZWRzTm90aWZpY2F0aW9uSXNGYWxz
ZScsICgpID0+CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUt
dGVzdC1ncm91cCcsIHtncm91cDogMSwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIG5vdGlmaWNh
dGlvblNlbnRBdDogKG5ldyBEYXRlKS50b0lTT1N0cmluZygpfSkpOworICAgIH0pOworCisgICAg
aXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSAibmVlZHNfbm90aWZpY2F0aW9uIiBmaWVsZCB0
byBmYWxzZScsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkVHJpZ2dlcmFibGVBbmRD
cmVhdGVUYXNrKCdzb21lIHRhc2snKTsKKyAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJL
aXQnKVswXTsKKyAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7
cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMn
fX1dOworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLAorICAgICAgICAgICAge25hbWU6ICd0ZXN0JywgdGFza05h
bWU6ICdvdGhlciB0YXNrJywgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRl
c3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIHJldmlz
aW9uU2V0c30pOworICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RH
cm91cElkJ107CisKKyAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5m
ZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7
CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVlKTsKKyAgICAg
ICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRpb25TZW50QXQoKSk7CisKKyAgICAgICAgY29u
c3Qgbm90aWZpY2F0aW9uU2VudEF0ID0gbmV3IERhdGU7CisgICAgICAgIGF3YWl0IFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdy
b3VwSWQsIG5lZWRzTm90aWZpY2F0aW9uOiBmYWxzZSwgbm90aWZpY2F0aW9uU2VudEF0OiBub3Rp
ZmljYXRpb25TZW50QXQudG9JU09TdHJpbmcoKX0pOworCisgICAgICAgIGNvbnN0IHVwZGF0ZWRH
cm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRy
dWUpOworICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCBm
YWxzZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5vdGlmaWNhdGlv
blNlbnRBdCgpLCBub3RpZmljYXRpb25TZW50QXQuZ2V0VGltZSgpKTsKKyAgICB9KTsKKworICAg
IGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGRhdGUgIm5lZWRzX25vdGlmaWNhdGlvbiIgZmllbGQg
dG8gdHJ1ZScsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkVHJpZ2dlcmFibGVBbmRD
cmVhdGVUYXNrKCdzb21lIHRhc2snKTsKKyAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJL
aXQnKVswXTsKKyAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7
cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMn
fX1dOworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLAorICAgICAgICAgICAge25hbWU6ICd0ZXN0JywgdGFza05h
bWU6ICdvdGhlciB0YXNrJywgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRl
c3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgbmVlZHNOb3RpZmljYXRpb246IGZhbHNlLCByZXZp
c2lvblNldHN9KTsKKyAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0
R3JvdXBJZCddOworCisgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOworICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91
cHNbMF07CisgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OworICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAg
ICAgICBhc3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKKworICAgICAgICBh
d2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91
cDogaW5zZXJ0ZWRHcm91cElkLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pOworCisgICAgICAg
IGNvbnN0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3Vs
dFsndGFza0lkJ10sIHRydWUpOworICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05v
dGlmaWNhdGlvbigpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRp
b25TZW50QXQoKSk7CisgICAgfSk7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNl
cy9tb2NrLWRhdGEuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jl
c291cmNlcy9tb2NrLWRhdGEuanMKaW5kZXggOTRhMzkzZjFlOTY5NTZlNTlkODUyMGRiOTA0N2I2
MWU4MzRiYzdhNS4uNjQ1MjBhNWVmNTU1ZGEzMWY3OWE2NTFiZjAwYjUzOGQyMzdjM2JjNCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMv
bW9jay1kYXRhLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cmVzb3VyY2VzL21vY2stZGF0YS5qcwpAQCAtNzksNyArNzksNyBAQCBNb2NrRGF0YSA9IHsKICAg
ICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGFza3MnLCB7aWQ6IDUwMCwgcGxhdGZvcm06
IDY1LCBtZXRyaWM6IDMwMCwgbmFtZTogJ3NvbWUgdGFzaycsCiAgICAgICAgICAgICAgICAgc3Rh
cnRfcnVuOiA4MDEsIHN0YXJ0X3J1bl90aW1lOiAnMjAxNS0xMC0yN1QxMjowNToyNy4xWicsCiAg
ICAgICAgICAgICAgICAgZW5kX3J1bjogODAxLCBlbmRfcnVuX3RpbWU6ICcyMDE1LTEwLTI3VDEy
OjA1OjI3LjFaJ30pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190ZXN0X2dyb3Vw
cycsIHtpZDogNjAwLCB0YXNrOiA1MDAsIG5hbWU6ICdzb21lIHRlc3QgZ3JvdXAnfSksCisgICAg
ICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lkOiA2MDAsIHRhc2s6
IDUwMCwgbmFtZTogJ3NvbWUgdGVzdCBncm91cCcsIG5lZWRzX25vdGlmaWNhdGlvbjogdHJ1ZX0p
LAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAwLCBzdGF0
dXM6IHN0YXR1c0xpc3RbMF0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAy
MDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDAsIGNvbW1p
dF9zZXQ6IDQwMX0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtp
ZDogNzAxLCBzdGF0dXM6IHN0YXR1c0xpc3RbMV0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0
b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3Jk
ZXI6IDEsIGNvbW1pdF9zZXQ6IDQwMn0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9y
ZXF1ZXN0cycsIHtpZDogNzAyLCBzdGF0dXM6IHN0YXR1c0xpc3RbMl0sIHRyaWdnZXJhYmxlOiAx
MDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3Jv
dXA6IDYwMCwgb3JkZXI6IDIsIGNvbW1pdF9zZXQ6IDQwMX0pLApkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXIuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0cy1ub3Rp
Zmllci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNzU3OWRmYmE1NGMxM2JjZjFmNTM1ZjQ1OWFjYTA4N2Y1Zjc2
NDM4Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pz
L2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXIuanMKQEAgLTAsMCArMSwxMzEgQEAKK2dsb2JhbC5D
b21tb25Db21wb25lbnRCYXNlID0gcmVxdWlyZSgnLi4vLi4vcHVibGljL3NoYXJlZC9jb21tb24t
Y29tcG9uZW50LWJhc2UnKS5Db21tb25Db21wb25lbnRCYXNlOworZ2xvYmFsLk1hcmt1cFBhZ2Ug
PSByZXF1aXJlKCcuL21hcmt1cC1jb21wb25lbnQuanMnKS5NYXJrdXBQYWdlOworZ2xvYmFsLk1h
cmt1cENvbXBvbmVudEJhc2UgPSByZXF1aXJlKCcuL21hcmt1cC1jb21wb25lbnQuanMnKS5NYXJr
dXBDb21wb25lbnRCYXNlOworCitjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7Citjb25zdCBwYXRo
ID0gcmVxdWlyZSgncGF0aCcpOworY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpOworY29uc3QgVGVz
dEdyb3VwUmVzdWx0UGFnZSA9IHJlcXVpcmUoJy4vdGVzdC1ncm91cC1yZXN1bHQtcGFnZS5qcycp
LlRlc3RHcm91cFJlc3VsdFBhZ2U7CisKK2NsYXNzIEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyIHsK
KyAgICBjb25zdHJ1Y3RvcihtZXNzYWdlVGVtcGxhdGUsIGZpbmFsaXplU2NyaXB0LCBtZXNzYWdl
Q29uc3RydWN0aW9uUnVsZXMsIG5vdGlmaWNhdGlvblNlcnZlclJlbW90ZUFQSSwgbm90aWZpY2F0
aW9uU2VydmljZVBhdGgsIFN1YnByb2Nlc3MpCisgICAgeworICAgICAgICB0aGlzLl9tZXNzYWdl
VGVtcGxhdGUgPSBtZXNzYWdlVGVtcGxhdGU7CisgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNl
cnZlclJlbW90ZUFQSSA9IG5vdGlmaWNhdGlvblNlcnZlclJlbW90ZUFQSTsKKyAgICAgICAgdGhp
cy5fbm90aWZpY2F0aW9uU2VydmljZVBhdGggPSBub3RpZmljYXRpb25TZXJ2aWNlUGF0aDsKKyAg
ICAgICAgdGhpcy5fc3VicHJvY2VzcyA9IFN1YnByb2Nlc3M7CisgICAgICAgIHRoaXMuX2ZpbmFs
aXplU2NyaXB0ID0gZmluYWxpemVTY3JpcHQ7CisgICAgICAgIHRoaXMuX21lc3NhZ2VDb25zdHJ1
Y3Rpb25SdWxlcyA9IG1lc3NhZ2VDb25zdHJ1Y3Rpb25SdWxlczsKKyAgICB9CisKKyAgICBhc3lu
YyBzZW5kTm90aWZpY2F0aW9uc0ZvclRlc3RHcm91cHModGVzdEdyb3VwcykKKyAgICB7CisgICAg
ICAgIGZvciAoY29uc3QgdGVzdEdyb3VwIG9mIHRlc3RHcm91cHMpIHsKKyAgICAgICAgICAgIGF3
YWl0IHRlc3RHcm91cC5mZXRjaFRhc2soKTsKKyAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gYCIk
e3Rlc3RHcm91cC50YXNrKCkubmFtZSgpfSIgLSAiJHt0ZXN0R3JvdXAubmFtZSgpfSIgaGFzIGZp
bmlzaGVkYDsKKyAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBBbmFseXNpc1Jlc3Vs
dHNOb3RpZmllci5fbWVzc2FnZUZvclRlc3RHcm91cCh0ZXN0R3JvdXAsIHRpdGxlKTsKKyAgICAg
ICAgICAgIGxldCBjb250ZW50ID0gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX2luc3RhbnRpYXRl
Tm90aWZpY2F0aW9uVGVtcGxhdGUodGhpcy5fbWVzc2FnZVRlbXBsYXRlLCB0aXRsZSwgbWVzc2Fn
ZSk7CisgICAgICAgICAgICBjb250ZW50ID0gdGhpcy5fYXBwbHlSdWxlcyh0ZXN0R3JvdXAucGxh
dGZvcm0oKS5uYW1lKCksIHRlc3RHcm91cC50ZXN0KCkucGF0aCgpWzBdLm5hbWUoKSwgY29udGVu
dCk7CisgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXBJbmZvID0ge2F1dGhvcjogdGVzdEdyb3Vw
LmF1dGhvcigpfTsKKworICAgICAgICAgICAgY29uc3QgdGVtcERpciA9IGZzLm1rZHRlbXBTeW5j
KG9zLnRtcGRpcigpKTsKKyAgICAgICAgICAgIGNvbnN0IHRlbXBGaWxlUGF0aCA9IHBhdGguam9p
bih0ZW1wRGlyLCAndGVtcC1jb250ZW50Lmpzb24nKTsKKyAgICAgICAgICAgIGZzLndyaXRlRmls
ZVN5bmModGVtcEZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeSh7Y29udGVudCwgdGVzdEdyb3VwSW5m
b30pKTsKKyAgICAgICAgICAgIGNvbnRlbnQgPSBKU09OLnBhcnNlKGF3YWl0IHRoaXMuX3N1YnBy
b2Nlc3MuZXhlY3V0ZShbLi4udGhpcy5fZmluYWxpemVTY3JpcHQsIHRlbXBGaWxlUGF0aF0pKTsK
KyAgICAgICAgICAgIGZzLnVubGlua1N5bmModGVtcEZpbGVQYXRoKTsKKyAgICAgICAgICAgIGZz
LnJtZGlyU3luYyh0ZW1wRGlyKTsKKworICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2VuZE5vdGlm
aWNhdGlvbihjb250ZW50KTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RHcm91cC5kaWRTZW5kTm90
aWZpY2F0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgYXN5bmMgX21lc3Nh
Z2VGb3JUZXN0R3JvdXAodGVzdEdyb3VwLCB0aXRsZSkKKyAgICB7CisgICAgICAgIGNvbnN0IHBh
Z2UgPSBuZXcgVGVzdEdyb3VwUmVzdWx0UGFnZSh0aXRsZSk7CisgICAgICAgIGF3YWl0IHBhZ2Uu
c2V0VGVzdEdyb3VwKHRlc3RHcm91cCk7CisKKyAgICAgICAgcmV0dXJuIHBhZ2UuZ2VuZXJhdGVN
YXJrdXAoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2luc3RhbnRpYXRlTm90aWZpY2F0aW9uVGVt
cGxhdGUodGVtcGxhdGUsIHRpdGxlLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgY29uc3QgaW5z
dGFuY2UgPSB7fTsKKyAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRlbXBsYXRlKSB7CisgICAg
ICAgICAgICBjb25zdCB2YWx1ZSA9IHRlbXBsYXRlW25hbWVdOworICAgICAgICAgICAgaWYgKHR5
cGVvZih2YWx1ZSkgPT09ICdzdHJpbmcnKQorICAgICAgICAgICAgICAgIGluc3RhbmNlW25hbWVd
ID0gdmFsdWUucmVwbGFjZSgvXCR0aXRsZS9nLCB0aXRsZSkucmVwbGFjZSgvXCRtZXNzYWdlL2cs
IG1lc3NhZ2UpOworICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mKHRlbXBsYXRlW25hbWVdKSA9
PT0gJ29iamVjdCcpCisgICAgICAgICAgICAgICAgaW5zdGFuY2VbbmFtZV0gPSB0aGlzLl9pbnN0
YW50aWF0ZU5vdGlmaWNhdGlvblRlbXBsYXRlKHZhbHVlLCB0aXRsZSwgbWVzc2FnZSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaW5zdGFuY2VbbmFtZV0gPSB2YWx1ZTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQorCisgICAgX2FwcGx5UnVs
ZXMocGxhdGZvcm1OYW1lLCB0ZXN0TmFtZSwgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIGZvciAo
Y29uc3QgcnVsZSBvZiB0aGlzLl9tZXNzYWdlQ29uc3RydWN0aW9uUnVsZXMpIHsKKyAgICAgICAg
ICAgIGlmIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUocGxhdGZvcm1OYW1l
LCB0ZXN0TmFtZSwgcnVsZSkpCisgICAgICAgICAgICAgICAgbWVzc2FnZSA9IEFuYWx5c2lzUmVz
dWx0c05vdGlmaWVyLl9hcHBseVVwZGF0ZShtZXNzYWdlLCBydWxlLnBhcmFtZXRlcnMpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBtZXNzYWdlOworICAgIH0KKworICAgIHN0YXRpYyBfbWF0
Y2hlc1J1bGUocGxhdGZvcm0sIHRlc3QsIHJ1bGUpCisgICAgeworICAgICAgICBsZXQgaGFzTWF0
Y2ggPSBmYWxzZTsKKworICAgICAgICBpZiAocnVsZS50ZXN0cykgeworICAgICAgICAgICAgaWYg
KCFydWxlLnRlc3RzLmluY2x1ZGVzKHRlc3QpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIGhhc01hdGNoID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
cnVsZS5wbGF0Zm9ybXMpIHsKKyAgICAgICAgICAgIGlmICghcnVsZS5wbGF0Zm9ybXMuaW5jbHVk
ZXMocGxhdGZvcm0pKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGhhc01hdGNoID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaGFzTWF0Y2g7Cisg
ICAgfQorCisgICAgc3RhdGljIF9hcHBseVVwZGF0ZShtZXNzYWdlLCB1cGRhdGUpCisgICAgewor
ICAgICAgICBjb25zdCBtZXNzYWdlVHlwZSA9IHR5cGVvZiBtZXNzYWdlOworICAgICAgICBjb25z
dCB1cGRhdGVUeXBlID0gdHlwZW9mIHVwZGF0ZTsKKyAgICAgICAgY29uc3Qgc3VwcG9ydGVkUHJp
bWl0aXZlVHlwZXMgPSBbInN0cmluZyIsICJudW1iZXIiLCAiYm9vbGVhbiJdOworICAgICAgICBj
b25zdCB1bnN1cHBvcnRlZFByaW1pdGl2ZVR5cGVzID0gWyJzeW1ib2wiLCAiZnVuY3Rpb24iLCAi
dW5kZWZpbmVkIl07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF1bnN1cHBvcnRlZFByaW1pdGl2
ZVR5cGVzLmluY2x1ZGVzKG1lc3NhZ2VUeXBlKSAmJiAhdW5zdXBwb3J0ZWRQcmltaXRpdmVUeXBl
cy5pbmNsdWRlcyh1cGRhdGVUeXBlKSk7CisKKyAgICAgICAgaWYgKHN1cHBvcnRlZFByaW1pdGl2
ZVR5cGVzLmluY2x1ZGVzKG1lc3NhZ2VUeXBlKSB8fCBzdXBwb3J0ZWRQcmltaXRpdmVUeXBlcy5p
bmNsdWRlcyh1cGRhdGVUeXBlKSkKKyAgICAgICAgICAgIHJldHVybiBbbWVzc2FnZSwgdXBkYXRl
XTsKKworICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModXBk
YXRlKSkgeworICAgICAgICAgICAgbGV0IG1lcmdlZFZhbHVlID0gbnVsbDsKKyAgICAgICAgICAg
IGxldCB2YWx1ZVRvTWVyZ2UgPSBtZXNzYWdlW2tleV07CisKKyAgICAgICAgICAgIGlmICghKGtl
eSBpbiBtZXNzYWdlKSkKKyAgICAgICAgICAgICAgICBtZXJnZWRWYWx1ZSA9IHZhbHVlOworICAg
ICAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgQXJyYXkuaXNBcnJheSh2
YWx1ZVRvTWVyZ2UpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVl
KSkKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBbdmFsdWVdOworICAgICAgICAgICAgICAg
IGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZVRvTWVyZ2UpKQorICAgICAgICAgICAgICAgICAgICB2
YWx1ZVRvTWVyZ2UgPSBbdmFsdWVUb01lcmdlXTsKKyAgICAgICAgICAgICAgICBtZXJnZWRWYWx1
ZSA9IFsuLi52YWx1ZVRvTWVyZ2UsIC4uLnZhbHVlXTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIG1lcmdlZFZhbHVlID0gdGhpcy5fYXBwbHlVcGRhdGUodmFsdWVUb01lcmdl
LCB2YWx1ZSk7CisKKyAgICAgICAgICAgIG1lc3NhZ2Vba2V5XSA9IG1lcmdlZFZhbHVlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBtZXNzYWdlOworICAgIH0KKworICAgIF9zZW5kTm90aWZp
Y2F0aW9uKGNvbnRlbnQpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9u
U2VydmVyUmVtb3RlQVBJLnBvc3RKU09OKHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2VQYXRoLCBj
b250ZW50KTsKKyAgICB9Cit9CisKKworaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQn
KQorICAgIG1vZHVsZS5leHBvcnRzLkFuYWx5c2lzUmVzdWx0c05vdGlmaWVyID0gQW5hbHlzaXNS
ZXN1bHRzTm90aWZpZXI7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21lYXN1cmVtZW50LXNldC1hbmFseXpl
ci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tZWFzdXJlbWVudC1zZXQt
YW5hbHl6ZXIuanMKaW5kZXggMmRiMDQ3YTRiZDE0OGExMzg4NGRkNGRmZmE2YTRkNzgwNzRkZTQ2
OS4uYzkzYjkwYmVjZjhiOWQ2NzBmNDUzZjliYzNlNDczOWZmOWNjYzg1NiAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21lYXN1cmVtZW50LXNldC1hbmFseXpl
ci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvbWVhc3VyZW1lbnQt
c2V0LWFuYWx5emVyLmpzCkBAIC0xMDQsNyArMTA0LDcgQEAgY2xhc3MgTWVhc3VyZW1lbnRTZXRB
bmFseXplciB7CiAKICAgICAgICAgLy8gRklYTUU6IFRoZSBpdGVyYXRpb24gY291bnQgc2hvdWxk
IGJlIHNtYXJ0ZXIgdGhhbiBoYXJkLWNvZGluZy4KICAgICAgICAgY29uc3QgYW5hbHlzaXNUYXNr
ID0gYXdhaXQgQW5hbHlzaXNUYXNrLmNyZWF0ZShzdW1tYXJ5LCByYW5nZVdpdGhNb3N0U2lnbmlm
aWNhbnRDaGFuZ2Uuc3RhcnRQb2ludCwKLSAgICAgICAgICAgIHJhbmdlV2l0aE1vc3RTaWduaWZp
Y2FudENoYW5nZS5lbmRQb2ludCwgJ0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIHJhbmdlV2l0
aE1vc3RTaWduaWZpY2FudENoYW5nZS5lbmRQb2ludCwgJ0NvbmZpcm0nLCA0LCB0cnVlKTsKIAog
ICAgICAgICB0aGlzLl9sb2dnZXIuaW5mbyhgQ3JlYXRlZCBhbmFseXNpcyB0YXNrIHdpdGggaWQg
IiR7YW5hbHlzaXNUYXNrLmlkKCl9IiB0byBjb25maXJtOiAiJHtzdW1tYXJ5fSIuYCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3Rlc3QtZ3Jv
dXAtcmVzdWx0LXBhZ2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdGVz
dC1ncm91cC1yZXN1bHQtcGFnZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzcxYTIzMzkxMzJjZjIyMjY4N2Zh
NGQxNmQ4NWU1MzI1NGY3NTg4Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL3Rlc3QtZ3JvdXAtcmVzdWx0LXBhZ2UuanMKQEAgLTAsMCArMSwyMzgg
QEAKK2NsYXNzIFRlc3RHcm91cFJlc3VsdFBhZ2UgZXh0ZW5kcyBNYXJrdXBQYWdlIHsKKyAgICBj
b25zdHJ1Y3Rvcih0aXRsZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAg
dGhpcy5fdGVzdEdyb3VwID0gbnVsbDsKKyAgICAgICAgdGhpcy5fYW5hbHlzaXNSZXN1bHRzID0g
bnVsbDsKKyAgICAgICAgdGhpcy5fYW5hbHlzaXNVUkwgPSBudWxsOworICAgICAgICB0aGlzLl9h
bmFseXNpc1Rhc2sgPSBudWxsOworICAgICAgICB0aGlzLl9jb25zdHJ1Y3RUYWJsZXNMYXppbHkg
PSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5jb25zdHJ1Y3RUYWJsZXMuYmluZCh0
aGlzKSk7CisgICAgfQorCisgICAgYXN5bmMgc2V0VGVzdEdyb3VwKHRlc3RHcm91cCkKKyAgICB7
CisgICAgICAgIHRoaXMuX3Rlc3RHcm91cCA9IHRlc3RHcm91cDsKKyAgICAgICAgdGhpcy5fYW5h
bHlzaXNUYXNrID0gYXdhaXQgdGVzdEdyb3VwLmZldGNoVGFzaygpOworICAgICAgICB0aGlzLl9h
bmFseXNpc1Jlc3VsdHMgPSBhd2FpdCBBbmFseXNpc1Jlc3VsdHMuZmV0Y2godGhpcy5fYW5hbHlz
aXNUYXNrLmlkKCkpOworICAgICAgICB0aGlzLl9hbmFseXNpc1VSTCA9IFRlc3RHcm91cFJlc3Vs
dFBhZ2UuX1VSTEZvckFuYWx5c2lzVGFzayh0aGlzLl9hbmFseXNpc1Rhc2spOworICAgICAgICB0
aGlzLmVucXVldWVUb1JlbmRlcigpOworICAgIH0KKworICAgIHN0YXRpYyBfVVJMRm9yQW5hbHlz
aXNUYXNrKGFuYWx5c2lzVGFzaykKKyAgICB7CisgICAgICAgIHJldHVybiBnbG9iYWwuUmVtb3Rl
QVBJLnVybChgL3YzLyMvYW5hbHlzaXMvdGFzay8ke2FuYWx5c2lzVGFzay5pZCgpfWApOworICAg
IH0KKworICAgIF9idWlsZENvbW1pdFNldFRvUmVzdWx0c0FNYXBBbmRCYXJXaWR0aENhbGN1bGF0
b3IodGVzdEdyb3VwLCBhbmFseXNpc1Jlc3VsdHNWaWV3KQorICAgIHsKKyAgICAgICAgY29uc3Qg
cmVzdWx0c0J5Q29tbWl0U2V0ID0gbmV3IE1hcDsKKyAgICAgICAgbGV0IG1heFZhbHVlID0gLUlu
ZmluaXR5OworICAgICAgICBsZXQgbWluVmFsdWUgPSBJbmZpbml0eTsKKyAgICAgICAgZm9yIChj
b25zdCBjb21taXRTZXQgb2YgdGVzdEdyb3VwLnJlcXVlc3RlZENvbW1pdFNldHMoKSkKKyAgICAg
ICAgeworICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0c0ZvckNvbW1pdFNldCA9IHRlc3RH
cm91cC5yZXF1ZXN0c0ZvckNvbW1pdFNldChjb21taXRTZXQpOworICAgICAgICAgICAgY29uc3Qg
cmVzdWx0cyA9IGJ1aWxkUmVxdWVzdHNGb3JDb21taXRTZXQubWFwKChidWlsZFJlcXVlc3QpID0+
IGFuYWx5c2lzUmVzdWx0c1ZpZXcucmVzdWx0Rm9yUmVxdWVzdChidWlsZFJlcXVlc3QpKTsKKyAg
ICAgICAgICAgIHJlc3VsdHNCeUNvbW1pdFNldC5zZXQoY29tbWl0U2V0LCByZXN1bHRzKTsKKyAg
ICAgICAgICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgbWF4VmFsdWUgPSBNYXRoLm1heChtYXhWYWx1ZSwgcmVzdWx0LnZhbHVlKTsKKyAgICAg
ICAgICAgICAgICBtaW5WYWx1ZSA9IE1hdGgubWluKG1pblZhbHVlLCByZXN1bHQudmFsdWUpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNvbnN0IGRpZmYgPSBtYXhWYWx1ZSAt
IG1pblZhbHVlOworICAgICAgICBtaW5WYWx1ZSAtPSBkaWZmICogMC4xOworICAgICAgICBtYXhW
YWx1ZSArPSBkaWZmICogMC4xOworCisgICAgICAgIHJldHVybiBbcmVzdWx0c0J5Q29tbWl0U2V0
LCAodmFsdWUpID0+ICh2YWx1ZSAtIG1pblZhbHVlKSAvIChtYXhWYWx1ZSAtIG1pblZhbHVlKSAq
IDEwMF07CisgICAgfQorCisgICAgY29uc3RydWN0VGFibGVzKHRlc3RHcm91cCwgYW5hbHlzaXNS
ZXN1bHRzLCBhbmFseXNpc1VSTCwgYW5hbHlzaXNUYXNrKQorICAgIHsKKyAgICAgICAgY29uc3Qg
cmVxdWVzdGVkQ29tbWl0U2V0cyA9IHRlc3RHcm91cC5yZXF1ZXN0ZWRDb21taXRTZXRzKCk7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcXVlc3RlZENvbW1pdFNldHMubGVuZ3RoLCAyKTsKKwor
ICAgICAgICBjb25zdCB0ZXN0ID0gdGVzdEdyb3VwLnRlc3QoKTsKKyAgICAgICAgY29uc3QgbWV0
cmljcyA9IGFuYWx5c2lzVGFzay5tZXRyaWMoKSA/IFthbmFseXNpc1Rhc2subWV0cmljKCldIDog
dGVzdC5tZXRyaWNzKCk7CisgICAgICAgIGNvbnN0IHRhYmxlc1dpdGhTdW1tYXJ5ID0gW107CisK
KyAgICAgICAgZm9yIChjb25zdCBtZXRyaWMgb2YgbWV0cmljcykgeworICAgICAgICAgICAgY29u
c3QgZm9ybWF0dGVyID0gbWV0cmljLm1ha2VGb3JtYXR0ZXIoNCk7CisgICAgICAgICAgICBjb25z
dCBkZWx0YUZvcm1hdHRlciA9IG1ldHJpYy5tYWtlRm9ybWF0dGVyKDIsIGZhbHNlKTsKKyAgICAg
ICAgICAgIGNvbnN0IGZvcm1hdFZhbHVlID0gKHZhbHVlLCBpbnRlcnZhbCkgPT4geworICAgICAg
ICAgICAgICAgIGNvbnN0IGRlbHRhID0gaW50ZXJ2YWwgPyAoaW50ZXJ2YWxbMV0gLSBpbnRlcnZh
bFswXSkgLyAyIDogbnVsbDsKKyAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRQYXJ0cyA9IFt2
YWx1ZSA9PSBudWxsIHx8IGlzTmFOKHZhbHVlKSA/ICctJyA6IGZvcm1hdHRlcih2YWx1ZSldOwor
ICAgICAgICAgICAgICAgIGlmIChkZWx0YSAhPSBudWxsICYmICFpc05hTihkZWx0YSkpCisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goYCBcdTAwYjEgJHtkZWx0YUZvcm1hdHRl
cihkZWx0YSl9YCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFBhcnRzOworICAgICAg
ICAgICAgfTsKKworICAgICAgICAgICAgY29uc3QgYW5hbHlzaXNSZXN1bHRzVmlldyA9IGFuYWx5
c2lzUmVzdWx0cy52aWV3Rm9yTWV0cmljKG1ldHJpYyk7CisgICAgICAgICAgICBjb25zdCBbcmVz
dWx0c0J5Q29tbWl0U2V0LCBiYXJXaWR0aENhbGN1bGF0b3JdID0gdGhpcy5fYnVpbGRDb21taXRT
ZXRUb1Jlc3VsdHNBTWFwQW5kQmFyV2lkdGhDYWxjdWxhdG9yKHRlc3RHcm91cCwgYW5hbHlzaXNS
ZXN1bHRzVmlldyk7CisKKyAgICAgICAgICAgIGNvbnN0IHRhYmxlQm9kaWVzID0gW107CisgICAg
ICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBvZiByZXF1ZXN0ZWRDb21taXRTZXRzKSB7Cisg
ICAgICAgICAgICAgICAgbGV0IGZpcnN0Um93ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjb25z
dCB0YWJsZVJvd3MgPSBbXTsKKyAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gcmVzdWx0
c0J5Q29tbWl0U2V0LmdldChjb21taXRTZXQpOworICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVl
cyA9IHJlc3VsdHMuZmlsdGVyKChyZXN1bHQpID0+ICEhcmVzdWx0KS5tYXAoKHJlc3VsdCkgPT4g
cmVzdWx0LnZhbHVlKTsKKworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJl
c3VsdHMpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFyR3JhcGggPSBuZXcgQmFyR3Jh
cGg7CisgICAgICAgICAgICAgICAgICAgIGJhckdyYXBoLnNldFdpZHRoKHJlc3VsdCA/IGJhcldp
ZHRoQ2FsY3VsYXRvcihyZXN1bHQudmFsdWUpIDogbnVsbCk7CisgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNlbGxDb250ZW50ID0gW2JhckdyYXBoLCByZXN1bHQgPyBmb3JtYXRWYWx1ZShyZXN1
bHQudmFsdWUsIHJlc3VsdC5pbnRlcnZhbCkuam9pbignJykgOiAnRmFpbGVkJ107CisKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGZpcnN0Um93KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
aXJzdFJvdyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVSb3dzLnB1c2go
dGhpcy5jcmVhdGVFbGVtZW50KCd0cicsIFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLmNyZWF0ZUVsZW1lbnQoJ3RoJywge2NsYXNzOiAnZmlyc3Qtcm93Jywgcm93c3BhbjogcmVz
dWx0cy5sZW5ndGh9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVzdEdyb3Vw
LmxhYmVsRm9yQ29tbWl0U2V0KGNvbW1pdFNldCkgKyAnOiAnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9ybWF0VmFsdWUoU3RhdGlzdGljcy5tZWFuKHZhbHVlcyksIFN0
YXRpc3RpY3MuY29uZmlkZW5jZUludGVydmFsKHZhbHVlcykpLm1hcCgoY29udGVudCA9PiB0aGlz
LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7Y2xhc3M6ICduby13cmFwJ30sIGNvbnRlbnQpKSldKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUVsZW1lbnQoJ3RkJywge2Ns
YXNzOiAncmVzdWx0LWNlbGwgZmlyc3Qtcm93J30sIGNlbGxDb250ZW50KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIF0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvd3MucHVzaCh0aGlzLmNy
ZWF0ZUVsZW1lbnQoJ3RyJywgdGhpcy5jcmVhdGVFbGVtZW50KCd0ZCcsIHtjbGFzczogJ3Jlc3Vs
dC1jZWxsJ30sIGNlbGxDb250ZW50KSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB0YWJsZUJvZGllcy5wdXNoKHRoaXMuY3JlYXRlRWxlbWVudCgndGJvZHknLCB0YWJsZVJv
d3MpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3QgYmVmb3JlVmFsdWVzID0g
cmVzdWx0c0J5Q29tbWl0U2V0LmdldChyZXF1ZXN0ZWRDb21taXRTZXRzWzBdKS5maWx0ZXIoKHJl
c3VsdCkgPT4gISFyZXN1bHQpLm1hcCgocmVzdWx0KSA9PiByZXN1bHQudmFsdWUpOworICAgICAg
ICAgICAgY29uc3QgYWZ0ZXJWYWx1ZXMgPSByZXN1bHRzQnlDb21taXRTZXQuZ2V0KHJlcXVlc3Rl
ZENvbW1pdFNldHNbMV0pLmZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkubWFwKChyZXN1bHQp
ID0+IHJlc3VsdC52YWx1ZSk7CisgICAgICAgICAgICBjb25zdCBjb21wYXJpc29uID0gdGVzdEdy
b3VwLmNvbXBhcmVUZXN0UmVzdWx0cyhtZXRyaWMsIGJlZm9yZVZhbHVlcywgYWZ0ZXJWYWx1ZXMp
OworICAgICAgICAgICAgY29uc3QgY2hhbmdlU3R5bGVDbGFzcyA9ICBgJHtjb21wYXJpc29uLmlz
U3RhdGlzdGljYWxseVNpZ25pZmljYW50ID8gY29tcGFyaXNvbi5jaGFuZ2VUeXBlIDogJ2luc2ln
bmlmaWNhbnQnfS1yZXN1bHRgOworICAgICAgICAgICAgY29uc3QgY2FwdGlvbiA9IHRoaXMuY3Jl
YXRlRWxlbWVudCgnY2FwdGlvbicsIFtgJHt0ZXN0Lm5hbWUoKX0gLSAke21ldHJpYy5hZ2dyZWdh
dG9yTGFiZWwoKX06IGAsCisgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCdlbScs
IHtjbGFzczogY2hhbmdlU3R5bGVDbGFzc30sIGNvbXBhcmlzb24uZnVsbExhYmVsKV0pOworCisg
ICAgICAgICAgICB0YWJsZXNXaXRoU3VtbWFyeS5wdXNoKFt0aGlzLmNyZWF0ZUVsZW1lbnQoJ3Rh
YmxlJywge2NsYXNzOiAncmVzdWx0LXRhYmxlJ30sIFtjYXB0aW9uLCB0YWJsZUJvZGllc10pXSk7
CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuY3JlYXRlRWxl
bWVudCgnaDEnLCBbdGhpcy5jcmVhdGVFbGVtZW50KCdlbScsIHRlc3RHcm91cC5uYW1lKCkpLCAn
IC0gJywgdGhpcy5jcmVhdGVFbGVtZW50KCdlbScsIHRoaXMuY3JlYXRlTGluayhhbmFseXNpc1Rh
c2submFtZSgpLCBhbmFseXNpc1VSTCkpXSk7CisKKyAgICAgICAgcmV0dXJuIFtkZXNjcmlwdGlv
biwgdGFibGVzV2l0aFN1bW1hcnldOworICAgIH0KKworICAgIHJlbmRlcigpCisgICAgeworICAg
ICAgICBzdXBlci5yZW5kZXIoKTsKKyAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29u
dGVudCgpLCB0aGlzLl9jb25zdHJ1Y3RUYWJsZXNMYXppbHkuZXZhbHVhdGUodGhpcy5fdGVzdEdy
b3VwLCB0aGlzLl9hbmFseXNpc1Jlc3VsdHMsIHRoaXMuX2FuYWx5c2lzVVJMLCB0aGlzLl9hbmFs
eXNpc1Rhc2spKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZ2V0IHBhZ2VDb250ZW50KCkKKyAgICB7
CisgICAgICAgIHJldHVybiBbXTsKKyAgICB9CisKKyAgICBzdGF0aWMgZ2V0IHN0eWxlVGVtcGxh
dGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICdib2R5JzogeworICAg
ICAgICAgICAgICAgICdmb250LWZhbWlseSc6ICdzYW5zLXNlcmlmJywKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAnaDEnOiB7CisgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcxLjNy
ZW0nLAorICAgICAgICAgICAgICAgICdmb250LXdlaWdodCc6ICdub3JtYWwnLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICdlbSc6IHsKKyAgICAgICAgICAgICAgICAnZm9udC13ZWlnaHQn
OiAnYm9sZCcsCisgICAgICAgICAgICAgICAgJ2ZvbnQtc3R5bGUnOiAnbm9ybWFsJywKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAnY2FwdGlvbic6IHsKKyAgICAgICAgICAgICAgICAnZm9u
dC1zaXplJzogJzEuM3JlbScsCisgICAgICAgICAgICAgICAgJ21hcmdpbic6ICcxcmVtIDAnLAor
ICAgICAgICAgICAgICAgICd0ZXh0LWFsaWduJzogJ2xlZnQnLAorICAgICAgICAgICAgICAgICd3
aGl0ZS1zcGFjZSc6ICdub3dyYXAnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0ZCc6
IHsKKyAgICAgICAgICAgICAgICAncGFkZGluZyc6ICcwLjJyZW0nLAorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICcuZmlyc3Qtcm93JzogeworICAgICAgICAgICAgICAgICdib3JkZXItdG9w
JzogJ3NvbGlkIDFweCAjY2NjJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLm5vLXdy
YXAnOiB7CisgICAgICAgICAgICAgICAgJ3doaXRlLXNwYWNlJzogJ25vd3JhcCcsCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgJ3RoJzogeworICAgICAgICAgICAgICAgICdwYWRkaW5nJzog
JzAuMnJlbScsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJy5yZXN1bHQtdGFibGUnOiB7
CisgICAgICAgICAgICAgICAgJ21hcmdpbi10b3AnOiAnMXJlbScsCisgICAgICAgICAgICAgICAg
J3RleHQtYWxpZ24nOiAnY2VudGVyJywKKyAgICAgICAgICAgICAgICAnYm9yZGVyLWNvbGxhcHNl
JzogJ2NvbGxhcHNlJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnLnJlc3VsdC1jZWxs
JzogeworICAgICAgICAgICAgICAgICdtaW4td2lkdGgnOiAnMjByZW0nLAorICAgICAgICAgICAg
ICAgICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
Jy53b3JzZS1yZXN1bHQnOiB7CisgICAgICAgICAgICAgICAgJ2NvbG9yJzogJyNjMzMnLAorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICcuYmV0dGVyLXJlc3VsdCc6IHsKKyAgICAgICAgICAg
ICAgICAnY29sb3InOiAnIzMzYycsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJy5pbnNp
Z25pZmljYW50LXJlc3VsdCc6IHsKKyAgICAgICAgICAgICAgICAnY29sb3InOiAnIzY2NicsCisg
ICAgICAgICAgICB9LAorICAgICAgICB9CisgICAgfQorfQorCitjbGFzcyBCYXJHcmFwaCBleHRl
bmRzIE1hcmt1cENvbXBvbmVudEJhc2UgeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAg
ICAgIHN1cGVyKCdiYXItZ3JhcGgnKTsKKyAgICAgICAgdGhpcy5fY29uc3RydWN0QmFyR3JhcGhM
YXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fY29uc3RydWN0QmFyR3Jh
cGguYmluZCh0aGlzKSk7CisgICAgfQorCisgICAgc2V0V2lkdGgod2lkdGgpCisgICAgeworICAg
ICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgICAgICB0aGlzLmVucXVldWVUb1JlbmRlcigp
OworICAgIH0KKworICAgIF9jb25zdHJ1Y3RCYXJHcmFwaCh3aWR0aCkKKyAgICB7CisgICAgICAg
IGNvbnN0IGJhckdyYXBoUGxhY2Vob2xkZXIgPSB0aGlzLmNyZWF0ZUVsZW1lbnQoJ2Rpdicse2Ns
YXNzOiAnYmFyLWdyYXBoLXBsYWNlaG9sZGVyJ30pOworICAgICAgICBpZiAod2lkdGgpCisgICAg
ICAgICAgICBiYXJHcmFwaFBsYWNlaG9sZGVyLnN0eWxlLndpZHRoID0gd2lkdGggKyAnJSc7Cisg
ICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtjbGFzczogJ2Jhci1ncmFw
aC1jb250YWluZXInfSwgYmFyR3JhcGhQbGFjZWhvbGRlcik7CisgICAgfQorCisgICAgcmVuZGVy
KCkKKyAgICB7CisgICAgICAgIHN1cGVyLnJlbmRlcigpOworICAgICAgICB0aGlzLnJlbmRlclJl
cGxhY2UodGhpcy5jb250ZW50KCksIHRoaXMuX2NvbnN0cnVjdEJhckdyYXBoTGF6aWx5LmV2YWx1
YXRlKHRoaXMuX3dpZHRoKSk7CisgICAgfQorCisgICAgc3RhdGljIGdldCBwYWdlQ29udGVudCgp
CisgICAgeworICAgICAgICByZXR1cm4gW107CisgICAgfQorCisgICAgc3RhdGljIGdldCBzdHls
ZVRlbXBsYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAnLmJhci1n
cmFwaC1jb250YWluZXInOiB7CisgICAgICAgICAgICAgICAgJ3Bvc2l0aW9uJzogJ2Fic29sdXRl
JywKKyAgICAgICAgICAgICAgICAnbGVmdCc6IDAsCisgICAgICAgICAgICAgICAgJ3RvcCc6IDAs
CisgICAgICAgICAgICAgICAgJ3dpZHRoJzogJ2NhbGMoMTAwJSAtIDJweCknLAorICAgICAgICAg
ICAgICAgICdoZWlnaHQnOiAnY2FsYygxMDAlIC0gMnB4KScsCisgICAgICAgICAgICAgICAgJ3Bh
ZGRpbmcnOiAnMXB4JywKKyAgICAgICAgICAgICAgICAnei1pbmRleCc6IC0xLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICcuYmFyLWdyYXBoLXBsYWNlaG9sZGVyJzogeworICAgICAgICAg
ICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNjY2MnLAorICAgICAgICAgICAgICAgICdoZWln
aHQnOiAnMTAwJScsCisgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzByZW0nLAorICAgICAgICAg
ICAgfQorICAgICAgICB9OworICAgIH0KK30KKworTWFya3VwQ29tcG9uZW50QmFzZS5kZWZpbmVF
bGVtZW50KCd0ZXN0LWdyb3VwLXJlc3VsdC1wYWdlJywgVGVzdEdyb3VwUmVzdWx0UGFnZSk7CitN
YXJrdXBDb21wb25lbnRCYXNlLmRlZmluZUVsZW1lbnQoJ2Jhci1ncmFwaCcsIEJhckdyYXBoKTsK
KworCitpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpCisgICAgbW9kdWxlLmV4cG9y
dHMuVGVzdEdyb3VwUmVzdWx0UGFnZSA9IFRlc3RHcm91cFJlc3VsdFBhZ2U7ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL3YzLW1vZGVscy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92
My1tb2RlbHMuanMKaW5kZXggZTFiMjQ5YzRmMTc0NTQ5YWQwNjg5YmU2MGU5Zjc5Yjc5ZjdlYmU4
NC4uZjIwOGU4NDhmMDU2MzM1MGMzYWNiNTUxZmY4OTgyYTNjOGZmNDI4MCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCkBAIC0xMSw2ICsxMSw3
IEBAIGltcG9ydEZyb21WMygnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnRGF0YU1vZGVsT2JqZWN0
Jyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ0xhYmVsZWRPYmplY3Qn
KTsKIAogaW1wb3J0RnJvbVYzKCdtb2RlbHMvYW5hbHlzaXMtdGFzay5qcycsICdBbmFseXNpc1Rh
c2snKTsKK2ltcG9ydEZyb21WMygnbW9kZWxzL2FuYWx5c2lzLXJlc3VsdHMuanMnLCAnQW5hbHlz
aXNSZXN1bHRzJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9idWcuanMnLCAnQnVnJyk7CiBpbXBv
cnRGcm9tVjMoJ21vZGVscy9idWctdHJhY2tlci5qcycsICdCdWdUcmFja2VyJyk7CiBpbXBvcnRG
cm9tVjMoJ21vZGVscy9idWlsZC1yZXF1ZXN0LmpzJywgJ0J1aWxkUmVxdWVzdCcpOwpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3J1bi1hbmFseXNpcy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9ydW4tYW5hbHlzaXMuanMKaW5kZXggMDgxYTBk
MTA0Y2JkNDIxNTAxMmI4YjZhM2RlZGJhODk5Yjg5M2Q5ZS4uMGY3ZDNmMDNjMmU1NGFlYTkxYmQ5
NWZmYmFjYzllOWM3MzM0ZTcyNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL3J1bi1hbmFseXNpcy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvcnVuLWFuYWx5c2lzLmpzCkBAIC0zLDcgKzMsOSBAQAogY29uc3QgZnMgPSByZXF1aXJlKCdm
cycpOwogY29uc3QgcGFyc2VBcmd1bWVudHMgPSByZXF1aXJlKCcuL2pzL3BhcnNlLWFyZ3VtZW50
cy5qcycpLnBhcnNlQXJndW1lbnRzOwogY29uc3QgUmVtb3RlQVBJID0gcmVxdWlyZSgnLi9qcy9y
ZW1vdGUuanMnKS5SZW1vdGVBUEk7Ci1jb25zdCBNZWFzdXJlbWVudFNldEFuYWx5emVyID0gcmVx
dWlyZSgnLi9qcy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXInKS5NZWFzdXJlbWVudFNldEFuYWx5
emVyOworY29uc3QgTWVhc3VyZW1lbnRTZXRBbmFseXplciA9IHJlcXVpcmUoJy4vanMvbWVhc3Vy
ZW1lbnQtc2V0LWFuYWx5emVyLmpzJykuTWVhc3VyZW1lbnRTZXRBbmFseXplcjsKK2NvbnN0IEFu
YWx5c2lzUmVzdWx0c05vdGlmaWVyID0gcmVxdWlyZSgnLi9qcy9hbmFseXNpcy1yZXN1bHRzLW5v
dGlmaWVyLmpzJykuQW5hbHlzaXNSZXN1bHRzTm90aWZpZXI7Citjb25zdCBTdWJwcm9jZXNzID0g
cmVxdWlyZSgnLi9qcy9zdWJwcm9jZXNzLmpzJykuU3VicHJvY2VzczsKIHJlcXVpcmUoJy4vanMv
djMtbW9kZWxzLmpzJyk7CiBnbG9iYWwuUHJpdmlsZWdlZEFQSSA9IHJlcXVpcmUoJy4vanMvcHJp
dmlsZWdlZC1hcGkuanMnKS5Qcml2aWxlZ2VkQVBJOwogCkBAIC0xMSw2ICsxMyw3IEBAIGZ1bmN0
aW9uIG1haW4oYXJndikKIHsKICAgICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmd1bWVudHMoYXJn
diwgWwogICAgICAgICB7bmFtZTogJy0tc2VydmVyLWNvbmZpZy1qc29uJywgcmVxdWlyZWQ6IHRy
dWV9LAorICAgICAgICB7bmFtZTogJy0tbm90aWZpY2F0aW9uLWNvbmZpZy1qc29uJywgcmVxdWly
ZWQ6IHRydWV9LAogICAgICAgICB7bmFtZTogJy0tYW5hbHlzaXMtcmFuZ2UtaW4tZGF5cycsIHR5
cGU6IHBhcnNlRmxvYXQsIGRlZmF1bHQ6IDEwfSwKICAgICAgICAge25hbWU6ICctLXNlY29uZHMt
dG8tc2xlZXAnLCB0eXBlOiBwYXJzZUZsb2F0LCBkZWZhdWx0OiAxMjAwfSwKICAgICBdKTsKQEAg
LTI2LDYgKzI5LDcgQEAgYXN5bmMgZnVuY3Rpb24gYW5hbHlzaXNMb29wKG9wdGlvbnMpCiAgICAg
bGV0IHNlY29uZHNUb1NsZWVwOwogICAgIHRyeSB7CiAgICAgICAgIGNvbnN0IHNlcnZlckNvbmZp
ZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKG9wdGlvbnNbJy0tc2VydmVyLWNvbmZpZy1q
c29uJ10sICd1dGYtOCcpKTsKKyAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uQ29uZmlnID0gSlNP
Ti5wYXJzZShmcy5yZWFkRmlsZVN5bmMob3B0aW9uc1snLS1ub3RpZmljYXRpb24tY29uZmlnLWpz
b24nXSwgJ3V0Zi04JykpOwogICAgICAgICBjb25zdCBhbmFseXNpc1JhbmdlSW5EYXlzID0gb3B0
aW9uc1snLS1hbmFseXNpcy1yYW5nZS1pbi1kYXlzJ107CiAgICAgICAgIHNlY29uZHNUb1NsZWVw
ID0gb3B0aW9uc1snLS1zZWNvbmRzLXRvLXNsZWVwJ107CiAgICAgICAgIGdsb2JhbC5SZW1vdGVB
UEkgPSBuZXcgUmVtb3RlQVBJKHNlcnZlckNvbmZpZy5zZXJ2ZXIpOwpAQCAtNDAsNiArNDQsMTUg
QEAgYXN5bmMgZnVuY3Rpb24gYW5hbHlzaXNMb29wKG9wdGlvbnMpCiAKICAgICAgICAgY29uc29s
ZS5sb2coYFN0YXJ0IGFuYWx5emluZyBsYXN0ICR7YW5hbHlzaXNSYW5nZUluRGF5c30gZGF5cyBt
ZWFzdXJlbWVudCBzZXRzLmApOwogICAgICAgICBhd2FpdCBhbmFseXplci5hbmFseXplT25jZSgp
OworCisgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hBbGxX
aXRoTm90aWZpY2F0aW9uUmVhZHkoKTsKKworICAgICAgICBjb25zdCBub3RpZmljYXRpb25SZW1v
dmVBUEkgPSBuZXcgUmVtb3RlQVBJKG5vdGlmaWNhdGlvbkNvbmZpZy5ub3RpZmljYXRpb25TZXJ2
ZXJDb25maWcpOworICAgICAgICBjb25zdCBub3RpZmljYXRpb25NZXNzYWdlQ29uZmlnID0gbm90
aWZpY2F0aW9uQ29uZmlnLm5vdGlmaWNhdGlvbk1lc3NhZ2VDb25maWc7CisgICAgICAgIGNvbnN0
IG5vdGlmaWVyID0gbmV3IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyKG5vdGlmaWNhdGlvbk1lc3Nh
Z2VDb25maWcubWVzc2FnZVRlbXBsYXRlLCBub3RpZmljYXRpb25NZXNzYWdlQ29uZmlnLmZpbmFs
aXplU2NyaXB0LAorICAgICAgICAgICAgbm90aWZpY2F0aW9uTWVzc2FnZUNvbmZpZy5tZXNzYWdl
Q29uc3RydWN0aW9uUnVsZXMsIG5vdGlmaWNhdGlvblJlbW92ZUFQSSwgbm90aWZpY2F0aW9uQ29u
ZmlnLm5vdGlmaWNhdGlvblNlcnZlckNvbmZpZy5wYXRoLCBuZXcgU3VicHJvY2Vzcyk7CisKKyAg
ICAgICAgYXdhaXQgbm90aWZpZXIuc2VuZE5vdGlmaWNhdGlvbnNGb3JUZXN0R3JvdXBzKHRlc3RH
cm91cHMpOwogICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAgICAgY29uc29sZS5lcnJvcihgRmFp
bGVkIGFuYWx5emUgbWVhc3VyZW1lbnQgc2V0cyBkdWUgdG8gJHtlcnJvcn1gKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy1y
ZXN1bHRzLW5vdGlmaWVyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci10ZXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjBk
NDg2YTE5ZjNkOWQ1N2QwNmNjYjkxZDI5NzEyYjFiZTViZmE3Ci0tLSAvZGV2L251bGwKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtcmVzdWx0cy1ub3Rp
Zmllci10ZXN0cy5qcwpAQCAtMCwwICsxLDEyMSBAQAorJ3VzZSBzdHJpY3QnOworCitnbG9iYWwu
Q29tbW9uQ29tcG9uZW50QmFzZSA9IHJlcXVpcmUoJy4uL3B1YmxpYy9zaGFyZWQvY29tbW9uLWNv
bXBvbmVudC1iYXNlLmpzJykuQ29tbW9uQ29tcG9uZW50QmFzZTsKK2dsb2JhbC5NYXJrdXBQYWdl
ID0gcmVxdWlyZSgnLi4vdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qcycpLk1hcmt1cFBhZ2U7
CitnbG9iYWwuTWFya3VwQ29tcG9uZW50QmFzZSA9IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL21hcmt1
cC1jb21wb25lbnQuanMnKS5NYXJrdXBDb21wb25lbnRCYXNlOworCitjb25zdCBhc3NlcnQgPSBy
ZXF1aXJlKCdhc3NlcnQnKTsKK2NvbnN0IE1vY2tSZW1vdGVBUEkgPSByZXF1aXJlKCcuL3Jlc291
cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMnKS5Nb2NrUmVtb3RlQVBJOworY29uc3QgQW5hbHlzaXNS
ZXN1bHRzTm90aWZpZXIgPSByZXF1aXJlKCcuLi90b29scy9qcy9hbmFseXNpcy1yZXN1bHRzLW5v
dGlmaWVyLmpzJykuQW5hbHlzaXNSZXN1bHRzTm90aWZpZXI7Citjb25zdCBhc3NlcnRUaHJvd3Mg
PSByZXF1aXJlKCcuLi9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpz
JykuYXNzZXJ0VGhyb3dzOworCitkZXNjcmliZSgnQW5hbHlzaXNSZXN1bHRzTm90aWZpZXInLCAo
KSA9PiB7CisgICAgZGVzY3JpYmUoJ19tYXRjaGVzUnVsZScsICgpID0+IHsKKworICAgICAgICBj
b25zdCB0cnVua01hY0Jvb2sgPSAnVHJ1bmsgTWFjQm9vayc7CisgICAgICAgIGNvbnN0IHRydW5r
TWFjQm9va1BybyA9ICdUcnVuayBNYWNCb29rIFBybyc7CisgICAgICAgIGNvbnN0IHRydW5rTWFj
Qm9va0FpciA9ICdUcnVuayBNYWNCb29rIEFpcic7CisgICAgICAgIGNvbnN0IHNwZWVkb21ldGVy
ID0gJ3NwZWVkb21ldGVyJzsKKyAgICAgICAgY29uc3Qgc3BlZWRvbWV0ZXIyID0gJ3NwZWVkb21l
dGVyLTInOworICAgICAgICBjb25zdCBqZXRTdHJlYW0gPSAnSmV0U3RyZWFtJzsKKworICAgICAg
ICBpdCgnc2hvdWxkIHJldHVybiBhIGdyb3VwIG9mIG1hdGNoaW5nIGZ1bmN0aW9uIGJhc2VkIG9u
IGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBydWxlID0ge3BsYXRm
b3JtczogW3RydW5rTWFjQm9vaywgdHJ1bmtNYWNCb29rUHJvXSwgdGVzdHM6IFtzcGVlZG9tZXRl
ciwgc3BlZWRvbWV0ZXIyXX07CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRz
Tm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCBydWxlKSk7
CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNS
dWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFz
c2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29r
UHJvLCBzcGVlZG9tZXRlcjIsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgamV0U3RyZWFtLCBy
dWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9t
YXRjaGVzUnVsZSh0cnVua01hY0Jvb2tBaXIsIHNwZWVkb21ldGVyLCBydWxlKSk7CisgICAgICAg
ICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVu
a01hY0Jvb2tBaXIsIGpldFN0cmVhbSwgcnVsZSkpOworCisgICAgICAgIH0pOworCisgICAgICAg
IGl0KCdzaG91bGQgbWF0Y2ggcnVsZSBvbmx5IGNvbnRhaW5zIHRlc3RzIGNvcnJlY3RseScsICgp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7dGVzdHM6IFtqZXRTdHJlYW1dfTsKKyAg
ICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxl
KHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3Bl
ZWRvbWV0ZXIyLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0
c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCBydWxl
KSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRj
aGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgcnVsZSkpOworICAgICAgICAg
ICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01h
Y0Jvb2ssIGpldFN0cmVhbSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIGpldFN0cmVhbSwg
cnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9t
YXRjaGVzUnVsZSh0cnVua01hY0Jvb2tBaXIsIGpldFN0cmVhbSwgcnVsZSkpOworICAgICAgICB9
KTsKKworICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIHJ1bGUgb25seSBjb250YWlucyBwbGF0Zm9y
bXMgY29ycmVjdGx5JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9IHtwbGF0Zm9y
bXM6IFt0cnVua01hY0Jvb2tdfTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3Vs
dHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlciwgcnVsZSkp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVz
UnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgcnVsZSkpOworICAgICAgICAgICAgYXNz
ZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ss
IGpldFN0cmVhbSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3Vs
dHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgcnVs
ZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0
Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIsIHJ1bGUpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9va1BybywgamV0U3RyZWFtLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFu
YWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tBaXIsIGpldFN0
cmVhbSwgcnVsZSkpOworCisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJu
IGZhbHNlIGZvciBlbXB0eSBydWxlJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9
IHt9OworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0
Y2hlc1J1bGUodHJ1bmtNYWNCb29rQWlyLCBqZXRTdHJlYW0sIHJ1bGUpKTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgnX2FwcGx5VXBkYXRlJywgKCkgPT4geworICAgICAg
ICBpdCgnc2hvdWxkIHNldCB2YWx1ZSBkaXJlY3RseSBpZiBrZXkgZG9lcyBub3QgZXhpc3QgaW4g
YW5vdGhlciBvYmplY3QnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBtZXJnZWQgPSBBbmFs
eXNpc1Jlc3VsdHNOb3RpZmllci5fYXBwbHlVcGRhdGUoe2E6IDF9LCB7YjogMn0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChtZXJnZWQsIHthOiAxLCBiOiAyfSk7CisgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgY29uY2F0ZW5hdGUgYXJyYXlzIGlmIGJvdGggYXJlIGFy
cmF5JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgbWVyZ2VkID0gQW5hbHlzaXNSZXN1bHRz
Tm90aWZpZXIuX2FwcGx5VXBkYXRlKHthOiBbMV19LCB7YTogWzJdfSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG1lcmdlZCwge2E6IFsxLCAyXX0pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIGFkZCB0byB0aGUgYXJyYXkgaWYgb25seSBvbmUgc2lkZSBpcyBhcnJh
eScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG1lcmdlZCA9IEFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9hcHBseVVwZGF0ZSh7YTogWzFdLCBiOiAxfSwge2E6IDIsIGI6IFsyXX0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChtZXJnZWQsIHthOiBbMSwgMl0sIGI6IFsxLCAyXX0p
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG1lcmdlIHJlY3Vyc2l2ZWx5Jywg
KCkgPT4geworICAgICAgICAgICAgY29uc3QgbWVyZ2VkID0gQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX2FwcGx5VXBkYXRlKHthOiB7YjogMX19LCB7YToge2I6IFsyXX19KTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkLCB7YToge2I6IFsxLCAyXX19KTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtZXJnZSB2YWx1ZXMgaW50byBhcnJheSBpZiBvbmUgb2Yg
dmFsdWUgd2l0aCBzYW1lIGtleSBpcyBvbmUgb2YgZm9sbG93IHByaW1pdGl2ZSB0eXBlczogbnVt
YmVyLCBzdHJpbmcgYW5kIGJvb2xlYW4nLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBtZXJn
ZWQgPSBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fYXBwbHlVcGRhdGUoe2E6IDEsIGI6ICJhIiwg
YzogMSwgZDogdHJ1ZSwgZToge319LCB7YTogMiwgYjogImIiLCBjOiAiYiIsIGQ6IDIsIGU6IDF9
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkLCB7YTogWzEsIDJdLCBiOiBb
ImEiLCAiYiJdLCBjOiBbMSwgImIiXSwgZDogW3RydWUsIDJdLCBlOiBbe30sIDFdfSk7CisgICAg
ICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ19zZW5kTm90aWZpY2F0aW9uJywgKCkg
PT4geworICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoJ2h0dHA6Ly9zZW5kLW5vdGlmaWNhdGlvbi53ZWJraXQub3JnLycpOworICAgICAg
ICB9KTsKKworICAgICAgICBpdCgnc2VuZCBhIG5vdGlmaWNhdGlvbiBzdWNjZXNzZnVsbHknLCBh
c3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBub3RpZmllciA9IG5ldyBBbmFseXNpc1Jl
c3VsdHNOb3RpZmllcihudWxsLCBudWxsLCBudWxsLCBNb2NrUmVtb3RlQVBJLCAnc2VuZC1ub3Rp
ZmljYXRpb24nKTsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBub3RpZmllci5fc2VuZE5v
dGlmaWNhdGlvbigndGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Qu
ZGF0YSwgJ3Rlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgJ3Nl
bmQtbm90aWZpY2F0aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5tZXRo
b2QsICdQT1NUJyk7CisKKyAgICAgICAgICAgIHJlcXVlc3QucmVzb2x2ZSgnb2snKTsKKyAgICAg
ICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0LCAnb2snKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBm
YWlsIGlmIG5vdGlmaWNhdGlvbiByZXF1ZXN0IGdldHMgcmVqZWN0ZWQnLCBhc3luYyAoKSA9PiB7
CisgICAgICAgICAgICBjb25zdCBub3RpZmllciA9IG5ldyBBbmFseXNpc1Jlc3VsdHNOb3RpZmll
cihudWxsLCBudWxsLCBudWxsLCBNb2NrUmVtb3RlQVBJLCAnc2VuZC1ub3RpZmljYXRpb24nKTsK
KyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBub3RpZmllci5fc2VuZE5vdGlmaWNhdGlvbign
dGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QuZGF0YSwgJ3Rlc3Qn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgJ3NlbmQtbm90aWZpY2F0
aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5tZXRob2QsICdQT1NUJyk7
CisKKyAgICAgICAgICAgIHJlcXVlc3QucmVqZWN0KCd1bmF2YWlsYWJsZScpOworICAgICAgICAg
ICAgYXNzZXJ0VGhyb3dzKCd1bmF2YWlsYWJsZScsICgpID0+IHByb21pc2UpOworICAgICAgICB9
KTsKKyAgICB9KTsKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXRhc2stdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy10YXNrLXRl
c3RzLmpzCmluZGV4IDAwOGRmM2Y4YTViMDY3NmRiMGQxOTI0YTNhNTViNDUzZTA5MzQ3ODguLmQ4
NDVjOTEwYmE3NWVjZTM0OWFmNGUzNGQxMmM0NDNmNGEyNDcxMDMgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXRhc2stdGVzdHMuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtdGFzay10ZXN0
cy5qcwpAQCAtMzA0LDcgKzMwNCw3IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCAoKSA9PiB7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYW5hbHlzaXMgdGFzayB3aXRoIGNvbmZpcm1p
bmcgcmVwZXRpdGlvbiBjb3VudCBzcGVjaWZpZWQnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCBbc3RhcnRQb2ludCwgZW5kUG9pbnRdID0gbW9ja1N0YXJ0QW5kRW5kUG9pbnRzKCk7
Ci0gICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwg
ZW5kUG9pbnQsICdDb25maXJtJywgNCk7CisgICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRl
KCdjb25maXJtJywgc3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywgNCwgdHJ1ZSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvZ2VuZXJhdGUt
Y3NyZi10b2tlbicpOwogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7CkBAIC0zMTUs
NyArMzE1LDI5IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCAoKSA9PiB7CiAgICAgICAgICAg
ICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrJyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdj
b25maXJtJywgcmVwZXRpdGlvbkNvdW50OiA0LAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDQs
IG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLAorICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiAxLCBl
bmRSdW46IDIsIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgdG9rZW46ICdhYmMnLCByZXZpc2lv
blNldHM6IFsKKyAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dlYmtpdC1y
ZXZpc2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgJzIyJzoge3JldmlzaW9uOiAnaW9zLXJldmlzaW9uLTEnLCBvd25lclJl
dmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19LAorICAgICAgICAgICAgICAgICAgICB7JzExJzog
e3JldmlzaW9uOiAnd2Via2l0LXJldmlzaW9uLTInLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRj
aDogbnVsbH0sCisgICAgICAgICAgICAgICAgICAgICAgICAnMjInOiB7IHJldmlzaW9uOiAnaW9z
LXJldmlzaW9uLTInLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19XX0KKyAgICAg
ICAgICAgICk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuYWx5
c2lzIHRhc2sgYW5kIHRlc3QgZ3JvdXBzIHdpdGggIm5lZWRzTm90aWZpY2F0aW9uIiBzZXQgdG8g
ZmFsc2UgaWYgc3BlY2lmaWVkIGluIGNyZWF0aW9uJywgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgY29uc3QgW3N0YXJ0UG9pbnQsIGVuZFBvaW50XSA9IG1vY2tTdGFydEFuZEVuZFBvaW50cygp
OworICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZSgnY29uZmlybScsIHN0YXJ0UG9pbnQs
IGVuZFBvaW50LCAnQ29uZmlybScsIDQsIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzBdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7CisgICAgICAg
ICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICAgICB0b2tlbjogJ2FiYycs
CisgICAgICAgICAgICAgICAgZXhwaXJhdGlvbjogRGF0ZS5ub3coKSArIDM2MDAgKiAxMDAwLAor
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1sxXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDQs
IG5lZWRzTm90aWZpY2F0aW9uOiBmYWxzZSwKICAgICAgICAgICAgICAgICBzdGFydFJ1bjogMSwg
ZW5kUnVuOiAyLCB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHRva2VuOiAnYWJjJywgcmV2aXNp
b25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2aXNpb246ICd3ZWJraXQt
cmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICcyMic6IHtyZXZpc2lvbjogJ2lvcy1yZXZpc2lvbi0xJywgb3duZXJS
ZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKQEAgLTMyNiw3ICszNDgsNyBAQCBkZXNjcmli
ZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4gewogCiAgICAgICAgIGl0KCdzaG91bGQgc3luYyB0aGUg
bmV3IGFuYWx5c2lzIHRhc2sgc3RhdHVzIG9uY2UgaXQgaXMgY3JlYXRlZCcsIGFzeW5jICgpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IFtzdGFydFBvaW50LCBlbmRQb2ludF0gPSBtb2NrU3RhcnRB
bmRFbmRQb2ludHMoKTsKLSAgICAgICAgICAgIGNvbnN0IGNyZWF0aW5nUHJvbWlzZSA9IEFuYWx5
c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0n
LCA0KTsKKyAgICAgICAgICAgIGNvbnN0IGNyZWF0aW5nUHJvbWlzZSA9IEFuYWx5c2lzVGFzay5j
cmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCA0LCB0cnVl
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5l
cmF0ZS1jc3JmLXRva2VuJyk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKQEAg
LTMzNyw3ICszNTksNyBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4gewogICAgICAg
ICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5h
bHlzaXMtdGFzaycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFdLmRhdGEsIHtuYW1l
OiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50
OiA0LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICBzdGFydFJ1bjog
MSwgZW5kUnVuOiAyLCB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHRva2VuOiAnYWJjJywgcmV2
aXNpb25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2aXNpb246ICd3ZWJr
aXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICcyMic6IHtyZXZpc2lvbjogJ2lvcy1yZXZpc2lvbi0xJywgb3du
ZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKQEAgLTM4Nyw3ICs0MDksNyBAQCBkZXNj
cmliZSgnQW5hbHlzaXNUYXNrJywgKCkgPT4gewogCiAgICAgICAgIGl0KCdzaG91bGQgcmV0dXJu
IGFuIHJlamVjdGVkIHByb21pc2Ugd2hlbiBhbmFseXNpcyB0YXNrIGNyZWF0aW9uIGZhaWxlZCcs
IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtzdGFydFBvaW50LCBlbmRQb2ludF0g
PSBtb2NrU3RhcnRBbmRFbmRQb2ludHMoKTsKLSAgICAgICAgICAgIGNvbnN0IGNyZWF0aW5nUHJv
bWlzZSA9IEFuYWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2lu
dCwgJ0NvbmZpcm0nLCA0KTsKKyAgICAgICAgICAgIGNvbnN0IGNyZWF0aW5nUHJvbWlzZSA9IEFu
YWx5c2lzVGFzay5jcmVhdGUoJ2NvbmZpcm0nLCBzdGFydFBvaW50LCBlbmRQb2ludCwgJ0NvbmZp
cm0nLCA0LCB0cnVlKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9wcml2aWxl
Z2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5y
ZXNvbHZlKHsKQEAgLTM5OCw3ICs0MjAsNyBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgKCkg
PT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzaycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFd
LmRhdGEsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogNCwKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwge25hbWU6ICdjb25maXJtJywgcmVw
ZXRpdGlvbkNvdW50OiA0LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAg
ICBzdGFydFJ1bjogMSwgZW5kUnVuOiAyLCB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsIHRva2Vu
OiAnYWJjJywgcmV2aXNpb25TZXRzOiBbCiAgICAgICAgICAgICAgICAgICAgIHsnMTEnOiB7cmV2
aXNpb246ICd3ZWJraXQtcmV2aXNpb24tMScsIG93bmVyUmV2aXNpb246IG51bGwsIHBhdGNoOiBu
dWxsfSwKICAgICAgICAgICAgICAgICAgICAgICAgICcyMic6IHtyZXZpc2lvbjogJ2lvcy1yZXZp
c2lvbi0xJywgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9fSwKQEAgLTQzMiwxMCAr
NDU0LDEwIEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCAoKSA9PiB7CiAKICAgICAgICAgaXQo
J3Nob3VsZCBjcmVhdGUgYW5hbHlzaXMgdGFzayB3aXRoIGNvbmZpcm1pbmcgcmVwZXRpdGlvbiBj
b3VudCBzcGVjaWZpZWQnLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbc3RhcnRQb2ludCwg
ZW5kUG9pbnRdID0gbW9ja1N0YXJ0QW5kRW5kUG9pbnRzKCk7Ci0gICAgICAgICAgICBBbmFseXNp
c1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2ludCwgZW5kUG9pbnQsICdDb25maXJtJywg
NCk7CisgICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKCdjb25maXJtJywgc3RhcnRQb2lu
dCwgZW5kUG9pbnQsICdDb25maXJtJywgNCwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNr
Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0YSwge25hbWU6ICdjb25maXJt
JywgcmVwZXRpdGlvbkNvdW50OiA0LAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1swXS5kYXRhLCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDQsIG5lZWRz
Tm90aWZpY2F0aW9uOiB0cnVlLAogICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiAxLCBlbmRSdW46
IDIsIHNsYXZlTmFtZTogJ3dvcmtlcicsIHNsYXZlUGFzc3dvcmQ6ICdwYXNzd29yZCcsCiAgICAg
ICAgICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLCByZXZpc2lvblNldHM6IFsKICAg
ICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogJ3dlYmtpdC1yZXZpc2lvbi0xJywg
b3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9LApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0
LWFuYWx5emVyLXRlc3RzLmpzCmluZGV4IDZhODlmMzUzMjQ0MGQzMjY5Mzc4YTI3YjgwYTBjM2Nj
NGM1ZGYxM2MuLmFhNTAwODFkMGM5ZmM1ZjZlZGJhYTA2NzU1MDRhMzg1ODE1NzI3NTQgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50LXNl
dC1hbmFseXplci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10
ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMKQEAgLTE4OSw2ICsxODksNyBA
QCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsKICAgICAgICAgICAg
ICAgICBlbmRSdW46IDY0NDMsCiAgICAgICAgICAgICAgICAgcmVwZXRpdGlvbkNvdW50OiA0LAog
ICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAgICAgICAgICAgICAg
ICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICByZXZpc2lvblNldHM6
IFt7JzExJzoge3JldmlzaW9uOiAzNSwgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGx9
fSwKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogNDQsIG93bmVyUmV2aXNp
b246IG51bGwsIHBhdGNoOiBudWxsfX1dCiAgICAgICAgICAgICB9KTsKQEAgLTI0Miw2ICsyNDMs
NyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsKICAgICAgICAg
ICAgICAgICBlbmRSdW46IDY0NDMsCiAgICAgICAgICAgICAgICAgcmVwZXRpdGlvbkNvdW50OiA0
LAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAgICAgICAgICAg
ICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICByZXZpc2lvblNl
dHM6IFt7JzExJzoge3JldmlzaW9uOiAzNSwgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51
bGx9fSwKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogNDQsIG93bmVyUmV2
aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX1dCiAgICAgICAgICAgICB9KTsKQEAgLTM4Niw2ICsz
ODgsNyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsKICAgICAg
ICAgICAgICAgICBlbmRSdW46IDY0NDgsCiAgICAgICAgICAgICAgICAgcmVwZXRpdGlvbkNvdW50
OiA0LAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAgICAgICAg
ICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICByZXZpc2lv
blNldHM6IFt7JzExJzoge3JldmlzaW9uOiA0MCwgb3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6
IG51bGx9fSwKICAgICAgICAgICAgICAgICAgICAgeycxMSc6IHtyZXZpc2lvbjogNDksIG93bmVy
UmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsfX1dCiAgICAgICAgICAgICB9KTsKQEAgLTQ3Miw2
ICs0NzUsNyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICBlbmRSdW46IDY0MDcsCiAgICAgICAgICAgICAgICAgcmVwZXRpdGlvbkNv
dW50OiA0LAogICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAgICAg
ICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICByZXZp
c2lvblNldHM6IFt7JzExJzoge3JldmlzaW9uOiAzLCBvd25lclJldmlzaW9uOiBudWxsLCBwYXRj
aDogbnVsbH19LAogICAgICAgICAgICAgICAgICAgICB7JzExJzoge3JldmlzaW9uOiA4LCBvd25l
clJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbH19XQogICAgICAgICAgICAgfSk7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay1y
ZW1vdGUtYXBpLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3Vy
Y2VzL21vY2stcmVtb3RlLWFwaS5qcwppbmRleCBiZTQzZmVlYmJiYTczNWNmODU0N2MxYjI2ODVl
MzZmYzFkOTU3NjYwLi4yZjQ1MWU0YWJjYTAwYWNjYTFkN2FlMjEzYjcyYTM3Yzc0M2YxZWUxIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMv
bW9jay1yZW1vdGUtYXBpLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMKQEAgLTY5LDE0ICs2OSwxNCBAQCB2YXIg
TW9ja1JlbW90ZUFQSSA9IHsKICAgICAgICAgICAgIGdsb2JhbC5SZW1vdGVBUEkgPSBNb2NrUmVt
b3RlQVBJOwogICAgICAgICAgICAgb3JpZ2luYWxQcml2aWxlZ2VkQVBJID0gZ2xvYmFsLlByaXZp
bGVnZWRBUEk7CiAgICAgICAgICAgICBnbG9iYWwuUHJpdmlsZWdlZEFQSSA9IHByaXZpbGVnZWRB
UEk7Ci0gICAgICAgICAgICBpZiAocHJpdmlsZWdlZEFQSS5fdG9rZW4pCisgICAgICAgICAgICBp
ZiAocHJpdmlsZWdlZEFQSSAmJiBwcml2aWxlZ2VkQVBJLl90b2tlbikKICAgICAgICAgICAgICAg
ICBwcml2aWxlZ2VkQVBJLl90b2tlbiA9IG51bGw7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGFm
dGVyRWFjaCgoKSA9PiB7CiAgICAgICAgICAgICBnbG9iYWwuUmVtb3RlQVBJID0gb3JpZ2luYWxS
ZW1vdGVBUEk7CiAgICAgICAgICAgICBnbG9iYWwuUHJpdmlsZWdlZEFQSSA9IG9yaWdpbmFsUHJp
dmlsZWdlZEFQSTsKLSAgICAgICAgICAgIGlmIChwcml2aWxlZ2VkQVBJLl90b2tlbikKKyAgICAg
ICAgICAgIGlmIChwcml2aWxlZ2VkQVBJICYmIHByaXZpbGVnZWRBUEkuX3Rva2VuKQogICAgICAg
ICAgICAgICAgIHByaXZpbGVnZWRBUEkuX3Rva2VuID0gbnVsbDsKICAgICAgICAgfSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Rlc3QtZ3JvdXBz
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91
cHMtdGVzdHMuanMKaW5kZXggZGU1OTY1MjUxMmMzOGI4OTkyM2I5NWZlYmZlMmM1ZjA3ZWFkMGNl
Yi4uZmI4OTE2MmUyYThjOTdmZTBlZDI2NDQ1MTMyMTUyYzEwZTA2NzBiOSAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVz
dHMuanMKQEAgLTMsMTAgKzMsMTEgQEAKIGNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcp
OwogcmVxdWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxzLmpzJyk7CiBjb25zdCBCcm93c2VyUHJp
dmlsZWdlZEFQSSA9IHJlcXVpcmUoJy4uL3B1YmxpYy92My9wcml2aWxlZ2VkLWFwaS5qcycpLlBy
aXZpbGVnZWRBUEk7Citjb25zdCBOb2RlUHJpdmlsZWdlZEFQSSA9IHJlcXVpcmUoJy4uL3Rvb2xz
L2pzL3ByaXZpbGVnZWQtYXBpLmpzJykuUHJpdmlsZWdlZEFQSTsKIGNvbnN0IE1vY2tNb2RlbHMg
PSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcycpLk1vY2tNb2RlbHM7CiBj
b25zdCBNb2NrUmVtb3RlQVBJID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBp
LmpzJykuTW9ja1JlbW90ZUFQSTsKIAotZnVuY3Rpb24gc2FtcGxlVGVzdEdyb3VwKCkgeworZnVu
Y3Rpb24gc2FtcGxlVGVzdEdyb3VwKG5lZWRzTm90aWZpY2F0aW9uPXRydWUpIHsKICAgICByZXR1
cm4gewogICAgICAgICAidGVzdEdyb3VwcyI6IFt7CiAgICAgICAgICAgICAiaWQiOiAiMjEyOCIs
CkBAIC0xNiw2ICsxNyw3IEBAIGZ1bmN0aW9uIHNhbXBsZVRlc3RHcm91cCgpIHsKICAgICAgICAg
ICAgICJhdXRob3IiOiAicm5pd2EiLAogICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1
MTQwMDAsCiAgICAgICAgICAgICAiaGlkZGVuIjogZmFsc2UsCisgICAgICAgICAgICAibmVlZHNO
b3RpZmljYXRpb24iOiBuZWVkc05vdGlmaWNhdGlvbiwKICAgICAgICAgICAgICJidWlsZFJlcXVl
c3RzIjogWyIxNjk4NSIsICIxNjk4NiIsICIxNjk4NyIsICIxNjk4OCIsICIxNjk4OSIsICIxNjk5
MCIsICIxNjk5MSIsICIxNjk5MiJdLAogICAgICAgICAgICAgImNvbW1pdFNldHMiOiBbIjQyNTUi
LCAiNDI1NiJdLAogICAgICAgICB9XSwKQEAgLTEzNyw2ICsxMzksNDEgQEAgZGVzY3JpYmUoJ1Rl
c3RHcm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBkZXNj
cmliZSgnbmVlZHNOb3RpZmljYXRpb24nLCAoKSA9PiB7CisgICAgICAgIGNvbnN0IHJlcXVlc3Rz
ID0gTW9ja1JlbW90ZUFQSS5pbmplY3QoJ2h0dHBzOi8vcGVyZi53ZWJraXQub3JnJywgTm9kZVBy
aXZpbGVnZWRBUEkpOworICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKKyAgICAgICAgICAgIFBy
aXZpbGVnZWRBUEkuY29uZmlndXJlKCd0ZXN0JywgJ3Bhc3N3b3JkJyk7CisgICAgICAgIH0pOwor
CisgICAgICAgIGl0KCdzaG91bGQgdXBkYXRlIG5vdGlmaWVkIGF1dGhvciBmbGFnJywgYXN5bmMg
KCkgPT4geworICAgICAgICAgICAgY29uc3QgZmV0Y2hQcm9taXNlID0gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzaygxMzc2KTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlVGVz
dEdyb3VwKCkpOworICAgICAgICAgICAgbGV0IHRlc3RHcm91cHMgPSBhd2FpdCBmZXRjaFByb21p
c2U7CisgICAgICAgICAgICBhc3NlcnQodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgbGV0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOworCisgICAgICAgICAgICBj
b25zdCB1cGRhdGVQcm9taXNlID0gdGVzdEdyb3VwLmRpZFNlbmROb3RpZmljYXRpb24oKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3Qt
Z3JvdXAnKTsKKyAgICAgICAgICAgIGRlbGV0ZSByZXF1ZXN0c1sxXS5kYXRhLm5vdGlmaWNhdGlv
blNlbnRBdDsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMV0uZGF0YSwg
e2dyb3VwOiAnMjEyOCcsIG5lZWRzTm90aWZpY2F0aW9uOiBmYWxzZSwgc2xhdmVOYW1lOiAndGVz
dCcsIHNsYXZlUGFzc3dvcmQ6ICdwYXNzd29yZCd9KTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzFd
LnJlc29sdmUoKTsKKworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2FwaS90ZXN0LWdyb3Vwcy8y
MTI4Jyk7CisgICAgICAgICAgICBjb25zdCB1cGRhdGVkVGVzdEdyb3VwID0gc2FtcGxlVGVzdEdy
b3VwKGZhbHNlKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzJdLnJlc29sdmUodXBkYXRlZFRlc3RH
cm91cCk7CisKKyAgICAgICAgICAgIHRlc3RHcm91cHMgPSBhd2FpdCB1cGRhdGVQcm9taXNlOwor
ICAgICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICB9
KTsKKyAgICB9KTsKKwogICAgIGRlc2NyaWJlKCdfY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0
R3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSB0ZXN0IGdy
b3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHZhciBncm91cHMgPSBUZXN0R3JvdXAu
X2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3VwcyhzYW1wbGVUZXN0R3JvdXAoKSk7CkBA
IC0xNDcsNiArMTg0LDcgQEAgZGVzY3JpYmUoJ1Rlc3RHcm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCAyMTI4KTsKICAgICAgICAgICAgIGFz
c2VydC5vayhncm91cC5jcmVhdGVkQXQoKSBpbnN0YW5jZW9mIERhdGUpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLmlzSGlkZGVuKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVlKTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbCgrZ3JvdXAuY3JlYXRlZEF0KCksIDE0NTg2ODg1MTQwMDApOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCBzYW1wbGVUZXN0R3JvdXAo
KVsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCAvIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGdy
b3VwLmhhc1BlbmRpbmcoKSk7CkBAIC0zNjEsNyArMzk5LDcgQEAgZGVzY3JpYmUoJ1Rlc3RHcm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHNldDIuc2V0UmV2aXNpb25Gb3JSZXBvc2l0
b3J5KE1vY2tNb2RlbHMud2Via2l0LCAnMTkxNjIzJyk7CiAgICAgICAgICAgICBzZXQyLnNldFJl
dmlzaW9uRm9yUmVwb3NpdG9yeShNb2NrTW9kZWxzLnNoYXJlZFJlcG9zaXRvcnksICc4MDIyOScp
OwogCi0gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gVGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNr
KCdzb21lLXRhc2snLCBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVz
dCwgJ3NvbWUtZ3JvdXAnLCA0LCBbc2V0MSwgc2V0Ml0pOworICAgICAgICAgICAgY29uc3QgcHJv
bWlzZSA9IFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygnc29tZS10YXNrJywgTW9ja01vZGVscy5z
b21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QsICdzb21lLWdyb3VwJywgNCwgW3NldDEs
IHNldDJdLCB0cnVlKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDIpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxl
Z2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7CiAgICAgICAgICAgICByZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsKQEAgLTM3MSw2ICs0MDksMTAgQEAgZGVzY3JpYmUoJ1Rlc3RHcm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwge3Rhc2tOYW1lOiAnc29tZS10
YXNrJywgbmFtZTogJ3NvbWUtZ3JvdXAnLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDEsCisgICAgICAg
ICAgICAgICAgcmVwZXRpdGlvbkNvdW50OiA0LCByZXZpc2lvblNldHM6IFt7JzExJzoge293bmVy
UmV2aXNpb246IG51bGwsIHBhdGNoOiBudWxsLCByZXZpc2lvbjogIjE5MTYyMiJ9LAorICAgICAg
ICAgICAgICAgICAgICAnMTYnOiB7b3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
dmlzaW9uOiAiODAyMjkifX0sIHsnMTEnOiB7b3duZXJSZXZpc2lvbjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJldmlzaW9uOiAiMTkxNjIzIn0sCisgICAgICAgICAgICAgICAgICAgICcxNic6IHtvd25l
clJldmlzaW9uOiBudWxsLCBwYXRjaDogbnVsbCwgcmV2aXNpb246ICI4MDIyOSJ9fV0sIG5lZWRz
Tm90aWZpY2F0aW9uOiB0cnVlLCB0b2tlbjogJ2FiYyd9KTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
KTsKICAgICAgICAgICAgIHJlcXVlc3RzWzJdLnJlc29sdmUoewogICAgICAgICAgICAgICAgIHRh
c2tJZDogMTIzLAo=
</data>
<flag name="review"
          id="360259"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>