<?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>204091</bug_id>
          
          <creation_ts>2019-11-11 16:43:22 -0800</creation_ts>
          <short_desc>results.webkit.org: Report JSC tests to the results database</short_desc>
          <delta_ts>2019-11-22 11:10:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=204094</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204095</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204096</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204090</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204364</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204453</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204386</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204513</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204526</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pmatos</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zhifei_fang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1589365</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-11 16:43:22 -0800</bug_when>
    <thetext>Add support to run-javascriptcore-tests to report test failures to the results database.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589391</commentid>
    <comment_count>1</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-11 17:03:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/49778900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589433</commentid>
    <comment_count>2</comment_count>
      <attachid>383328</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-11 18:06:36 -0800</bug_when>
    <thetext>Created attachment 383328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589434</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-11 18:19:04 -0800</bug_when>
    <thetext>The lack of a standardized output format and the fact that this script is in perl is quite unfortunate. I&apos;m glad that the results database is dynamic enough that a perl script can talk to it, but this script as a whole concerns me....I think we need to migrate it to Python some time in the next year, otherwise we&apos;re going to keep piling up technical debt (like this change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589560</commentid>
    <comment_count>4</comment_count>
      <attachid>383328</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-11-12 10:18:30 -0800</bug_when>
    <thetext>Comment on attachment 383328
Patch

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

A few comments since I opened this anyway, but not attempting a real review.

&gt; Tools/ChangeLog:12
&gt; +        (runTest): Parse binary output to mark individual tests as passing

I feel like this is an improvement that we could use when presenting results on EWS and bot watcher&apos;s dashboard. I am not 100% sure what we do for those now, but we definitely didn&apos;t split full results per test before.

&gt; Tools/ChangeLog:263
&gt; +2019-11-11  Dean Jackson  &lt;dino@apple.com&gt;

Something bad happened to the ChangeLog.

&gt; Tools/Scripts/run-javascriptcore-tests:537
&gt; +# FIXME: report stress test failureshttps://bugs.webkit.org/show_bug.cgi?id=204096

Space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589567</commentid>
    <comment_count>5</comment_count>
      <attachid>383364</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-12 10:32:58 -0800</bug_when>
    <thetext>Created attachment 383364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589664</commentid>
    <comment_count>6</comment_count>
      <attachid>383364</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-12 15:29:31 -0800</bug_when>
    <thetext>Comment on attachment 383364
Patch

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

&gt; Tools/Scripts/run-javascriptcore-tests:433
&gt; +    open(TEST, &quot;-|&quot;, &quot;@command 2&gt;&amp;1&quot;) or $testResult = 1;

This seems like a significant change in running these tests. How much testing has been done on it?

&gt; Tools/Scripts/run-javascriptcore-tests:440
&gt; +        #     O2: testRotRWithImmShift(uint64-max, uint32-min): OK!

It seems weird to have 5 spaces here (and other comments below). Maybe just have one space and start with &apos;e.g.:&apos;

&gt; Tools/Scripts/run-javascriptcore-tests:475
&gt; +        } else {

How do we know if we have covered all the situations?

&gt; Tools/Scripts/run-javascriptcore-tests:763
&gt; +sub uploadConfiguration()

This name seems misleading, this function doesn&apos;t upload anything. It simply returns configuration. Should be named something like getConfiguration/getConfigurationToUpload/configurationToUpload etc.

&gt; Tools/Scripts/run-javascriptcore-tests:780
&gt; +        die &quot;No watchOS version specified&quot; if !$version;

is die the right thing to do because version wasn&apos;t specified, and that too at the end of the script, when all the tests have already run? If we want the version to be mandatory, this check should be at the beginning of the script to cause early-exit.

&gt; Tools/Scripts/run-javascriptcore-tests:818
&gt; +        die &quot;Cannot determine platform\n&quot;;

is die the right thing to do in case of issue in determining configuration? should it be a hard failure? can we default to something?

&gt; Tools/Scripts/run-javascriptcore-tests:842
&gt; +    if (not defined $report) {

Would be good to have a log here.

&gt; Tools/Scripts/run-javascriptcore-tests:887
&gt; +        return 1;

will this be the exit code of this script eventually (since this is the last function to be called in this script)? if so exit code of 1 for success looks incorrect.

&gt; Tools/Scripts/run-javascriptcore-tests:890
&gt; +    return 0;

Ditto about exit code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589668</commentid>
    <comment_count>7</comment_count>
      <attachid>383364</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-12 15:47:15 -0800</bug_when>
    <thetext>Comment on attachment 383364
Patch

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

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:433
&gt;&gt; +    open(TEST, &quot;-|&quot;, &quot;@command 2&gt;&amp;1&quot;) or $testResult = 1;
&gt; 
&gt; This seems like a significant change in running these tests. How much testing has been done on it?

This bit isn&apos;t actually that significant.

We&apos;re basically just consuming the stdout of the testing binaries instead of feeding them straight to the stdout of the harness. I ran jsc tests on my machine, but not much more than that.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:475
&gt;&gt; +        } else {
&gt; 
&gt; How do we know if we have covered all the situations?

We sort of don&apos;t.

jsc tests don&apos;t really have a standard format....I basically added regexes and logged the bits which weren&apos;t matching until I matched everything that I would call an individual test. This is complicated by the fact that jsc tests have bits where a bunch of cases are combined into a single test, I try to treat those as a single test instead of the dozen or so test bits.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:780
&gt;&gt; +        die &quot;No watchOS version specified&quot; if !$version;
&gt; 
&gt; is die the right thing to do because version wasn&apos;t specified, and that too at the end of the script, when all the tests have already run? If we want the version to be mandatory, this check should be at the beginning of the script to cause early-exit.

We don&apos;t really have a reasonable back-up, so I think we sort of have to die.

Good point about the beginning of the script, though....I will call this function early on so we trigger any early exits before running tests.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:887
&gt;&gt; +        return 1;
&gt; 
&gt; will this be the exit code of this script eventually (since this is the last function to be called in this script)? if so exit code of 1 for success looks incorrect.

I guess this would make more sense in exit-code format.

I wasn&apos;t going to make it define the exit code, since that approach did not seem popular when applied to layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589869</commentid>
    <comment_count>8</comment_count>
      <attachid>383456</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-13 07:59:40 -0800</bug_when>
    <thetext>Created attachment 383456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589898</commentid>
    <comment_count>9</comment_count>
      <attachid>383456</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2019-11-13 09:31:44 -0800</bug_when>
    <thetext>Comment on attachment 383456
Patch

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

&gt; Tools/Scripts/run-javascriptcore-tests:782
&gt; +    } elsif (isGtk()) {

We need tvOS as well

&gt; Tools/Scripts/run-javascriptcore-tests:850
&gt; +        suite =&gt; &apos;javascriptcore-tests&apos;,

Not sure if we should separate test binaries as different suite</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589904</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-13 09:43:37 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #9)
&gt; Comment on attachment 383456 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383456&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:782
&gt; &gt; +    } elsif (isGtk()) {
&gt; 
&gt; We need tvOS as well
&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:850
&gt; &gt; +        suite =&gt; &apos;javascriptcore-tests&apos;,
&gt; 
&gt; Not sure if we should separate test binaries as different suite

I think no. When you look at https://results.webkit.org/suites, our suites tend to be much higher level than test binaries. In fact, API tests use a similar model to the one we&apos;re using here. Actually, I have a bug somewhere about supporting partial suite results, which would probably be the right approach here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589910</commentid>
    <comment_count>11</comment_count>
      <attachid>383456</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-13 09:56:15 -0800</bug_when>
    <thetext>Comment on attachment 383456
Patch

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

&gt; Tools/Scripts/run-javascriptcore-tests:376
&gt; +configurationForUpload() if (defined($report));

This should be called only if appropriate parameters are passed to upload the data. We probably don&apos;t want to exit the script here (e.g.: in a manual run) if we aren&apos;t going to upload anything anyways.

&gt; Tools/Scripts/run-javascriptcore-tests:504
&gt;          writeJsonDataIfApplicable();

Do you want to uploadResults here as well, in case of fail-fast? 
It would probably contain result of tests from single binary, but it might be useful to have that data.

&gt; Tools/Scripts/run-javascriptcore-tests:539
&gt; +# FIXME: report stress test failureshttps://bugs.webkit.org/show_bug.cgi?id=204096

Nit: missing space in failureshttp

&gt; Tools/Scripts/run-javascriptcore-tests:814
&gt; +            } elsif ($version-&gt;{minor} eq 14) {

Did you mean 13 here?

&gt; Tools/Scripts/run-javascriptcore-tests:815
&gt; +                $versionName = &quot;High Sierra&quot;;

I think we should have few more OSes in this list, like Sierra, El Capitan. Also, should there be a default?

&gt; Tools/Scripts/run-javascriptcore-tests:843
&gt; +    if (not defined $report) {

This seems like quite late to find this issue, we should do an early check of all the parameters, before running the tests.

&gt; Tools/Scripts/run-javascriptcore-tests:868
&gt; +    if (defined $buildbotMaster and defined $builderName and defined $buildNumber and defined $buildbotWorker) {

There should be else case as well to log the error. We should validate the arguments in beginning to ensure that any required parameter is not missing. Maybe add a validateUploadParameters/validateParameters method.

&gt; Tools/Scripts/run-javascriptcore-tests:876
&gt; +    if (defined $ENV{&apos;RESULTS_SERVER_API_KEY&apos;}) {

I believe API key is mandatory for uploading the data. We should check it in beginning and fail early with proper error message if this value is not found.  Maybe add a validateUploadParameters/validateParameters method.

&gt; Tools/Scripts/run-javascriptcore-tests:884
&gt; +    print HANDLE &quot;$encodedUpload\n\0&quot;;

How does the output look like?

&gt; Tools/Scripts/run-javascriptcore-tests:892
&gt; +    return 1;

Can we have another parameter to this script (like --silent-upload-failure / --ignore-upload-failure) which would prevent upload failure from being a hard failure. i.e.: even if upload fails don&apos;t mark the script as failed. It would be useful for EWS since the upload can fail due to various reasons (e.g. network issue), and we don&apos;t want to have any impact of that failure on patch being processed in EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589948</commentid>
    <comment_count>12</comment_count>
      <attachid>383471</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-13 11:01:18 -0800</bug_when>
    <thetext>Created attachment 383471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590046</commentid>
    <comment_count>13</comment_count>
      <attachid>383456</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-13 14:24:28 -0800</bug_when>
    <thetext>Comment on attachment 383456
Patch

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

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:376
&gt;&gt; +configurationForUpload() if (defined($report));
&gt; 
&gt; This should be called only if appropriate parameters are passed to upload the data. We probably don&apos;t want to exit the script here (e.g.: in a manual run) if we aren&apos;t going to upload anything anyways.

That&apos;s exactly what the if (defined($report)) is doing

&gt;&gt;&gt; Tools/Scripts/run-javascriptcore-tests:782
&gt;&gt;&gt; +    } elsif (isGtk()) {
&gt;&gt; 
&gt;&gt; We need tvOS as well
&gt; 
&gt; I think no. When you look at https://results.webkit.org/suites, our suites tend to be much higher level than test binaries. In fact, API tests use a similar model to the one we&apos;re using here. Actually, I have a bug somewhere about supporting partial suite results, which would probably be the right approach here.

Great fun. Bugzilla put the comment in the wrong place. That comment was supposed to be about suites, I will be adding tvOS here.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:815
&gt;&gt; +                $versionName = &quot;High Sierra&quot;;
&gt; 
&gt; I think we should have few more OSes in this list, like Sierra, El Capitan. Also, should there be a default?

I can add more, but why? We only run -2 in automation, we shouldn&apos;t be support Sierra and El Capitan anywhere.

I don&apos;t think we should have a default, it&apos;s OK to report without a version name, so being correct is more important than defining something.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:843
&gt;&gt; +    if (not defined $report) {
&gt; 
&gt; This seems like quite late to find this issue, we should do an early check of all the parameters, before running the tests.

It&apos;s not really an issue, though. You don&apos;t actually need to report.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:868
&gt;&gt; +    if (defined $buildbotMaster and defined $builderName and defined $buildNumber and defined $buildbotWorker) {
&gt; 
&gt; There should be else case as well to log the error. We should validate the arguments in beginning to ensure that any required parameter is not missing. Maybe add a validateUploadParameters/validateParameters method.

I think logging something is a good idea, but what&apos;s weird about this code is that these options are not mandatory. If you don&apos;t provide them, you won&apos;t be able to link your test run to a CI link, but that&apos;s something the results database allows.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:876
&gt;&gt; +    if (defined $ENV{&apos;RESULTS_SERVER_API_KEY&apos;}) {
&gt; 
&gt; I believe API key is mandatory for uploading the data. We should check it in beginning and fail early with proper error message if this value is not found.  Maybe add a validateUploadParameters/validateParameters method.

It is not mandatory, actually. Internal results database uses a different authentication scheme.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:884
&gt;&gt; +    print HANDLE &quot;$encodedUpload\n\0&quot;;
&gt; 
&gt; How does the output look like?

This is going to be json, conforming to https://results.webkit.org/documentation#API-Uploads.

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:892
&gt;&gt; +    return 1;
&gt; 
&gt; Can we have another parameter to this script (like --silent-upload-failure / --ignore-upload-failure) which would prevent upload failure from being a hard failure. i.e.: even if upload fails don&apos;t mark the script as failed. It would be useful for EWS since the upload can fail due to various reasons (e.g. network issue), and we don&apos;t want to have any impact of that failure on patch being processed in EWS.

We&apos;re not actually failing when uploads fail, at the moment.

Even so, the --report argument is optional, if it&apos;s not provided, we return a successful error code on line 845, not sure that the parameter is acutally useful for EWS....if you don&apos;t pass --report, most of this is a no-op</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590237</commentid>
    <comment_count>14</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-14 06:34:53 -0800</bug_when>
    <thetext>Seems like tests are not even being run after this change. See https://ews-build.webkit-uat.org/#/builders/21/builds/538

Similarly in old EWS https://webkit-queues.webkit.org/patch/383471/jsc-ews, tests finished within a minute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590244</commentid>
    <comment_count>15</comment_count>
      <attachid>383555</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-14 07:18:27 -0800</bug_when>
    <thetext>Created attachment 383555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590245</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-14 07:20:11 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #14)
&gt; Seems like tests are not even being run after this change. See
&gt; https://ews-build.webkit-uat.org/#/builders/21/builds/538
&gt; 
&gt; Similarly in old EWS https://webkit-queues.webkit.org/patch/383471/jsc-ews,
&gt; tests finished within a minute.

That would be because I uploaded code which comments on the stress tests...clearly not something we should land. I&apos;ve uploaded a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590316</commentid>
    <comment_count>17</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-14 13:20:28 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #13)
&gt; not sure that the parameter is acutally useful for EWS....if you don&apos;t pass --report, most of this is a no-op
for EWS, my intention was to enable test reporting for clean-tree, but I didn&apos;t want failure to upload as a hard failure. Anyways, you mentioned that &apos;We&apos;re not actually failing when uploads fail, at the moment&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590318</commentid>
    <comment_count>18</comment_count>
      <attachid>383555</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-14 13:27:31 -0800</bug_when>
    <thetext>Comment on attachment 383555
Patch

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

&gt; Tools/Scripts/run-javascriptcore-tests:517
&gt; +    open(TEST, &quot;-|&quot;, &quot;@command 2&gt;&amp;1&quot;) or $testResult = 1;

This is the part I am little worried about, probably because I don&apos;t understand it properly, and it has potential to break the tests completely. Is this well-tested?

&gt; Tools/Scripts/run-javascriptcore-tests:850
&gt; +        print &quot;No report URL specified, skipping results upload\n&quot;;

As a user, this seems like an error. Maybe re-phrase something like: &apos;Skipping upload to results database since no report URL was specified&apos;

&gt; Tools/Scripts/run-javascriptcore-tests:890
&gt; +    open(HANDLE, &quot;|-&quot;, &quot;curl -X POST $report/api/upload -H &apos;Content-Type: application/json&apos; -f -d &apos;\@-&apos;&quot;) or die &quot;Failed to open curl&quot;;

does Windows/cygwin have curl by default? Also might be a good idea to print the url is error message to make it little more actionable (for e.g.: if the host is down, anyone can verify that)

&gt; Tools/Scripts/run-javascriptcore-tests:901
&gt; +    print &quot;Upload to $report failed\n&quot;;

can we print more details about the failure? specific network exception/error. (e.g.: timeout/incorrect-host etc.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590322</commentid>
    <comment_count>19</comment_count>
      <attachid>383573</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-14 13:46:48 -0800</bug_when>
    <thetext>Created attachment 383573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590339</commentid>
    <comment_count>20</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-14 15:14:39 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #18)
&gt; Comment on attachment 383555 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383555&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:517
&gt; &gt; +    open(TEST, &quot;-|&quot;, &quot;@command 2&gt;&amp;1&quot;) or $testResult = 1;
&gt; 
&gt; This is the part I am little worried about, probably because I don&apos;t
&gt; understand it properly, and it has potential to break the tests completely.
&gt; Is this well-tested?

I didn&apos;t test failing jsc tests originally, but now I have. It&apos;s also the exit code bit that&apos;s most important for not breaking tests.

&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:850
&gt; &gt; +        print &quot;No report URL specified, skipping results upload\n&quot;;
&gt; 
&gt; As a user, this seems like an error. Maybe re-phrase something like:
&gt; &apos;Skipping upload to results database since no report URL was specified&apos;
&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:890
&gt; &gt; +    open(HANDLE, &quot;|-&quot;, &quot;curl -X POST $report/api/upload -H &apos;Content-Type: application/json&apos; -f -d &apos;\@-&apos;&quot;) or die &quot;Failed to open curl&quot;;
&gt; 
&gt; does Windows/cygwin have curl by default? Also might be a good idea to print
&gt; the url is error message to make it little more actionable (for e.g.: if the
&gt; host is down, anyone can verify that)

Not positive, although I believe it does. I&apos;m not sure how we would hit the &apos;die&apos; here. This isn&apos;t the codepath that triggers if curl has a non zero exit code, that&apos;s &quot;Upload to ... failed&quot;

&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:901
&gt; &gt; +    print &quot;Upload to $report failed\n&quot;;
&gt; 
&gt; can we print more details about the failure? specific network
&gt; exception/error. (e.g.: timeout/incorrect-host etc.)

We aren&apos;t capturing stdout and stderr, so curl will be printing more details about the failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590369</commentid>
    <comment_count>21</comment_count>
      <attachid>383573</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-11-14 16:35:18 -0800</bug_when>
    <thetext>Comment on attachment 383573
Patch

Attachment 383573 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/13256291

New failing tests:
apiTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590380</commentid>
    <comment_count>22</comment_count>
      <attachid>383587</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-14 17:07:23 -0800</bug_when>
    <thetext>Created attachment 383587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590526</commentid>
    <comment_count>23</comment_count>
      <attachid>383587</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-15 09:19:17 -0800</bug_when>
    <thetext>Comment on attachment 383587
Patch

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

&gt; Tools/Scripts/run-javascriptcore-tests:904
&gt; +        $upload{&apos;api_key&apos;} = $ENV{&apos;RESULTS_SERVER_API_KEY&apos;};

How does the error looks like when API key is incorrect or missing. Is it easy to debug from the error message?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590530</commentid>
    <comment_count>24</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-15 09:30:34 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #23)
&gt; Comment on attachment 383587 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383587&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:904
&gt; &gt; +        $upload{&apos;api_key&apos;} = $ENV{&apos;RESULTS_SERVER_API_KEY&apos;};
&gt; 
&gt; How does the error looks like when API key is incorrect or missing. Is it
&gt; easy to debug from the error message?

Your error is actually going to come from the results database, which will give you a 401 and &apos;User is not authorized to POST data&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590548</commentid>
    <comment_count>25</comment_count>
      <attachid>383587</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-15 10:34:36 -0800</bug_when>
    <thetext>Comment on attachment 383587
Patch

Truitt confirmed that our Cygwin bot do have curl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590566</commentid>
    <comment_count>26</comment_count>
      <attachid>383587</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-15 11:19:00 -0800</bug_when>
    <thetext>Comment on attachment 383587
Patch

Clearing flags on attachment: 383587

Committed r252490: &lt;https://trac.webkit.org/changeset/252490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590568</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-15 11:19:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592690</commentid>
    <comment_count>28</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-11-22 01:24:22 -0800</bug_when>
    <thetext>It seems to me that this patch has broken 32bit JSConly bots.
We are getting right at the beginning &quot;Cannot determine platform&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592745</commentid>
    <comment_count>29</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-22 05:07:41 -0800</bug_when>
    <thetext>(In reply to Paulo Matos from comment #28)
&gt; It seems to me that this patch has broken 32bit JSConly bots.
&gt; We are getting right at the beginning &quot;Cannot determine platform&quot;.
Yes, e.g.: https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release/builds/10114/steps/jscore-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592768</commentid>
    <comment_count>30</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-22 06:25:27 -0800</bug_when>
    <thetext>(In reply to Paulo Matos from comment #28)
&gt; It seems to me that this patch has broken 32bit JSConly bots.
&gt; We are getting right at the beginning &quot;Cannot determine platform&quot;.
Tracked in https://bugs.webkit.org/show_bug.cgi?id=204513</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592793</commentid>
    <comment_count>31</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-22 07:47:06 -0800</bug_when>
    <thetext>(In reply to Paulo Matos from comment #28)
&gt; It seems to me that this patch has broken 32bit JSConly bots.
&gt; We are getting right at the beginning &quot;Cannot determine platform&quot;.

This won&apos;t be a hard fix, but someone who has access to one of these machines sort of needs to write it, I don&apos;t know what the right platform check would be.

This is all in run-javascriptcore-tests, configurationForUpload.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383328</attachid>
            <date>2019-11-11 18:06:36 -0800</date>
            <delta_ts>2019-11-12 10:32:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204091-20191111180632.patch</filename>
            <type>text/plain</type>
            <size>23942</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjM0NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE5LTExLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlcG9ydCBKU0MgdGVzdHMgdG8gdGhl
IHJlc3VsdHMgZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk3Nzg5MDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBsb2FkIHJlc3Vs
dHMgdG8gdGhlIHNwZWNpZmllZCByZXN1bHRzIGRhdGFiYXNlLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgIChydW5UZXN0KTogUGFyc2UgYmlu
YXJ5IG91dHB1dCB0byBtYXJrIGluZGl2aWR1YWwgdGVzdHMgYXMgcGFzc2luZworICAgICAgICBv
ciBmYWlsaW5nLgorICAgICAgICAodXBsb2FkQ29uZmlndXJhdGlvbik6IFJldHVybiBhIGhhc2gg
bWFwIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbgorICAgICAgICBGb3IgdGhpcyBzcGVj
aWZpYyB0ZXN0IHJ1bi4KKyAgICAgICAgKHVwbG9hZFJlc3VsdHMpOiBJZiBhIHJlcG9ydCBVUkwg
aXMgZGVmaW5lZCwgdXBsb2FkIHRlc3QgcmVzdWx0cyB0byB0aGF0IFVSTC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChzcGxpdFZlcnNpb25TdHJpbmcpOiBzcGxp
dFZlcnNpb25TdHJpbmcgaXMgc3VwcG9zZWQgdG8gYmUgYSBnZW5lcmFsbHkgdXNlZAorICAgICAg
ICBmdW5jdGlvbiwgc28gc2hvdWxkIG5vdCBzZXQgYSBnbG9iYWwgdmFyaWFibGUuCisgICAgICAg
IChkZXRlcm1pbmVPU1hWZXJzaW9uKTogUmVtb3ZlIG5ld2xpbmUgZnJvbSB2ZXJzaW9uIG51bWJl
ci4KKwogMjAxOS0xMS0xMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVncmVzc2lvbiByMjUyMzA5OiBBUEkgVGVzdCBUZXN0V2ViS2l0QVBJLl9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvLkluZm9Gb3JMaW5rQXJvdW5kSW1hZ2UgaXMgZmFpbGluZyBjb25zaXN0ZW50
bHkKQEAgLTIzOSw2ICsyNjAsMjQ4IEBACiAgICAgICAgIChSdW5KU0NUZXN0c1dpdGhvdXRQYXRj
aCk6IFJlbmFtZWQuCiAgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBz
X3VuaXR0ZXN0LnB5OiBVcGRhdGVkIHVuaXQtdGVzdHMuCiAKKzIwMTktMTEtMTEgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3Jlc3Npb24gcjI1MjMwOTogQVBJ
IFRlc3QgVGVzdFdlYktpdEFQSS5fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5JbmZvRm9yTGlua0Fy
b3VuZEltYWdlIGlzIGZhaWxpbmcgY29uc2lzdGVudGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU3MDU2MDAwPgorCisgICAgICAgIFVucmV2aWV3ZWQuCisKKyAgICAgICAgUmVtb3ZlIHRlc3Qg
dGhhdCBsb29rcyBhdCBzY3JlZW4gZGltZW5zaW9ucywgYmVjYXVzZSBpdCBmYWlscyBvbiBpUGFk
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1JlcXVlc3RB
Y3RpdmF0ZWRFbGVtZW50SW5mby5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
CisyMDE5LTExLTExICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KKworICAg
ICAgICBbRVdTXSBVc2UgbmFtZWQgYXJndW1lbnRzIGluIGZhY3Rvcmllcy5weQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDcxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgSm9uYXRoYW4gQmVkYXJkLgorCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBv
cnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weToKKyAgICAgICAgKEZhY3RvcnkuX19pbml0X18pOgor
ICAgICAgICAoU3R5bGVGYWN0b3J5Ll9faW5pdF9fKToKKyAgICAgICAgKFdhdGNoTGlzdEZhY3Rv
cnkuX19pbml0X18pOgorICAgICAgICAoQmluZGluZ3NGYWN0b3J5Ll9faW5pdF9fKToKKyAgICAg
ICAgKFdlYktpdFBlcmxGYWN0b3J5Ll9faW5pdF9fKToKKyAgICAgICAgKFdlYktpdFB5RmFjdG9y
eS5fX2luaXRfXyk6CisgICAgICAgIChCdWlsZEZhY3RvcnkuX19pbml0X18pOgorICAgICAgICAo
VGVzdEZhY3RvcnkuX19pbml0X18pOgorICAgICAgICAoSlNDVGVzdHNGYWN0b3J5Ll9faW5pdF9f
KToKKyAgICAgICAgKFdpbmRvd3NGYWN0b3J5Ll9faW5pdF9fKToKKyAgICAgICAgKFdpbkNhaXJv
RmFjdG9yeS5fX2luaXRfXyk6CisgICAgICAgIChHVEtGYWN0b3J5Ll9faW5pdF9fKToKKyAgICAg
ICAgKFdQRUZhY3RvcnkuX19pbml0X18pOgorICAgICAgICAoU2VydmljZXNGYWN0b3J5Ll9faW5p
dF9fKToKKworMjAxOS0xMS0xMSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+
CisKKyAgICAgICAgRVdTIHNob3VsZCByZXRyeSBidWlsZCBpbiBjYXNlIG9mIGtpbGwtb2xkLXBy
b2Nlc3NlcyBmYWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBKb25hdGhhbiBCZWRhcmQuCisK
KyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHk6CisgICAgICAg
IChLaWxsT2xkUHJvY2Vzc2VzLmV2YWx1YXRlQ29tbWFuZCk6IFJldHJ5IHRoZSBidWlsZCBpbiBj
YXNlIG9mIGZhaWx1cmUuCisgICAgICAgIChLaWxsT2xkUHJvY2Vzc2VzLmdldFJlc3VsdFN1bW1h
cnkpOiBVcGRhdGUgdGhlIGJ1aWxkLXN0ZXAgc3VtbWFyeSBzdHJpbmcuCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5OiBVcGRhdGVkIHVuaXQt
dGVzdHMuCisKKzIwMTktMTEtMDkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisg
ICAgICAgIENsaWNreSBPcmJpbmcgc3VwcG9ydC5hcHBsZS5jb20gY2F0ZWdvcmllcyBzaG93cyBh
IFBORyBpbnN0ZWFkIG9mIHRoZSB3ZWIgcGFnZSBwcmV2aWV3LCB0YXBwaW5nIGxvYWRzIGltYWdl
IGFzc2V0IG9ubHkgaW5zdGVhZCBvZiB3ZWIgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDM3CisgICAgICAgIDxyZGFyOi8vNTU2MTQ5Mzk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIE5ldyB0ZXN0
cyBmb3IgYSBsaW5rIHdyYXBwaW5nIGFuIGltYWdlLCBhbmQgdGhlIG9yZGVyaW5nIG9mIEFQSSBh
bmQgU1BJLgorCisgICAgICAgIFJlbmFtZSB0aGVzZSB0ZXN0cyBzbyB0aGF0IHRoZXkgYXJlIG11
Y2ggZWFzaWVyIHRvIGZpbHRlciBvbiB0aGUgY29tbWFuZCBsaW5lLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZXh0TWVudXMubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKC1bVGVzdENvbnRleHRNZW51QVBJQmVmb3JlU1BJVUlE
ZWxlZ2F0ZSB3ZWJWaWV3OmNvbnRleHRNZW51Q29uZmlndXJhdGlvbkZvckVsZW1lbnQ6Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1Rlc3RDb250ZXh0TWVudUFQSUJlZm9yZVNQSVVJ
RGVsZWdhdGUgX3dlYlZpZXc6Y29udGV4dE1lbnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bVGVzdENvbnRleHRNZW51QVBJQmVmb3JlU1BJ
VUlEZWxlZ2F0ZSB3ZWJWaWV3OmNvbnRleHRNZW51V2lsbFByZXNlbnRGb3JFbGVtZW50Ol0pOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tSZXF1ZXN0QWN0aXZh
dGVkRWxlbWVudEluZm8ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2ltYWdlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbGluay13aXRoLWltYWdl
Lmh0bWw6IEFkZGVkLgorCisyMDE5LTExLTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBXS1dlYlZpZXcgRmluZC1pbi1wYWdlIEFQSS4KKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ2OTcxMTEyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzg3MgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBh
Z2VBUEkubW06IEFkZGVkLgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHNlbGVjdGlvblJhbmdl
SGFzU3RhcnRPZmZzZXQ6ZW5kT2Zmc2V0Ol0pOgorCisyMDE5LTExLTA4ICBKb25hdGhhbiBCZWRh
cmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBTaW11bGF0b3JzIGhhdmluZyB0cm91
YmxlIGxhdW5jaGluZyBhcHBzIGFmdGVyIGJvb3RpbmcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU3MDMyMDQyPgorCisgICAgICAgIFVucmV2aWV3ZWQgaW5mcmFzdHJ1Y3R1cmUgZml4LgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9wcm9jZXNzLnB5OgorICAg
ICAgICAoU2ltdWxhdG9yUHJvY2Vzcy5fc3RhcnQpOiBUZW1wb3JhcmlseSBpbmNyZWFzZSB0aW1l
b3V0IHRvIGhlbHAgb3V0IGJvdHMuCisKKzIwMTktMTEtMDggIEpvbmF0aGFuIEJlZGFyZCAgPGpi
ZWRhcmRAYXBwbGUuY29tPgorCisgICAgICAgIHJlc3VsdHMud2Via2l0Lm9yZzogTGlzdCBmYWls
aW5nIHRlc3RzIGZvciBjcml0ZXJpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzOTA1CisKKyAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQWFrYXNo
IEphaW4uCisKKyAgICAgICAgKiByZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2Fw
aV9yb3V0ZXMucHk6CisgICAgICAgIChBUElSb3V0ZXMuX19pbml0X18pOiBBZGQgRmFpbHVyZUNv
bnRyb2xsZXIgYW5kIC9mYWlsdXJlcyBlbmRwb2ludC4KKyAgICAgICAgKiByZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9jb250cm9sbGVyL2ZhaWx1cmVfY29udHJvbGxlci5weTogQWRkZWQuCisgICAg
ICAgIChGYWlsdXJlQ29udHJvbGxlcik6IEFkZGVkIEZhaWx1cmVDb250cm9sbGVyIG9iamVjdCB0
byBkcml2ZSAvZmFpbHVyZSBlbmRwb2ludC4KKyAgICAgICAgKEZhaWx1cmVDb250cm9sbGVyLl9f
aW5pdF9fKToKKyAgICAgICAgKEZhaWx1cmVDb250cm9sbGVyLmZhaWx1cmVzKTogUmV0dXJuIGEg
anNvbiBsaXN0IG9mIGZhaWx1cmVzIGZvciBhIHJhbmdlLgorICAgICAgICAqIHJlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvZmFpbHVyZV9jb250cm9sbGVyX3VuaXR0ZXN0LnB5OiBB
ZGRlZC4KKyAgICAgICAgKEZhaWx1cmVDb250cm9sbGVyVGVzdCk6IFRlc3QgdGhlIC9mYWlsdXJl
IEFQSS4KKyAgICAgICAgKEZhaWx1cmVDb250cm9sbGVyVGVzdC5zZXR1cF93ZWJzZXJ2ZXIpOgor
ICAgICAgICAoRmFpbHVyZUNvbnRyb2xsZXJUZXN0LnRlc3RfZmFpbHVyZXNfY29sbGFwc2VkKToK
KyAgICAgICAgKEZhaWx1cmVDb250cm9sbGVyVGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNf
Y29sbGFwc2VkKToKKyAgICAgICAgKEZhaWx1cmVDb250cm9sbGVyVGVzdC50ZXN0X2ZhaWx1cmVz
KToKKyAgICAgICAgKEZhaWx1cmVDb250cm9sbGVyVGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVy
ZXMpOgorICAgICAgICAoRmFpbHVyZUNvbnRyb2xsZXJUZXN0LnRlc3RfZmFpbHVyZV9ieV90aW1l
KToKKyAgICAgICAgKiByZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9mYWlsdXJlX2NvbnRl
eHQucHk6IEFkZGVkLgorICAgICAgICAoRmFpbHVyZUNvbnRleHQpOiBEYXRhYmFzZSBhY2Nlc3Mg
dG8gdGFibGVzIHJlY29yZGluZyB0ZXN0IGZhaWx1cmVzLgorICAgICAgICAoRmFpbHVyZUNvbnRl
eHQuVGVzdEZhaWx1cmVzQmFzZSk6CisgICAgICAgIChGYWlsdXJlQ29udGV4dC5UZXN0RmFpbHVy
ZXNCYXNlLnVucGFjayk6CisgICAgICAgIChGYWlsdXJlQ29udGV4dC5UZXN0RmFpbHVyZXNCeUNv
bW1pdCk6IFNhdmUgdGVzdCBmYWlsdXJlcyBzb3J0ZWQgYnkgY29tbWl0LgorICAgICAgICAoRmFp
bHVyZUNvbnRleHQuVGVzdEZhaWx1cmVzQnlTdGFydFRpbWUpOiBTYXZlIHRlc3QgZmFpbHVyZXMg
c29ydGVkIGJ5IHN0YXJ0IHRpbWUuCisgICAgICAgIChGYWlsdXJlQ29udGV4dC5VbmV4cGVjdGVk
VGVzdEZhaWx1cmVzQnlDb21taXQpOiBTYXZlIHVuZXhwZWN0ZWQgdGVzdCBmYWlsdXJlcworICAg
ICAgICBzb3J0ZWQgYnkgY29tbWl0LgorICAgICAgICAoRmFpbHVyZUNvbnRleHQuVW5leHBlY3Rl
ZFRlc3RGYWlsdXJlc0J5U3RhcnRUaW1lKTogU2F2ZSB1bmV4cGVjdGVkIHRlc3QgZmFpbHVyZXMK
KyAgICAgICAgc29ydGVkIGJ5IGNvbW1pdC4KKyAgICAgICAgKEZhaWx1cmVDb250ZXh0Ll9faW5p
dF9fKToKKyAgICAgICAgKEZhaWx1cmVDb250ZXh0LnJlZ2lzdGVyKTogUmVnaXN0ZXIgdGVzdCBm
YWlsdXJlcyB0byBlYWNoIG9mIHRoZSA0IHRhYmxlcyBmb3IgYW4gdXBsb2FkLgorICAgICAgICAo
RmFpbHVyZUNvbnRleHQuX2ZhaWx1cmVzKTogUmV0dXJuIGEgbGlzdCBvZiB0ZXN0IGZhaWx1cmVz
IGZyb20gYSB0YWJsZS4KKyAgICAgICAgKEZhaWx1cmVDb250ZXh0LmZhaWx1cmVzX2J5X2NvbW1p
dCk6IFJldHVybiBhIGxpc3Qgb2YgdGVzdCBmYWlsdXJlcyBmcm9tIGEgdGFibGUgc29ydGVkCisg
ICAgICAgIGJ5IGNvbW1pdC4KKyAgICAgICAgKEZhaWx1cmVDb250ZXh0LmZhaWx1cmVzX2J5X3N0
YXJ0X3RpbWUpOiBSZXR1cm4gYSBsaXN0IG9mIHRlc3QgZmFpbHVyZXMgZnJvbSBhIHRhYmxlCisg
ICAgICAgIHNvcnRlZCBieSBjb21taXQuCisgICAgICAgICogcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvbW9kZWwvZmFpbHVyZV9jb250ZXh0X3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKEZh
aWx1cmVDb250ZXh0VGVzdCk6CisgICAgICAgIChGYWlsdXJlQ29udGV4dFRlc3QuaW5pdF9kYXRh
YmFzZSk6CisgICAgICAgIChGYWlsdXJlQ29udGV4dFRlc3QudGVzdF9mYWlsdXJlc19jb2xsYXBz
ZWQpOgorICAgICAgICAoRmFpbHVyZUNvbnRleHRUZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJl
c19jb2xsYXBzZWQpOgorICAgICAgICAoRmFpbHVyZUNvbnRleHRUZXN0LnRlc3RfZmFpbHVyZXMp
OgorICAgICAgICAoRmFpbHVyZUNvbnRleHRUZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlcyk6
CisgICAgICAgICogcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvbW9kZWwucHk6CisgICAg
ICAgIChNb2RlbC5fX2luaXRfXyk6CisgICAgICAgICogcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
dmlldy90ZW1wbGF0ZXMvZG9jdW1lbnRhdGlvbi5odG1sOiBBZGQgZG9jdW1lbnRhdGlvbgorICAg
ICAgICBmb3IgdGhlIC9mYWlsdXJlIGVuZHBvaW50LgorCisyMDE5LTExLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IGZsYWt5IHRl
c3RzIGluIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2V0
Q2FjaGVNb2RlbCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKworMjAxOS0xMS0wOCAgQWFr
YXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xpY2tpbmcgb24g
RVdTIHN0YXR1cy1idWJibGUgc2hvdWxkIG9wZW4gdGhlIHJlc3VsdHMgaW4gbmV3IHRhYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDEyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIEJ1aWxk
U2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL3RlbXBsYXRlcy9zdGF0dXNidWJibGUuaHRtbDoKKwor
MjAxOS0xMS0wNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtXZWJBdXRobl0gUmV0dXJuIE5vdEFsbG93ZWRFcnJvciBpbW1lZGlhdGVseSBmb3IgVUkgY2Fu
Y2VsbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzOTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njk2MjQyMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKKzIwMTktMTEtMDggIEFha2FzaCBKYWluICA8YWFrYXNoX2ph
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFtld3NdIFByaW9yaXRpemUgYnVpbGRlcnMgb3ZlciB0
ZXN0ZXJzIHdoZW4gYSBib3QgaXMgc2hhcmVkIG92ZXIgbXVsdGlwbGUgcXVldWVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwMDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBKb25hdGhhbiBCZWRhcmQuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3Vw
cG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weToKKyAgICAgICAgKGxvYWRCdWlsZGVyQ29uZmln
KToKKyAgICAgICAgKHByaW9yaXRpemVCdWlsZGVycyk6IE1ldGhvZCB0byBwcmlvcml0aXplIGJ1
aWxkZXIgcXVldWVzIG92ZXIgdGVzdGVyIHF1ZXVlcy4KKworMjAxOS0xMS0wOCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEJ1aWxkIGZpeCBm
b3IgcGxhdGZvcm1zIHdpdGhvdXQgV2ViUlRDJ3MgU1NMIGFmdGVyIHIyNTIxODUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzkzNAorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Lm1tOgorICAgICAgICBUaGUgbmV3IHRlc3QgdXNlcyBUTFMgd2l0aCB0aGUgSFRUUFMgcHJveHku
ICBEb24ndCBjb21waWxlIGl0IGlmIHdlIGNhbid0IGNvbXBpbGUgaXQuCisKKzIwMTktMTEtMDgg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
VEtdIEFkZCBwb2ludGVyIGxvY2sgcGVybWlzc2lvbiByZXF1ZXN0IEFQSQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODk2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWRyaWFuIFBlcmV6IGRlIENhc3Ryby4KKworICAgICAgICBIYW5kbGUgcG9pbnRl
ciBsb2NrIHBlcm1pc3Npb24gcmVxdWVzdHMgaW4gTWluaUJyb3dzZXIgYW5kIGFkZCBhIG5ldyB0
ZXN0cyBjYXNlIHRvIGNoZWNrIHRoZSBuZXcgQVBJLgorCisgICAgICAgICogTWluaUJyb3dzZXIv
Z3RrL0Jyb3dzZXJUYWIuYzoKKyAgICAgICAgKHBvaW50ZXJMb2NrTWVzc2FnZVRpbWVvdXRDYWxs
YmFjayk6CisgICAgICAgIChkZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChicm93
c2VyVGFiRmluYWxpemUpOgorICAgICAgICAoYnJvd3NlclRhYkNvbnN0cnVjdGVkKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcDoKKyAg
ICAgICAgKHRlc3RXZWJWaWV3UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAg
IChiZWZvcmVBbGwpOgorCisyMDE5LTExLTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgVGVzdENvbnRyb2xsZXIgbWF5IHJldXNlIGEgdmlldyB0aGF0IHVzZWQg
d2luZG93Lm9wZW4oKSwgd2hpY2ggcHJldmVudHMgcHJvY2Vzcy1zd2FwcGluZyBhbmQgY2F1c2Vz
IGZsYWtpbmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzOTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAg
IFN0b3AgcmV1c2luZyBXZWJWaWV3cyB0aGF0IGhhdmUgY3JlYXRlZCBvdGhlciBXZWJWaWV3cyAo
dmlhIHdpbmRvdy5vcGVuKCkpIHNpbmNlIHRoaXMgcHJldmVudHMgcHJvY2Vzcy1zd2FwcGluZwor
ICAgICAgICBhbmQgbWF5IHRoZXJlZm9yZSBjYXVzZSBmbGFraW5lc3MgKHNlZSBCdWcgMjAzOTY1
KS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmVuc3VyZVZpZXdTdXBwb3J0c09wdGlvbnNGb3JUZXN0KToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisKKzIwMTktMTEtMDcg
IEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtld3NdIHJl
bmFtZSBSdW5KYXZhU2NyaXB0Q29yZVRlc3RzVG9UIHRvIFJ1bkpTQ1Rlc3RzV2l0aG91dFBhdGNo
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM5NTkK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgICog
QnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5OgorICAgICAgICAoUnVuSlNDVGVz
dHNXaXRob3V0UGF0Y2gpOiBSZW5hbWVkLgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2V3
cy1idWlsZC9zdGVwc191bml0dGVzdC5weTogVXBkYXRlZCB1bml0LXRlc3RzLgorCisyMDE5LTEx
LTA3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAyMDE5LTEx
LTA3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmUtZW5hYmxlIE5TVVJMU2Vzc2lvbiBpc29sYXRpb24gYWZ0ZXIgcjI1MjExNgpJbmRleDog
VG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMJKHJldmlzaW9uIDI1MjM0NCkKKysr
IFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw2ICs1NywxMiBAQCBteSAkcnVieVJ1bm5lcjsKIG15ICR0ZXN0V3JpdGVyOwogbXkgJG1l
bW9yeUxpbWl0ZWQ7CiAKK215ICRyZXBvcnQ7CitteSAkYnVpbGRib3RNYXN0ZXI7CitteSAkYnVp
bGRlck5hbWU7CitteSAkYnVpbGROdW1iZXI7CitteSAkYnVpbGRib3RXb3JrZXI7CisKIG15ICRi
dWlsZEpTQyA9IDE7CiBteSAkY29weUpTQyA9IDE7CiAKQEAgLTkxLDggKzk3LDEyIEBAIG15ICRn
bWFsbG9jRGVmYXVsdFBhdGggPSAiL3Vzci9saWIvbGliZ20KIG15ICRjcmVhdGVUYXJiYWxsID0g
MDsKIG15ICRyZW1vdGVIb3N0ID0gMDsKIG15ICRtb2RlbCA9IDA7CitteSAkdmVyc2lvbjsKK215
ICR2ZXJzaW9uTmFtZTsKK215ICRzZGs7CiBteSAkZmFpbEZhc3QgPSAxOwogbXkgJWpzb25EYXRh
ID0gKCk7CitteSAlcmVwb3J0RGF0YSA9ICgpOwogbXkgQHRlc3RSZXN1bHRzID0gKCk7CiBteSAk
aXNUZXN0RmFpbGVkID0gMDsKIG15ICRyZW1vdGVDb25maWdGaWxlOwpAQCAtMjMxLDYgKzI0MSw5
IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHQKICAgLS1yZW1vdGU9
ICAgICAgICAgICAgICAgICAgICAgUnVuIHRoZSBKU0Mgc3RyZXNzIHRlc3RzIG9uIHRoZSBzcGVj
aWZpZWQgcmVtb3RlIGhvc3QuIEltcGxpZXMgLS10YXJiYWxsLgogICAtLXJlbW90ZS1jb25maWct
ZmlsZT0gICAgICAgICBTYW1lIGFzIHJlbW90ZSwgYnV0IHJlYWQgY29uZmlnIGZyb20gSlNPTiBm
aWxlLgogICAtLW1vZGVsPSAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZ5IHJlbW90ZSBoYXJk
d2FyZSBtb2RlbCwgdGhpcyBpbmZvIHVzZWQgZm9yIGRldGVybWluZSB3aGF0IGpzYyB0ZXN0cyBz
aG91bGQgcnVuIG9uIHJlbW90ZQorICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICBTcGVj
aWZ5IHRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgZGV2aWNlIHJ1bm5pbmcgdGVzdHMuCisgIC0t
dmVyc2lvbi1uYW1lICAgICAgICAgICAgICAgIFNwZWNpZnkgdGhlIHZlcnNpb24gbmFtZSBvZiB0
aGUgaGFyZHdhcmUgcnVubmluZyB0ZXN0cy4KKyAgLS1zZGsgICAgICAgICAgICAgICAgICAgICAg
ICAgU3BlY2lmaWMgU0RLIG9yIE9TIHZlcnNpb24gb2YgdGhlIGZvcm0gIyMqIyMjCiAgIC0tZXh0
cmEtdGVzdHM9ICAgICAgICAgICAgICAgIFBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgZXh0cmEg
dGVzdHMKICAgLS1jaGlsZC1wcm9jZXNzZXM9ICAgICAgICAgICAgU3BlY2lmeSB0aGUgbnVtYmVy
IG9mIGNoaWxkIHByb2Nlc3Nlcy4KICAgLS1zaGVsbC1ydW5uZXIgICAgICAgICAgICAgICAgVXNl
cyB0aGUgc2hlbGwtYmFzZWQgdGVzdCBydW5uZXIgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBtYWtl
LWJhc2VkIHJ1bm5lci4KQEAgLTI1Miw2ICsyNjUsMTIgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBb
b3B0aW9uc10gW29wdGlvbnMgdAogICAtLWdtYWxsb2M6ICAgICAgICAgICAgICAgICAgICBSdW4g
dGVzdHMgd2l0aCBHdWFyZCBNYWxsb2MgZW5hYmxlZCAoaWYgbm8gcGF0aCBpcyBnaXZlbjogJGdt
YWxsb2NEZWZhdWx0UGF0aCBpcyB1c2VkKQogICAtLXZlcmJvc2U6ICAgICAgICAgICAgICAgICAg
ICBWZXJib3NlIG91dHB1dCAoc3BlY2lmeSBtb3JlIHRoYW4gb25jZSB0byBpbmNyZWFzZSB2ZXJi
b3NpdHkpLgogCisgIC0tcmVwb3J0OiAgICAgICAgICAgICAgICAgICAgIFJlc3VsdHMgZGF0YWJh
c2UgdXJsIHRvIHJlcG9ydCByZXN1bHRzIHRvLgorICAtLWJ1aWxkYm90LW1hc3RlcjogICAgICAg
ICAgICBUaGUgdXJsIG9mIHRoZSBidWlsZGJvdCBtYXN0ZXIuCisgIC0tYnVpbGRlci1uYW1lOiAg
ICAgICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBidWlsZGJvdCBidWlsZGVyIHRlc3RzIHdlcmUg
cnVuIG9uLgorICAtLWJ1aWxkLW51bWJlcjogICAgICAgICAgICAgICBUaGUgYnVpbGRib3QgYnVp
bGQgbnVtYmVyIHRlc3RzIGFyZSBhc3NvY2lhdGVkIHdpdGguCisgIC0tYnVpbGRib3Qtd29ya2Vy
OiAgICAgICAgICAgIFRoZSBidWlsZGJvdCB3b3JrZXIgdGVzdHMgd2VyZSBydW4gb24uCisKIEVu
dmlyb25tZW50IFZhcmlhYmxlczoKICAgLSBzZXQgUlVOX0pBVkFTQ1JJUFRDT1JFX1RFU1RTX1RF
U1RNQVNNIHRvICJ0cnVlIiBvciAiZmFsc2UiIChubyBxdW90ZXMpIHRvIGRldGVybWluZSBpZiB3
ZSBydW4gdGVzdG1hc20gYnkgZGVmYXVsdC4KICAgLSBzZXQgUlVOX0pBVkFTQ1JJUFRDT1JFX1RF
U1RTX1RFU1RBSVIgdG8gInRydWUiIG9yICJmYWxzZSIgKG5vIHF1b3RlcykgdG8gZGV0ZXJtaW5l
IGlmIHdlIHJ1biB0ZXN0YWlyIGJ5IGRlZmF1bHQuCkBAIC0yODksNiArMzA4LDkgQEAgR2V0T3B0
aW9ucygKICAgICAndGFyYmFsbCEnID0+IFwkY3JlYXRlVGFyYmFsbCwKICAgICAncmVtb3RlPXMn
ID0+IFwkcmVtb3RlSG9zdCwKICAgICAnbW9kZWw9cycgPT4gXCRtb2RlbCwKKyAgICAndmVyc2lv
bj1zJyA9PiBcJHZlcnNpb24sCisgICAgJ3ZlcnNpb24tbmFtZT1zJyA9PiBcJHZlcnNpb25OYW1l
LAorICAgICdzZGs9cycgPT4gXCRzZGssCiAgICAgJ3JlbW90ZS1jb25maWctZmlsZT1zJyA9PiBc
JHJlbW90ZUNvbmZpZ0ZpbGUsCiAgICAgJ2NoaWxkLXByb2Nlc3Nlcz1zJyA9PiBcJGNoaWxkUHJv
Y2Vzc2VzLAogICAgICdzaGVsbC1ydW5uZXInID0+IFwkc2hlbGxSdW5uZXIsCkBAIC0zMDAsNyAr
MzIyLDEyIEBAIEdldE9wdGlvbnMoCiAgICAgJ2hlbHAnID0+IFwkc2hvd0hlbHAsCiAgICAgJ2Vu
di12YXJzPXMnID0+IFwkZW52VmFycywKICAgICAnZ21hbGxvYzpzJyA9PiBcJGdtYWxsb2NQYXRo
LAotICAgICd2ZXJib3NlKycgPT4gXCR2ZXJib3NlCisgICAgJ3ZlcmJvc2UrJyA9PiBcJHZlcmJv
c2UsCisgICAgJ3JlcG9ydD1zJyA9PiBcJHJlcG9ydCwKKyAgICAnYnVpbGRib3QtbWFzdGVyPXMn
ID0+IFwkYnVpbGRib3RNYXN0ZXIsCisgICAgJ2J1aWxkZXItbmFtZT1zJyA9PiBcJGJ1aWxkZXJO
YW1lLAorICAgICdidWlsZC1udW1iZXI9cycgPT4gXCRidWlsZE51bWJlciwKKyAgICAnYnVpbGRi
b3Qtd29ya2VyPXMnID0+IFwkYnVpbGRib3RXb3JrZXIsCiApOwogCiAKQEAgLTMxNSw2ICszNDIs
MTAgQEAgaWYgKCRydW5UZXN0TWFzbSA9PSBET19SVU4KICAgICAkc3BlY2lmaWNUZXN0c1NwZWNp
ZmllZCA9IDE7CiB9CiAKK2lmICgkdmVyc2lvbikgeworICAgICR2ZXJzaW9uID0gc3BsaXRWZXJz
aW9uU3RyaW5nKCR2ZXJzaW9uKTsKK30KKwogc3ViIGVuYWJsZVRlc3RPck5vdCB7CiAgICAgbXkg
KCRzdGF0ZSkgPSBAXzsKICAgICBpZiAoJHN0YXRlID09IFJVTl9JRl9OT19URVNUU19TUEVDSUZJ
RUQgfHwgJHN0YXRlID09IEVOVl9WQVJfU0FZU19ET19SVU4pIHsKQEAgLTM5Nyw5ICs0MjgsNjQg
QEAgc3ViIHJ1blRlc3QgewogICAgICAgICB9CiAgICAgfQogCi0gICAgIyBVc2UgYW4gImluZGly
ZWN0IG9iamVjdCIgc28gdGhhdCBzeXN0ZW0oKSB3b24ndCBnZXQgY29uZnVzZWQgaWYgdGhlIHBh
dGgKLSAgICAjIGNvbnRhaW5zIHNwYWNlcyAoc2VlIHBlcmxkb2MgLWYgZXhlYykuCi0gICAgbXkg
JHRlc3RSZXN1bHQgPSBzeXN0ZW0geyAkY29tbWFuZFswXSB9IEBjb21tYW5kOworICAgIG15ICR0
ZXN0UmVzdWx0ID0gMDsKKyAgICBteSAkZmFpbHVyZUZsYWcgPSAwOworICAgIG9wZW4oVEVTVCwg
Ii18IiwgIkBjb21tYW5kIDI+JjEiKSBvciAkdGVzdFJlc3VsdCA9IDE7CisgICAgd2hpbGUgKCBt
eSAkbGluZSA9IDxURVNUPiApIHsKKyAgICAgICAgbXkgJHN1YlRlc3ROYW1lOworICAgICAgICBp
ZiAoJHZlcmJvc2UgPiAwKSB7CisgICAgICAgICAgICBwcmludCAiICAgICRsaW5lIjsKKyAgICAg
ICAgfQorCisgICAgICAgICMgICAgIE8yOiB0ZXN0Um90UldpdGhJbW1TaGlmdCh1aW50NjQtbWF4
LCB1aW50MzItbWluKTogT0shCisgICAgICAgIGlmICgkbGluZSA9fiAvKE9cZCk6IChcUyspKFwo
LipcKSk6IChbQS1aYS16XSspIVxuLykgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0
ZXN0TmFtZS4kMS4kMiQzIjsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkNCBu
ZSAiT0siKTsKKyAgICAgICAgfQorICAgICAgICAjIHN1Yi10ZXN0IGZyb20gdGhlIGMtYXBpLCBv
ZiB0aGUgZm9ybToKKyAgICAgICAgIyAgICAgdGVzdGFwaVsxNTQyMjoxNjkwNDc5MF0gcGFyYWxs
ZWxQcm9taXNlUmVzb2x2ZVRlc3QoKTogZG9uZS4KKyAgICAgICAgZWxzaWYgKCRsaW5lID1+IC9c
W1xkKzpcZCtcXSAoXFMrKSgpOiBkb25lXC5cbi8pIHsKKyAgICAgICAgICAgICRzdWJUZXN0TmFt
ZSA9ICIkdGVzdE5hbWUub2JqZWN0aXZlLWMuJDEiOworICAgICAgICB9CisgICAgICAgICMgRW5k
IG9mIEMtQVBJIHRlc3RzIChtZWFuaW5nIHdlIGp1c3QgZmluaXNoZWQgdGhlIHVuZ3JvdXBlZCBt
YWluIHRlc3RzKQorICAgICAgICBlbHNpZiAoJGxpbmUgPX4gL1N0YXJ0aW5nIEMtQVBJIHRlc3Rz
IGluIEMrKy8pIHsKKyAgICAgICAgICAgICRzdWJUZXN0TmFtZSA9ICIkdGVzdE5hbWUub2JqZWN0
aXZlLWMubWFpbiI7CisgICAgICAgIH0KKyAgICAgICAgIyBUZXN0IGNhc2VzIGluc2lkZSBBUEkg
dGVzdHMKKyAgICAgICAgIyAgICAgdGVzdGFwaVsxNTQyMjoxNjkwNDc5MF0gVEVTVDogIjIgKyAy
IjogUEFTU0VECisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvXFtcZCs6XGQrXF0gVEVTVDogIi4q
IjogKFtBLVpdKylcbi8pIHsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkMSBu
ZSAiUEFTU0VEIiAmJiAkMSBuZSAiUEFTUyIpOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAg
fQorICAgICAgICAjICAgICB0ZXN0Qml0WG9yQW5kQW5kQXJncygwLCAwLHVpbnQzMi1tYXgpOiBP
SyEKKyAgICAgICAgZWxzaWYgKCRsaW5lID1+IC8oXFMrKShcKC4qXCkpOiAoW0EtWmEtel0rKSFc
bi8pIHsKKyAgICAgICAgICAgICRzdWJUZXN0TmFtZSA9ICIkdGVzdE5hbWUuJDEkMiI7CisgICAg
ICAgICAgICAkZmFpbHVyZUZsYWcgKz0gMSBpZiAoJDMgbmUgIk9LIik7CisgICAgICAgIH0KKyAg
ICAgICAgIyBHZW5lcmFsIHRlc3RjYXNlIHN0YXRlbWVudCwgZmlsdGVyZWQgdG8gZXhjbHVkZSBz
b21lIGp1bmsgbG9nZ2luZworICAgICAgICAjICAgICBQQVNTOiBERkcgc2NyaXB0IHRpbWVkIG91
dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC4KKyAgICAgICAgZWxz
aWYgKCRsaW5lID1+IC8oW0EtWl0rKTogKC4qKVwuKlxuLyAmJiAhKCRsaW5lID1+IC9bQS1aXSs6
IFxkK1xuLyB8fCAkbGluZSA9fiAvXFtcZCs6XGQrXF0gW0EtWl0rOi8pKSB7CisgICAgICAgICAg
ICAkc3ViVGVzdE5hbWUgPSAiJHRlc3ROYW1lLiQyIjsKKyAgICAgICAgICAgICRmYWlsdXJlRmxh
ZyArPSAxIGlmICgkMSBuZSAiUEFTUyIpOworICAgICAgICB9CisgICAgICAgICMgICAgIHRlc3Qg
ZGVzY3JpcHRpb246IFBBU1NFRAorICAgICAgICBlbHNpZiAoJGxpbmUgPX4gLy4qOiAoW0EtWl0r
KVxuLykgeworICAgICAgICAgICAgJGZhaWx1cmVGbGFnICs9IDEgaWYgKCQxIG5lICJQQVNTRUQi
ICYmICQxIG5lICJQQVNTIik7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZGVmaW5lZCAkcmVw
b3J0RGF0YXskc3ViVGVzdE5hbWV9KSB7CisgICAgICAgICAgICAkcmVwb3J0RGF0YXskc3ViVGVz
dE5hbWV9ID0gJGZhaWx1cmVGbGFnID8ge2FjdHVhbCA9PiAiRkFJTCJ9IDoge2FjdHVhbCA9PiAi
UEFTUyJ9CisgICAgICAgIH0KKyAgICAgICAgJGZhaWx1cmVGbGFnID0gMDsKKyAgICB9CisgICAg
Y2xvc2UoVEVTVCk7CisKKyAgICBpZiAoJD8pIHsKKyAgICAgICAgbXkgJHRlc3RSZXN1bHQgPSAk
PzsKKyAgICB9CiAgICAgbXkgJGV4aXRTdGF0dXMgPSBleGl0U3RhdHVzKCR0ZXN0UmVzdWx0KTsK
ICAgICBwcmludCAiJHRlc3ROYW1lIGNvbXBsZXRlZCB3aXRoIHJjPSR0ZXN0UmVzdWx0ICgkZXhp
dFN0YXR1cylcblxuIjsKIApAQCAtNDE1LDcgKzUwMSw3IEBAIHN1YiBydW5UZXN0IHsKICAgICBp
ZiAoJHRlc3RSZXN1bHQgJiYgJGZhaWxGYXN0KSB7CiAgICAgICAgIHJlcG9ydFRlc3RGYWlsdXJl
cygpOwogICAgICAgICB3cml0ZUpzb25EYXRhSWZBcHBsaWNhYmxlKCk7Ci0gICAgICAgIGV4aXQg
ZXhpdFN0YXR1cygkdGVzdFJlc3VsdCk7CisgICAgICAgIGV4aXQgJGV4aXRTdGF0dXM7CiAgICAg
fQogfQogCkBAIC00MzYsNiArNTIyLDkgQEAgc3ViIHJlcG9ydFRlc3RGYWlsdXJlcyB7CiAgIHBy
aW50ICJcbiI7CiB9CiAKK215ICRzdGFydFRpbWUgPSB0aW1lKCk7CitteSAkZW5kVGltZSA9ICRz
dGFydFRpbWU7CisKIGlmICgkcnVuVGVzdE1hc20pIHsgcnVuVGVzdCgidGVzdG1hc20iLCAiYWxs
TWFzbVRlc3RzUGFzc2VkIikgfQogaWYgKCRydW5UZXN0QWlyKSB7IHJ1blRlc3QoInRlc3RhaXIi
LCAiYWxsQWlyVGVzdHNQYXNzZWQiKSB9CiBpZiAoJHJ1blRlc3RCMykgeyBydW5UZXN0KCJ0ZXN0
YjMiLCAiYWxsQjNUZXN0c1Bhc3NlZCIpIH0KQEAgLTQ0NSwxMCArNTM0LDEzIEBAIGlmICgkcnVu
VGVzdEFQSSkgeyBydW5UZXN0KCJ0ZXN0YXBpIiwgImEKIAogIyBGaW5kIEphdmFTY3JpcHRDb3Jl
IGRpcmVjdG9yeQogY2hkaXJXZWJLaXQoKTsKLQorIyBGSVhNRTogcmVwb3J0IHN0cmVzcyB0ZXN0
IGZhaWx1cmVzaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDA5Ngog
cnVuSlNDU3RyZXNzVGVzdHMoKTsKIHJlcG9ydFRlc3RGYWlsdXJlcygpOwogCiskZW5kVGltZSA9
IHRpbWUoKTsKK3VwbG9hZFJlc3VsdHMoKTsKKwogaWYgKCRpc1Rlc3RGYWlsZWQpIHsKICAgZXhp
dCgxKTsKIH0KQEAgLTY2NiwzICs3NTgsMTMzIEBAIHN1YiB3cml0ZUpzb25EYXRhSWZBcHBsaWNh
YmxlCiAgICAgICAgIGNsb3NlKCRmaWxlSGFuZGxlcik7CiAgICAgfQogfQorCitzdWIgdXBsb2Fk
Q29uZmlndXJhdGlvbigpCit7CisgICAgbXkgJHBsYXRmb3JtOworICAgIG15ICRzZGs7CisgICAg
bXkgJHNpbXVsYXRvciA9IDA7CisKKyAgICBpZiAod2lsbFVzZUlPU1NpbXVsYXRvclNESygpKSB7
CisgICAgICAgICRzaW11bGF0b3IgPSAxOworICAgIH0KKworICAgIGlmIChpbmRleCgkbW9kZWws
ICdpUGhvbmUnKSAhPSAtMSB8fCBpbmRleCgkbW9kZWwsICdpUGFkJykgIT0gLTEpIHsKKyAgICAg
ICAgJHBsYXRmb3JtID0gJ2lvcyc7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAg
ICAgICR2ZXJzaW9uID0gaW9zVmVyc2lvbigpOworICAgICAgICB9CisgICAgfSBlbHNpZiAoaW5k
ZXgoJG1vZGVsLCAnd2F0Y2gnKSAhPSAtMSkgeworICAgICAgICAkcGxhdGZvcm0gPSAnd2F0Y2hv
cyc7CisgICAgICAgIGRpZSAiTm8gd2F0Y2hPUyB2ZXJzaW9uIHNwZWNpZmllZCIgaWYgISR2ZXJz
aW9uOworICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gJ0dUSyc7
CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAgIGNob21wKCR2ZXJzaW9uID0g
YC91c3IvYmluL3VuYW1lIC1yYCk7CisgICAgICAgICAgICAkdmVyc2lvbiA9IHNwbGl0VmVyc2lv
blN0cmluZygkdmVyc2lvbik7CisgICAgICAgIH0KKyAgICB9IGVsc2lmIChpc1dQRSgpKSB7Cisg
ICAgICAgICRwbGF0Zm9ybSA9ICdXUEUnOworICAgICAgICBpZiAoISR2ZXJzaW9uKSB7CisgICAg
ICAgICAgICBjaG9tcCgkdmVyc2lvbiA9IGAvdXNyL2Jpbi91bmFtZSAtcmApOworICAgICAgICAg
ICAgJHZlcnNpb24gPSBzcGxpdFZlcnNpb25TdHJpbmcoJHZlcnNpb24pOworICAgICAgICB9Cisg
ICAgfSBlbHNpZiAoaXNBbnlXaW5kb3dzKCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gJ3dpbic7
CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAgICR2ZXJzaW9uID0gd2luVmVy
c2lvbigpOworICAgICAgICB9CisgICAgfSBlbHNpZiAoaXNBcHBsZU1hY1dlYktpdCgpKSB7Cisg
ICAgICAgICRwbGF0Zm9ybSA9ICdtYWMnOworICAgICAgICBjaG9tcCgkbW9kZWwgPSBgL3Vzci9z
YmluL3N5c2N0bCAtbiBody5tb2RlbGApOworICAgICAgICBpZiAoISR2ZXJzaW9uKSB7CisgICAg
ICAgICAgICAkdmVyc2lvbiA9IG9zWFZlcnNpb24oKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
ISRzZGspIHsKKyAgICAgICAgICAgIGNob21wKCRzZGsgPSBgL3Vzci9iaW4vc3dfdmVycyAtYnVp
bGRWZXJzaW9uYCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISR2ZXJzaW9uTmFtZSkgewor
ICAgICAgICAgICAgaWYgKCR2ZXJzaW9uLT57bWlub3J9IGVxIDE1KSB7CisgICAgICAgICAgICAg
ICAgJHZlcnNpb25OYW1lID0gIkNhdGFsaW5hIjsKKyAgICAgICAgICAgIH0gZWxzaWYgKCR2ZXJz
aW9uLT57bWlub3J9IGVxIDE0KSB7CisgICAgICAgICAgICAgICAgJHZlcnNpb25OYW1lID0gIk1v
amF2ZSI7CisgICAgICAgICAgICB9IGVsc2lmICgkdmVyc2lvbi0+e21pbm9yfSBlcSAxNCkgewor
ICAgICAgICAgICAgICAgICR2ZXJzaW9uTmFtZSA9ICJIaWdoIFNpZXJyYSI7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBkaWUgIkNhbm5vdCBkZXRlcm1p
bmUgcGxhdGZvcm1cbiI7CisgICAgfQorCisgICAgbXkgJHJlc3VsdCA9IHsKKyAgICAgICAgcGxh
dGZvcm0gPT4gJHBsYXRmb3JtLAorICAgICAgICBhcmNoaXRlY3R1cmUgPT4gYXJjaGl0ZWN0dXJl
KCksCisgICAgICAgIGlzX3NpbXVsYXRvciA9PiAkc2ltdWxhdG9yLAorICAgICAgICBzdHlsZSA9
PiBsYyhjb25maWd1cmF0aW9uKCkpLAorICAgICAgICB2ZXJzaW9uID0+ICIkdmVyc2lvbi0+e21h
am9yfS4kdmVyc2lvbi0+e21pbm9yfS4kdmVyc2lvbi0+e3N1Ym1pbm9yfSIsCisgICAgfTsKKyAg
ICBpZiAoJG1vZGVsKSB7CisgICAgICAgICRyZXN1bHQtPnttb2RlbH0gPSAkbW9kZWw7CisgICAg
fQorICAgIGlmICgkdmVyc2lvbk5hbWUpIHsKKyAgICAgICAgJHJlc3VsdC0+e3ZlcnNpb25fbmFt
ZX0gPSAkdmVyc2lvbk5hbWU7CisgICAgfQorICAgIGlmICgkc2RrKSB7CisgICAgICAgICRyZXN1
bHQtPntzZGt9ID0gJHNkazsKKyAgICB9CisgICAgcmV0dXJuICRyZXN1bHQ7Cit9CisKK3N1YiB1
cGxvYWRSZXN1bHRzCit7CisgICAgaWYgKG5vdCBkZWZpbmVkICRyZXBvcnQpIHsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG15ICV1cGxvYWQgPSAoCisgICAgICAgIHZlcnNpb24gPT4g
MCwKKyAgICAgICAgc3VpdGUgPT4gJ2phdmFzY3JpcHRjb3JlLXRlc3RzJywKKyAgICAgICAgIyBG
SVhNRTogSW50ZWdyYXRlIGJyYW5jaGVzLCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA0MDk0CisgICAgICAgICMgRklYTUU6IEludGVncmF0ZSB0aGUgU2FmYXJpIHJl
cG9zaXRvcnksIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwOTUK
KyAgICAgICAgY29tbWl0cyA9PiBbeworICAgICAgICAgICAgcmVwb3NpdG9yeV9pZCA9PiAnd2Vi
a2l0JywKKyAgICAgICAgICAgIGlkID0+IGRldGVybWluZUN1cnJlbnRTVk5SZXZpc2lvbigpLAor
ICAgICAgICB9XSwKKyAgICAgICAgY29uZmlndXJhdGlvbiA9PiB1cGxvYWRDb25maWd1cmF0aW9u
KCksCisgICAgICAgIHRlc3RfcmVzdWx0cyA9PiB7CisgICAgICAgICAgICBydW5fc3RhdHMgPT4g
eworICAgICAgICAgICAgICAgIHN0YXJ0X3RpbWUgPT4gJHN0YXJ0VGltZSwKKyAgICAgICAgICAg
ICAgICBlbmRfdGltZSA9PiAkZW5kVGltZSwKKyAgICAgICAgICAgICAgICB0ZXN0c19za2lwcGVk
ID0+IDAsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgcmVzdWx0cyA9PiBcJXJlcG9ydERh
dGEsCisgICAgICAgIH0sCisgICAgICAgIHRpbWVzdGFtcCA9PiAkc3RhcnRUaW1lLAorICAgICk7
CisgICAgaWYgKGRlZmluZWQgJGJ1aWxkYm90TWFzdGVyIGFuZCBkZWZpbmVkICRidWlsZGVyTmFt
ZSBhbmQgZGVmaW5lZCAkYnVpbGROdW1iZXIgYW5kIGRlZmluZWQgJGJ1aWxkYm90V29ya2VyKSB7
CisgICAgICAgICR1cGxvYWR7dGVzdF9yZXN1bHRzfXtkZXRhaWxzfSA9IHsKKyAgICAgICAgICAg
IGJ1aWxkYm90X21hc3RlciA9PiAkYnVpbGRib3RNYXN0ZXIsCisgICAgICAgICAgICBidWlsZGVy
X25hbWUgPT4gJGJ1aWxkZXJOYW1lLAorICAgICAgICAgICAgYnVpbGRfbnVtYmVyID0+ICRidWls
ZE51bWJlciwKKyAgICAgICAgICAgIGJ1aWxkYm90X3dvcmtlciA9PiAkYnVpbGRib3RXb3JrZXIs
CisgICAgICAgIH07CisgICAgfQorICAgIGlmIChkZWZpbmVkICRFTlZ7J1JFU1VMVFNfU0VSVkVS
X0FQSV9LRVknfSkgeworICAgICAgICAkdXBsb2FkeydhcGlfa2V5J30gPSAkRU5WeydSRVNVTFRT
X1NFUlZFUl9BUElfS0VZJ307CisgICAgfQorCisgICAgcHJpbnQgIlVwbG9hZGluZyByZXN1bHRz
IHRvICRyZXBvcnRcbiI7CisKKyAgICBvcGVuKEhBTkRMRSwgInwtIiwgImN1cmwgLVggUE9TVCAk
cmVwb3J0L2FwaS91cGxvYWQgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgLWYg
LWQgJ1xALSciKSBvciBkaWUgIkZhaWxlZCB0byBvcGVuIGN1cmwiOworICAgIG15ICRlbmNvZGVk
VXBsb2FkID0gZW5jb2RlX2pzb24oXCV1cGxvYWQpOworICAgIHByaW50IEhBTkRMRSAiJGVuY29k
ZWRVcGxvYWRcblwwIjsKKyAgICBteSAkc3VjY2VzcyA9IGNsb3NlIEhBTkRMRTsKKworICAgIGlm
ICgkc3VjY2VzcykgeworICAgICAgICBwcmludCAiVXBsb2FkIHN1Y2Nlc3NmdWwhXG4iOworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcHJpbnQgIlVwbG9hZCB0byAkcmVwb3J0IGZhaWxl
ZFxuIjsKKyAgICByZXR1cm4gMDsKK30KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5w
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHJldmlzaW9uIDI1
MjM0NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkod29ya2luZyBjb3B5KQpAQCAt
MTU2MywxMCArMTU2MywxMCBAQCBzdWIgc3BsaXRWZXJzaW9uU3RyaW5nCiAgICAgbXkgJHZlcnNp
b25TdHJpbmcgPSBzaGlmdDsKICAgICBteSBAc3BsaXRWZXJzaW9uID0gc3BsaXQoL1wuLywgJHZl
cnNpb25TdHJpbmcpOwogICAgIEBzcGxpdFZlcnNpb24gPj0gMiBvciBkaWUgIkludmFsaWQgdmVy
c2lvbiAkdmVyc2lvblN0cmluZyI7Ci0gICAgJG9zWFZlcnNpb24gPSB7Ci0gICAgICAgICAgICAi
bWFqb3IiID0+ICRzcGxpdFZlcnNpb25bMF0sCi0gICAgICAgICAgICAibWlub3IiID0+ICRzcGxp
dFZlcnNpb25bMV0sCi0gICAgICAgICAgICAic3VibWlub3IiID0+IChkZWZpbmVkKCRzcGxpdFZl
cnNpb25bMl0pID8gJHNwbGl0VmVyc2lvblsyXSA6IDApLAorICAgIHJldHVybiB7CisgICAgICAg
ICJtYWpvciIgPT4gJHNwbGl0VmVyc2lvblswXSwKKyAgICAgICAgIm1pbm9yIiA9PiAkc3BsaXRW
ZXJzaW9uWzFdLAorICAgICAgICAic3VibWlub3IiID0+IChkZWZpbmVkKCRzcGxpdFZlcnNpb25b
Ml0pID8gJHNwbGl0VmVyc2lvblsyXSA6IDApLAogICAgIH07CiB9CiAKQEAgLTE1NzksNyArMTU3
OSw3IEBAIHN1YiBkZXRlcm1pbmVPU1hWZXJzaW9uKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIG15ICR2ZXJzaW9uU3RyaW5nID0gYHN3X3ZlcnMgLXByb2R1Y3RWZXJzaW9uYDsKKyAg
ICBjaG9tcChteSAkdmVyc2lvblN0cmluZyA9IGBzd192ZXJzIC1wcm9kdWN0VmVyc2lvbmApOwog
ICAgICRvc1hWZXJzaW9uID0gc3BsaXRWZXJzaW9uU3RyaW5nKCR2ZXJzaW9uU3RyaW5nKTsKIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383364</attachid>
            <date>2019-11-12 10:32:58 -0800</date>
            <delta_ts>2019-11-13 07:59:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204091-20191112103258.patch</filename>
            <type>text/plain</type>
            <size>13296</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjM2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE5LTExLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlcG9ydCBKU0MgdGVzdHMgdG8gdGhl
IHJlc3VsdHMgZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk3Nzg5MDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBsb2FkIHJlc3Vs
dHMgdG8gdGhlIHNwZWNpZmllZCByZXN1bHRzIGRhdGFiYXNlLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgIChydW5UZXN0KTogUGFyc2UgYmlu
YXJ5IG91dHB1dCB0byBtYXJrIGluZGl2aWR1YWwgdGVzdHMgYXMgcGFzc2luZworICAgICAgICBv
ciBmYWlsaW5nLgorICAgICAgICAodXBsb2FkQ29uZmlndXJhdGlvbik6IFJldHVybiBhIGhhc2gg
bWFwIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbgorICAgICAgICBGb3IgdGhpcyBzcGVj
aWZpYyB0ZXN0IHJ1bi4KKyAgICAgICAgKHVwbG9hZFJlc3VsdHMpOiBJZiBhIHJlcG9ydCBVUkwg
aXMgZGVmaW5lZCwgdXBsb2FkIHRlc3QgcmVzdWx0cyB0byB0aGF0IFVSTC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChzcGxpdFZlcnNpb25TdHJpbmcpOiBzcGxp
dFZlcnNpb25TdHJpbmcgaXMgc3VwcG9zZWQgdG8gYmUgYSBnZW5lcmFsbHkgdXNlZAorICAgICAg
ICBmdW5jdGlvbiwgc28gc2hvdWxkIG5vdCBzZXQgYSBnbG9iYWwgdmFyaWFibGUuCisgICAgICAg
IChkZXRlcm1pbmVPU1hWZXJzaW9uKTogUmVtb3ZlIG5ld2xpbmUgZnJvbSB2ZXJzaW9uIG51bWJl
ci4KKwogMjAxOS0xMS0xMiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEFkZCAndGVzdDI2Mi10ZXN0JyBzdGVwIHRvIEdUSyBhbmQgV1BFIGJ1
aWxkIGJvdHMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCShyZXZp
c2lvbiAyNTIzNjgpCisrKyBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwko
d29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsMTIgQEAgbXkgJHJ1YnlSdW5uZXI7CiBteSAkdGVz
dFdyaXRlcjsKIG15ICRtZW1vcnlMaW1pdGVkOwogCitteSAkcmVwb3J0OworbXkgJGJ1aWxkYm90
TWFzdGVyOworbXkgJGJ1aWxkZXJOYW1lOworbXkgJGJ1aWxkTnVtYmVyOworbXkgJGJ1aWxkYm90
V29ya2VyOworCiBteSAkYnVpbGRKU0MgPSAxOwogbXkgJGNvcHlKU0MgPSAxOwogCkBAIC05MSw4
ICs5NywxMiBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRoID0gIi91c3IvbGliL2xpYmdtCiBteSAk
Y3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9zdCA9IDA7CiBteSAkbW9kZWwgPSAwOwor
bXkgJHZlcnNpb247CitteSAkdmVyc2lvbk5hbWU7CitteSAkc2RrOwogbXkgJGZhaWxGYXN0ID0g
MTsKIG15ICVqc29uRGF0YSA9ICgpOworbXkgJXJlcG9ydERhdGEgPSAoKTsKIG15IEB0ZXN0UmVz
dWx0cyA9ICgpOwogbXkgJGlzVGVzdEZhaWxlZCA9IDA7CiBteSAkcmVtb3RlQ29uZmlnRmlsZTsK
QEAgLTIzMSw2ICsyNDEsOSBAQCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9u
cyB0CiAgIC0tcmVtb3RlPSAgICAgICAgICAgICAgICAgICAgIFJ1biB0aGUgSlNDIHN0cmVzcyB0
ZXN0cyBvbiB0aGUgc3BlY2lmaWVkIHJlbW90ZSBob3N0LiBJbXBsaWVzIC0tdGFyYmFsbC4KICAg
LS1yZW1vdGUtY29uZmlnLWZpbGU9ICAgICAgICAgU2FtZSBhcyByZW1vdGUsIGJ1dCByZWFkIGNv
bmZpZyBmcm9tIEpTT04gZmlsZS4KICAgLS1tb2RlbD0gICAgICAgICAgICAgICAgICAgICAgU3Bl
Y2lmeSByZW1vdGUgaGFyZHdhcmUgbW9kZWwsIHRoaXMgaW5mbyB1c2VkIGZvciBkZXRlcm1pbmUg
d2hhdCBqc2MgdGVzdHMgc2hvdWxkIHJ1biBvbiByZW1vdGUKKyAgLS12ZXJzaW9uICAgICAgICAg
ICAgICAgICAgICAgU3BlY2lmeSB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRldmljZSBydW5u
aW5nIHRlc3RzLgorICAtLXZlcnNpb24tbmFtZSAgICAgICAgICAgICAgICBTcGVjaWZ5IHRoZSB2
ZXJzaW9uIG5hbWUgb2YgdGhlIGhhcmR3YXJlIHJ1bm5pbmcgdGVzdHMuCisgIC0tc2RrICAgICAg
ICAgICAgICAgICAgICAgICAgIFNwZWNpZmljIFNESyBvciBPUyB2ZXJzaW9uIG9mIHRoZSBmb3Jt
ICMjKiMjIwogICAtLWV4dHJhLXRlc3RzPSAgICAgICAgICAgICAgICBQYXRoIHRvIGEgZmlsZSBj
b250YWluaW5nIGV4dHJhIHRlc3RzCiAgIC0tY2hpbGQtcHJvY2Vzc2VzPSAgICAgICAgICAgIFNw
ZWNpZnkgdGhlIG51bWJlciBvZiBjaGlsZCBwcm9jZXNzZXMuCiAgIC0tc2hlbGwtcnVubmVyICAg
ICAgICAgICAgICAgIFVzZXMgdGhlIHNoZWxsLWJhc2VkIHRlc3QgcnVubmVyIGluc3RlYWQgb2Yg
dGhlIGRlZmF1bHQgbWFrZS1iYXNlZCBydW5uZXIuCkBAIC0yNTIsNiArMjY1LDEyIEBAIFVzYWdl
OiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHQKICAgLS1nbWFsbG9jOiAgICAgICAg
ICAgICAgICAgICAgUnVuIHRlc3RzIHdpdGggR3VhcmQgTWFsbG9jIGVuYWJsZWQgKGlmIG5vIHBh
dGggaXMgZ2l2ZW46ICRnbWFsbG9jRGVmYXVsdFBhdGggaXMgdXNlZCkKICAgLS12ZXJib3NlOiAg
ICAgICAgICAgICAgICAgICAgVmVyYm9zZSBvdXRwdXQgKHNwZWNpZnkgbW9yZSB0aGFuIG9uY2Ug
dG8gaW5jcmVhc2UgdmVyYm9zaXR5KS4KIAorICAtLXJlcG9ydDogICAgICAgICAgICAgICAgICAg
ICBSZXN1bHRzIGRhdGFiYXNlIHVybCB0byByZXBvcnQgcmVzdWx0cyB0by4KKyAgLS1idWlsZGJv
dC1tYXN0ZXI6ICAgICAgICAgICAgVGhlIHVybCBvZiB0aGUgYnVpbGRib3QgbWFzdGVyLgorICAt
LWJ1aWxkZXItbmFtZTogICAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgYnVpbGRib3QgYnVp
bGRlciB0ZXN0cyB3ZXJlIHJ1biBvbi4KKyAgLS1idWlsZC1udW1iZXI6ICAgICAgICAgICAgICAg
VGhlIGJ1aWxkYm90IGJ1aWxkIG51bWJlciB0ZXN0cyBhcmUgYXNzb2NpYXRlZCB3aXRoLgorICAt
LWJ1aWxkYm90LXdvcmtlcjogICAgICAgICAgICBUaGUgYnVpbGRib3Qgd29ya2VyIHRlc3RzIHdl
cmUgcnVuIG9uLgorCiBFbnZpcm9ubWVudCBWYXJpYWJsZXM6CiAgIC0gc2V0IFJVTl9KQVZBU0NS
SVBUQ09SRV9URVNUU19URVNUTUFTTSB0byAidHJ1ZSIgb3IgImZhbHNlIiAobm8gcXVvdGVzKSB0
byBkZXRlcm1pbmUgaWYgd2UgcnVuIHRlc3RtYXNtIGJ5IGRlZmF1bHQuCiAgIC0gc2V0IFJVTl9K
QVZBU0NSSVBUQ09SRV9URVNUU19URVNUQUlSIHRvICJ0cnVlIiBvciAiZmFsc2UiIChubyBxdW90
ZXMpIHRvIGRldGVybWluZSBpZiB3ZSBydW4gdGVzdGFpciBieSBkZWZhdWx0LgpAQCAtMjg5LDYg
KzMwOCw5IEBAIEdldE9wdGlvbnMoCiAgICAgJ3RhcmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGws
CiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhvc3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9k
ZWwsCisgICAgJ3ZlcnNpb249cycgPT4gXCR2ZXJzaW9uLAorICAgICd2ZXJzaW9uLW5hbWU9cycg
PT4gXCR2ZXJzaW9uTmFtZSwKKyAgICAnc2RrPXMnID0+IFwkc2RrLAogICAgICdyZW1vdGUtY29u
ZmlnLWZpbGU9cycgPT4gXCRyZW1vdGVDb25maWdGaWxlLAogICAgICdjaGlsZC1wcm9jZXNzZXM9
cycgPT4gXCRjaGlsZFByb2Nlc3NlcywKICAgICAnc2hlbGwtcnVubmVyJyA9PiBcJHNoZWxsUnVu
bmVyLApAQCAtMzAwLDcgKzMyMiwxMiBAQCBHZXRPcHRpb25zKAogICAgICdoZWxwJyA9PiBcJHNo
b3dIZWxwLAogICAgICdlbnYtdmFycz1zJyA9PiBcJGVudlZhcnMsCiAgICAgJ2dtYWxsb2M6cycg
PT4gXCRnbWFsbG9jUGF0aCwKLSAgICAndmVyYm9zZSsnID0+IFwkdmVyYm9zZQorICAgICd2ZXJi
b3NlKycgPT4gXCR2ZXJib3NlLAorICAgICdyZXBvcnQ9cycgPT4gXCRyZXBvcnQsCisgICAgJ2J1
aWxkYm90LW1hc3Rlcj1zJyA9PiBcJGJ1aWxkYm90TWFzdGVyLAorICAgICdidWlsZGVyLW5hbWU9
cycgPT4gXCRidWlsZGVyTmFtZSwKKyAgICAnYnVpbGQtbnVtYmVyPXMnID0+IFwkYnVpbGROdW1i
ZXIsCisgICAgJ2J1aWxkYm90LXdvcmtlcj1zJyA9PiBcJGJ1aWxkYm90V29ya2VyLAogKTsKIAog
CkBAIC0zMTUsNiArMzQyLDEwIEBAIGlmICgkcnVuVGVzdE1hc20gPT0gRE9fUlVOCiAgICAgJHNw
ZWNpZmljVGVzdHNTcGVjaWZpZWQgPSAxOwogfQogCitpZiAoJHZlcnNpb24pIHsKKyAgICAkdmVy
c2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7Cit9CisKIHN1YiBlbmFibGVUZXN0
T3JOb3QgewogICAgIG15ICgkc3RhdGUpID0gQF87CiAgICAgaWYgKCRzdGF0ZSA9PSBSVU5fSUZf
Tk9fVEVTVFNfU1BFQ0lGSUVEIHx8ICRzdGF0ZSA9PSBFTlZfVkFSX1NBWVNfRE9fUlVOKSB7CkBA
IC0zOTcsOSArNDI4LDY0IEBAIHN1YiBydW5UZXN0IHsKICAgICAgICAgfQogICAgIH0KIAotICAg
ICMgVXNlIGFuICJpbmRpcmVjdCBvYmplY3QiIHNvIHRoYXQgc3lzdGVtKCkgd29uJ3QgZ2V0IGNv
bmZ1c2VkIGlmIHRoZSBwYXRoCi0gICAgIyBjb250YWlucyBzcGFjZXMgKHNlZSBwZXJsZG9jIC1m
IGV4ZWMpLgotICAgIG15ICR0ZXN0UmVzdWx0ID0gc3lzdGVtIHsgJGNvbW1hbmRbMF0gfSBAY29t
bWFuZDsKKyAgICBteSAkdGVzdFJlc3VsdCA9IDA7CisgICAgbXkgJGZhaWx1cmVGbGFnID0gMDsK
KyAgICBvcGVuKFRFU1QsICItfCIsICJAY29tbWFuZCAyPiYxIikgb3IgJHRlc3RSZXN1bHQgPSAx
OworICAgIHdoaWxlICggbXkgJGxpbmUgPSA8VEVTVD4gKSB7CisgICAgICAgIG15ICRzdWJUZXN0
TmFtZTsKKyAgICAgICAgaWYgKCR2ZXJib3NlID4gMCkgeworICAgICAgICAgICAgcHJpbnQgIiAg
ICAkbGluZSI7CisgICAgICAgIH0KKworICAgICAgICAjICAgICBPMjogdGVzdFJvdFJXaXRoSW1t
U2hpZnQodWludDY0LW1heCwgdWludDMyLW1pbik6IE9LIQorICAgICAgICBpZiAoJGxpbmUgPX4g
LyhPXGQpOiAoXFMrKShcKC4qXCkpOiAoW0EtWmEtel0rKSFcbi8pIHsKKyAgICAgICAgICAgICRz
dWJUZXN0TmFtZSA9ICIkdGVzdE5hbWUuJDEuJDIkMyI7CisgICAgICAgICAgICAkZmFpbHVyZUZs
YWcgKz0gMSBpZiAoJDQgbmUgIk9LIik7CisgICAgICAgIH0KKyAgICAgICAgIyBzdWItdGVzdCBm
cm9tIHRoZSBjLWFwaSwgb2YgdGhlIGZvcm06CisgICAgICAgICMgICAgIHRlc3RhcGlbMTU0MjI6
MTY5MDQ3OTBdIHBhcmFsbGVsUHJvbWlzZVJlc29sdmVUZXN0KCk6IGRvbmUuCisgICAgICAgIGVs
c2lmICgkbGluZSA9fiAvXFtcZCs6XGQrXF0gKFxTKykoKTogZG9uZVwuXG4vKSB7CisgICAgICAg
ICAgICAkc3ViVGVzdE5hbWUgPSAiJHRlc3ROYW1lLm9iamVjdGl2ZS1jLiQxIjsKKyAgICAgICAg
fQorICAgICAgICAjIEVuZCBvZiBDLUFQSSB0ZXN0cyAobWVhbmluZyB3ZSBqdXN0IGZpbmlzaGVk
IHRoZSB1bmdyb3VwZWQgbWFpbiB0ZXN0cykKKyAgICAgICAgZWxzaWYgKCRsaW5lID1+IC9TdGFy
dGluZyBDLUFQSSB0ZXN0cyBpbiBDKysvKSB7CisgICAgICAgICAgICAkc3ViVGVzdE5hbWUgPSAi
JHRlc3ROYW1lLm9iamVjdGl2ZS1jLm1haW4iOworICAgICAgICB9CisgICAgICAgICMgVGVzdCBj
YXNlcyBpbnNpZGUgQVBJIHRlc3RzCisgICAgICAgICMgICAgIHRlc3RhcGlbMTU0MjI6MTY5MDQ3
OTBdIFRFU1Q6ICIyICsgMiI6IFBBU1NFRAorICAgICAgICBlbHNpZiAoJGxpbmUgPX4gL1xbXGQr
OlxkK1xdIFRFU1Q6ICIuKiI6IChbQS1aXSspXG4vKSB7CisgICAgICAgICAgICAkZmFpbHVyZUZs
YWcgKz0gMSBpZiAoJDEgbmUgIlBBU1NFRCIgJiYgJDEgbmUgIlBBU1MiKTsKKyAgICAgICAgICAg
IG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgIyAgICAgdGVzdEJpdFhvckFuZEFuZEFyZ3MoMCwg
MCx1aW50MzItbWF4KTogT0shCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvKFxTKykoXCguKlwp
KTogKFtBLVphLXpdKykhXG4vKSB7CisgICAgICAgICAgICAkc3ViVGVzdE5hbWUgPSAiJHRlc3RO
YW1lLiQxJDIiOworICAgICAgICAgICAgJGZhaWx1cmVGbGFnICs9IDEgaWYgKCQzIG5lICJPSyIp
OworICAgICAgICB9CisgICAgICAgICMgR2VuZXJhbCB0ZXN0Y2FzZSBzdGF0ZW1lbnQsIGZpbHRl
cmVkIHRvIGV4Y2x1ZGUgc29tZSBqdW5rIGxvZ2dpbmcKKyAgICAgICAgIyAgICAgUEFTUzogREZH
IHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZp
ZWQuCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvKFtBLVpdKyk6ICguKilcLipcbi8gJiYgISgk
bGluZSA9fiAvW0EtWl0rOiBcZCtcbi8gfHwgJGxpbmUgPX4gL1xbXGQrOlxkK1xdIFtBLVpdKzov
KSkgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMiI7CisgICAgICAg
ICAgICAkZmFpbHVyZUZsYWcgKz0gMSBpZiAoJDEgbmUgIlBBU1MiKTsKKyAgICAgICAgfQorICAg
ICAgICAjICAgICB0ZXN0IGRlc2NyaXB0aW9uOiBQQVNTRUQKKyAgICAgICAgZWxzaWYgKCRsaW5l
ID1+IC8uKjogKFtBLVpdKylcbi8pIHsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyArPSAxIGlm
ICgkMSBuZSAiUEFTU0VEIiAmJiAkMSBuZSAiUEFTUyIpOworICAgICAgICAgICAgbmV4dDsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoIWRlZmluZWQgJHJlcG9ydERhdGF7JHN1YlRlc3ROYW1lfSkgeworICAgICAgICAgICAgJHJl
cG9ydERhdGF7JHN1YlRlc3ROYW1lfSA9ICRmYWlsdXJlRmxhZyA/IHthY3R1YWwgPT4gIkZBSUwi
fSA6IHthY3R1YWwgPT4gIlBBU1MifQorICAgICAgICB9CisgICAgICAgICRmYWlsdXJlRmxhZyA9
IDA7CisgICAgfQorICAgIGNsb3NlKFRFU1QpOworCisgICAgaWYgKCQ/KSB7CisgICAgICAgIG15
ICR0ZXN0UmVzdWx0ID0gJD87CisgICAgfQogICAgIG15ICRleGl0U3RhdHVzID0gZXhpdFN0YXR1
cygkdGVzdFJlc3VsdCk7CiAgICAgcHJpbnQgIiR0ZXN0TmFtZSBjb21wbGV0ZWQgd2l0aCByYz0k
dGVzdFJlc3VsdCAoJGV4aXRTdGF0dXMpXG5cbiI7CiAKQEAgLTQxNSw3ICs1MDEsNyBAQCBzdWIg
cnVuVGVzdCB7CiAgICAgaWYgKCR0ZXN0UmVzdWx0ICYmICRmYWlsRmFzdCkgewogICAgICAgICBy
ZXBvcnRUZXN0RmFpbHVyZXMoKTsKICAgICAgICAgd3JpdGVKc29uRGF0YUlmQXBwbGljYWJsZSgp
OwotICAgICAgICBleGl0IGV4aXRTdGF0dXMoJHRlc3RSZXN1bHQpOworICAgICAgICBleGl0ICRl
eGl0U3RhdHVzOwogICAgIH0KIH0KIApAQCAtNDM2LDYgKzUyMiw5IEBAIHN1YiByZXBvcnRUZXN0
RmFpbHVyZXMgewogICBwcmludCAiXG4iOwogfQogCitteSAkc3RhcnRUaW1lID0gdGltZSgpOwor
bXkgJGVuZFRpbWUgPSAkc3RhcnRUaW1lOworCiBpZiAoJHJ1blRlc3RNYXNtKSB7IHJ1blRlc3Qo
InRlc3RtYXNtIiwgImFsbE1hc21UZXN0c1Bhc3NlZCIpIH0KIGlmICgkcnVuVGVzdEFpcikgeyBy
dW5UZXN0KCJ0ZXN0YWlyIiwgImFsbEFpclRlc3RzUGFzc2VkIikgfQogaWYgKCRydW5UZXN0QjMp
IHsgcnVuVGVzdCgidGVzdGIzIiwgImFsbEIzVGVzdHNQYXNzZWQiKSB9CkBAIC00NDYsOSArNTM1
LDEzIEBAIGlmICgkcnVuVGVzdEFQSSkgeyBydW5UZXN0KCJ0ZXN0YXBpIiwgImEKICMgRmluZCBK
YXZhU2NyaXB0Q29yZSBkaXJlY3RvcnkKIGNoZGlyV2ViS2l0KCk7CiAKKyMgRklYTUU6IHJlcG9y
dCBzdHJlc3MgdGVzdCBmYWlsdXJlc2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQwOTYKIHJ1bkpTQ1N0cmVzc1Rlc3RzKCk7CiByZXBvcnRUZXN0RmFpbHVyZXMoKTsK
IAorJGVuZFRpbWUgPSB0aW1lKCk7Cit1cGxvYWRSZXN1bHRzKCk7CisKIGlmICgkaXNUZXN0RmFp
bGVkKSB7CiAgIGV4aXQoMSk7CiB9CkBAIC02NjYsMyArNzU5LDEzMyBAQCBzdWIgd3JpdGVKc29u
RGF0YUlmQXBwbGljYWJsZQogICAgICAgICBjbG9zZSgkZmlsZUhhbmRsZXIpOwogICAgIH0KIH0K
Kworc3ViIHVwbG9hZENvbmZpZ3VyYXRpb24oKQoreworICAgIG15ICRwbGF0Zm9ybTsKKyAgICBt
eSAkc2RrOworICAgIG15ICRzaW11bGF0b3IgPSAwOworCisgICAgaWYgKHdpbGxVc2VJT1NTaW11
bGF0b3JTREsoKSkgeworICAgICAgICAkc2ltdWxhdG9yID0gMTsKKyAgICB9CisKKyAgICBpZiAo
aW5kZXgoJG1vZGVsLCAnaVBob25lJykgIT0gLTEgfHwgaW5kZXgoJG1vZGVsLCAnaVBhZCcpICE9
IC0xKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICdpb3MnOworICAgICAgICBpZiAoISR2ZXJzaW9u
KSB7CisgICAgICAgICAgICAkdmVyc2lvbiA9IGlvc1ZlcnNpb24oKTsKKyAgICAgICAgfQorICAg
IH0gZWxzaWYgKGluZGV4KCRtb2RlbCwgJ3dhdGNoJykgIT0gLTEpIHsKKyAgICAgICAgJHBsYXRm
b3JtID0gJ3dhdGNob3MnOworICAgICAgICBkaWUgIk5vIHdhdGNoT1MgdmVyc2lvbiBzcGVjaWZp
ZWQiIGlmICEkdmVyc2lvbjsKKyAgICB9IGVsc2lmIChpc0d0aygpKSB7CisgICAgICAgICRwbGF0
Zm9ybSA9ICdHVEsnOworICAgICAgICBpZiAoISR2ZXJzaW9uKSB7CisgICAgICAgICAgICBjaG9t
cCgkdmVyc2lvbiA9IGAvdXNyL2Jpbi91bmFtZSAtcmApOworICAgICAgICAgICAgJHZlcnNpb24g
PSBzcGxpdFZlcnNpb25TdHJpbmcoJHZlcnNpb24pOworICAgICAgICB9CisgICAgfSBlbHNpZiAo
aXNXUEUoKSkgeworICAgICAgICAkcGxhdGZvcm0gPSAnV1BFJzsKKyAgICAgICAgaWYgKCEkdmVy
c2lvbikgeworICAgICAgICAgICAgY2hvbXAoJHZlcnNpb24gPSBgL3Vzci9iaW4vdW5hbWUgLXJg
KTsKKyAgICAgICAgICAgICR2ZXJzaW9uID0gc3BsaXRWZXJzaW9uU3RyaW5nKCR2ZXJzaW9uKTsK
KyAgICAgICAgfQorICAgIH0gZWxzaWYgKGlzQW55V2luZG93cygpKSB7CisgICAgICAgICRwbGF0
Zm9ybSA9ICd3aW4nOworICAgICAgICBpZiAoISR2ZXJzaW9uKSB7CisgICAgICAgICAgICAkdmVy
c2lvbiA9IHdpblZlcnNpb24oKTsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKGlzQXBwbGVNYWNX
ZWJLaXQoKSkgeworICAgICAgICAkcGxhdGZvcm0gPSAnbWFjJzsKKyAgICAgICAgY2hvbXAoJG1v
ZGVsID0gYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcubW9kZWxgKTsKKyAgICAgICAgaWYgKCEkdmVy
c2lvbikgeworICAgICAgICAgICAgJHZlcnNpb24gPSBvc1hWZXJzaW9uKCk7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKCEkc2RrKSB7CisgICAgICAgICAgICBjaG9tcCgkc2RrID0gYC91c3IvYmlu
L3N3X3ZlcnMgLWJ1aWxkVmVyc2lvbmApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkdmVy
c2lvbk5hbWUpIHsKKyAgICAgICAgICAgIGlmICgkdmVyc2lvbi0+e21pbm9yfSBlcSAxNSkgewor
ICAgICAgICAgICAgICAgICR2ZXJzaW9uTmFtZSA9ICJDYXRhbGluYSI7CisgICAgICAgICAgICB9
IGVsc2lmICgkdmVyc2lvbi0+e21pbm9yfSBlcSAxNCkgeworICAgICAgICAgICAgICAgICR2ZXJz
aW9uTmFtZSA9ICJNb2phdmUiOworICAgICAgICAgICAgfSBlbHNpZiAoJHZlcnNpb24tPnttaW5v
cn0gZXEgMTQpIHsKKyAgICAgICAgICAgICAgICAkdmVyc2lvbk5hbWUgPSAiSGlnaCBTaWVycmEi
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGllICJD
YW5ub3QgZGV0ZXJtaW5lIHBsYXRmb3JtXG4iOworICAgIH0KKworICAgIG15ICRyZXN1bHQgPSB7
CisgICAgICAgIHBsYXRmb3JtID0+ICRwbGF0Zm9ybSwKKyAgICAgICAgYXJjaGl0ZWN0dXJlID0+
IGFyY2hpdGVjdHVyZSgpLAorICAgICAgICBpc19zaW11bGF0b3IgPT4gJHNpbXVsYXRvciwKKyAg
ICAgICAgc3R5bGUgPT4gbGMoY29uZmlndXJhdGlvbigpKSwKKyAgICAgICAgdmVyc2lvbiA9PiAi
JHZlcnNpb24tPnttYWpvcn0uJHZlcnNpb24tPnttaW5vcn0uJHZlcnNpb24tPntzdWJtaW5vcn0i
LAorICAgIH07CisgICAgaWYgKCRtb2RlbCkgeworICAgICAgICAkcmVzdWx0LT57bW9kZWx9ID0g
JG1vZGVsOworICAgIH0KKyAgICBpZiAoJHZlcnNpb25OYW1lKSB7CisgICAgICAgICRyZXN1bHQt
Pnt2ZXJzaW9uX25hbWV9ID0gJHZlcnNpb25OYW1lOworICAgIH0KKyAgICBpZiAoJHNkaykgewor
ICAgICAgICAkcmVzdWx0LT57c2RrfSA9ICRzZGs7CisgICAgfQorICAgIHJldHVybiAkcmVzdWx0
OworfQorCitzdWIgdXBsb2FkUmVzdWx0cworeworICAgIGlmIChub3QgZGVmaW5lZCAkcmVwb3J0
KSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBteSAldXBsb2FkID0gKAorICAgICAg
ICB2ZXJzaW9uID0+IDAsCisgICAgICAgIHN1aXRlID0+ICdqYXZhc2NyaXB0Y29yZS10ZXN0cycs
CisgICAgICAgICMgRklYTUU6IEludGVncmF0ZSBicmFuY2hlcywgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDA5NAorICAgICAgICAjIEZJWE1FOiBJbnRlZ3JhdGUg
dGhlIFNhZmFyaSByZXBvc2l0b3J5LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA0MDk1CisgICAgICAgIGNvbW1pdHMgPT4gW3sKKyAgICAgICAgICAgIHJlcG9zaXRv
cnlfaWQgPT4gJ3dlYmtpdCcsCisgICAgICAgICAgICBpZCA9PiBkZXRlcm1pbmVDdXJyZW50U1ZO
UmV2aXNpb24oKSwKKyAgICAgICAgfV0sCisgICAgICAgIGNvbmZpZ3VyYXRpb24gPT4gdXBsb2Fk
Q29uZmlndXJhdGlvbigpLAorICAgICAgICB0ZXN0X3Jlc3VsdHMgPT4geworICAgICAgICAgICAg
cnVuX3N0YXRzID0+IHsKKyAgICAgICAgICAgICAgICBzdGFydF90aW1lID0+ICRzdGFydFRpbWUs
CisgICAgICAgICAgICAgICAgZW5kX3RpbWUgPT4gJGVuZFRpbWUsCisgICAgICAgICAgICAgICAg
dGVzdHNfc2tpcHBlZCA9PiAwLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHJlc3VsdHMg
PT4gXCVyZXBvcnREYXRhLAorICAgICAgICB9LAorICAgICAgICB0aW1lc3RhbXAgPT4gJHN0YXJ0
VGltZSwKKyAgICApOworICAgIGlmIChkZWZpbmVkICRidWlsZGJvdE1hc3RlciBhbmQgZGVmaW5l
ZCAkYnVpbGRlck5hbWUgYW5kIGRlZmluZWQgJGJ1aWxkTnVtYmVyIGFuZCBkZWZpbmVkICRidWls
ZGJvdFdvcmtlcikgeworICAgICAgICAkdXBsb2Fke3Rlc3RfcmVzdWx0c317ZGV0YWlsc30gPSB7
CisgICAgICAgICAgICBidWlsZGJvdF9tYXN0ZXIgPT4gJGJ1aWxkYm90TWFzdGVyLAorICAgICAg
ICAgICAgYnVpbGRlcl9uYW1lID0+ICRidWlsZGVyTmFtZSwKKyAgICAgICAgICAgIGJ1aWxkX251
bWJlciA9PiAkYnVpbGROdW1iZXIsCisgICAgICAgICAgICBidWlsZGJvdF93b3JrZXIgPT4gJGJ1
aWxkYm90V29ya2VyLAorICAgICAgICB9OworICAgIH0KKyAgICBpZiAoZGVmaW5lZCAkRU5WeydS
RVNVTFRTX1NFUlZFUl9BUElfS0VZJ30pIHsKKyAgICAgICAgJHVwbG9hZHsnYXBpX2tleSd9ID0g
JEVOVnsnUkVTVUxUU19TRVJWRVJfQVBJX0tFWSd9OworICAgIH0KKworICAgIHByaW50ICJVcGxv
YWRpbmcgcmVzdWx0cyB0byAkcmVwb3J0XG4iOworCisgICAgb3BlbihIQU5ETEUsICJ8LSIsICJj
dXJsIC1YIFBPU1QgJHJlcG9ydC9hcGkvdXBsb2FkIC1IICdDb250ZW50LVR5cGU6IGFwcGxpY2F0
aW9uL2pzb24nIC1mIC1kICdcQC0nIikgb3IgZGllICJGYWlsZWQgdG8gb3BlbiBjdXJsIjsKKyAg
ICBteSAkZW5jb2RlZFVwbG9hZCA9IGVuY29kZV9qc29uKFwldXBsb2FkKTsKKyAgICBwcmludCBI
QU5ETEUgIiRlbmNvZGVkVXBsb2FkXG5cMCI7CisgICAgbXkgJHN1Y2Nlc3MgPSBjbG9zZSBIQU5E
TEU7CisKKyAgICBpZiAoJHN1Y2Nlc3MpIHsKKyAgICAgICAgcHJpbnQgIlVwbG9hZCBzdWNjZXNz
ZnVsIVxuIjsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHByaW50ICJVcGxvYWQgdG8g
JHJlcG9ydCBmYWlsZWRcbiI7CisgICAgcmV0dXJuIDA7Cit9CkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdGRpcnMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CShyZXZpc2lvbiAyNTIzNjgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtp
bmcgY29weSkKQEAgLTE1NjMsMTAgKzE1NjMsMTAgQEAgc3ViIHNwbGl0VmVyc2lvblN0cmluZwog
ICAgIG15ICR2ZXJzaW9uU3RyaW5nID0gc2hpZnQ7CiAgICAgbXkgQHNwbGl0VmVyc2lvbiA9IHNw
bGl0KC9cLi8sICR2ZXJzaW9uU3RyaW5nKTsKICAgICBAc3BsaXRWZXJzaW9uID49IDIgb3IgZGll
ICJJbnZhbGlkIHZlcnNpb24gJHZlcnNpb25TdHJpbmciOwotICAgICRvc1hWZXJzaW9uID0gewot
ICAgICAgICAgICAgIm1ham9yIiA9PiAkc3BsaXRWZXJzaW9uWzBdLAotICAgICAgICAgICAgIm1p
bm9yIiA9PiAkc3BsaXRWZXJzaW9uWzFdLAotICAgICAgICAgICAgInN1Ym1pbm9yIiA9PiAoZGVm
aW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNpb25bMl0gOiAwKSwKKyAgICByZXR1
cm4geworICAgICAgICAibWFqb3IiID0+ICRzcGxpdFZlcnNpb25bMF0sCisgICAgICAgICJtaW5v
ciIgPT4gJHNwbGl0VmVyc2lvblsxXSwKKyAgICAgICAgInN1Ym1pbm9yIiA9PiAoZGVmaW5lZCgk
c3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNpb25bMl0gOiAwKSwKICAgICB9OwogfQogCkBA
IC0xNTc5LDcgKzE1NzksNyBAQCBzdWIgZGV0ZXJtaW5lT1NYVmVyc2lvbigpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBteSAkdmVyc2lvblN0cmluZyA9IGBzd192ZXJzIC1wcm9kdWN0
VmVyc2lvbmA7CisgICAgY2hvbXAobXkgJHZlcnNpb25TdHJpbmcgPSBgc3dfdmVycyAtcHJvZHVj
dFZlcnNpb25gKTsKICAgICAkb3NYVmVyc2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lv
blN0cmluZyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383456</attachid>
            <date>2019-11-13 07:59:40 -0800</date>
            <delta_ts>2019-11-13 11:01:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204091-20191113075936.patch</filename>
            <type>text/plain</type>
            <size>13653</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjM2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE5LTExLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlcG9ydCBKU0MgdGVzdHMgdG8gdGhl
IHJlc3VsdHMgZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk3Nzg5MDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBsb2FkIHJlc3Vs
dHMgdG8gdGhlIHNwZWNpZmllZCByZXN1bHRzIGRhdGFiYXNlLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgIChydW5UZXN0KTogUGFyc2UgYmlu
YXJ5IG91dHB1dCB0byBtYXJrIGluZGl2aWR1YWwgdGVzdHMgYXMgcGFzc2luZworICAgICAgICBv
ciBmYWlsaW5nLgorICAgICAgICAodXBsb2FkQ29uZmlndXJhdGlvbik6IFJldHVybiBhIGhhc2gg
bWFwIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbgorICAgICAgICBGb3IgdGhpcyBzcGVj
aWZpYyB0ZXN0IHJ1bi4KKyAgICAgICAgKHVwbG9hZFJlc3VsdHMpOiBJZiBhIHJlcG9ydCBVUkwg
aXMgZGVmaW5lZCwgdXBsb2FkIHRlc3QgcmVzdWx0cyB0byB0aGF0IFVSTC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChzcGxpdFZlcnNpb25TdHJpbmcpOiBzcGxp
dFZlcnNpb25TdHJpbmcgaXMgc3VwcG9zZWQgdG8gYmUgYSBnZW5lcmFsbHkgdXNlZAorICAgICAg
ICBmdW5jdGlvbiwgc28gc2hvdWxkIG5vdCBzZXQgYSBnbG9iYWwgdmFyaWFibGUuCisgICAgICAg
IChkZXRlcm1pbmVPU1hWZXJzaW9uKTogUmVtb3ZlIG5ld2xpbmUgZnJvbSB2ZXJzaW9uIG51bWJl
ci4KKwogMjAxOS0xMS0xMiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEFkZCAndGVzdDI2Mi10ZXN0JyBzdGVwIHRvIEdUSyBhbmQgV1BFIGJ1
aWxkIGJvdHMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCShyZXZp
c2lvbiAyNTIzNjgpCisrKyBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwko
d29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsMTIgQEAgbXkgJHJ1YnlSdW5uZXI7CiBteSAkdGVz
dFdyaXRlcjsKIG15ICRtZW1vcnlMaW1pdGVkOwogCitteSAkcmVwb3J0OworbXkgJGJ1aWxkYm90
TWFzdGVyOworbXkgJGJ1aWxkZXJOYW1lOworbXkgJGJ1aWxkTnVtYmVyOworbXkgJGJ1aWxkYm90
V29ya2VyOworCiBteSAkYnVpbGRKU0MgPSAxOwogbXkgJGNvcHlKU0MgPSAxOwogCkBAIC05MSw4
ICs5NywxMiBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRoID0gIi91c3IvbGliL2xpYmdtCiBteSAk
Y3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9zdCA9IDA7CiBteSAkbW9kZWwgPSAwOwor
bXkgJHZlcnNpb247CitteSAkdmVyc2lvbk5hbWU7CitteSAkc2RrOwogbXkgJGZhaWxGYXN0ID0g
MTsKIG15ICVqc29uRGF0YSA9ICgpOworbXkgJXJlcG9ydERhdGEgPSAoKTsKIG15IEB0ZXN0UmVz
dWx0cyA9ICgpOwogbXkgJGlzVGVzdEZhaWxlZCA9IDA7CiBteSAkcmVtb3RlQ29uZmlnRmlsZTsK
QEAgLTIzMSw2ICsyNDEsOSBAQCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9u
cyB0CiAgIC0tcmVtb3RlPSAgICAgICAgICAgICAgICAgICAgIFJ1biB0aGUgSlNDIHN0cmVzcyB0
ZXN0cyBvbiB0aGUgc3BlY2lmaWVkIHJlbW90ZSBob3N0LiBJbXBsaWVzIC0tdGFyYmFsbC4KICAg
LS1yZW1vdGUtY29uZmlnLWZpbGU9ICAgICAgICAgU2FtZSBhcyByZW1vdGUsIGJ1dCByZWFkIGNv
bmZpZyBmcm9tIEpTT04gZmlsZS4KICAgLS1tb2RlbD0gICAgICAgICAgICAgICAgICAgICAgU3Bl
Y2lmeSByZW1vdGUgaGFyZHdhcmUgbW9kZWwsIHRoaXMgaW5mbyB1c2VkIGZvciBkZXRlcm1pbmUg
d2hhdCBqc2MgdGVzdHMgc2hvdWxkIHJ1biBvbiByZW1vdGUKKyAgLS12ZXJzaW9uICAgICAgICAg
ICAgICAgICAgICAgU3BlY2lmeSB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRldmljZSBydW5u
aW5nIHRlc3RzLgorICAtLXZlcnNpb24tbmFtZSAgICAgICAgICAgICAgICBTcGVjaWZ5IHRoZSB2
ZXJzaW9uIG5hbWUgb2YgdGhlIGhhcmR3YXJlIHJ1bm5pbmcgdGVzdHMuCisgIC0tc2RrICAgICAg
ICAgICAgICAgICAgICAgICAgIFNwZWNpZmljIFNESyBvciBPUyB2ZXJzaW9uIG9mIHRoZSBmb3Jt
ICMjKiMjIwogICAtLWV4dHJhLXRlc3RzPSAgICAgICAgICAgICAgICBQYXRoIHRvIGEgZmlsZSBj
b250YWluaW5nIGV4dHJhIHRlc3RzCiAgIC0tY2hpbGQtcHJvY2Vzc2VzPSAgICAgICAgICAgIFNw
ZWNpZnkgdGhlIG51bWJlciBvZiBjaGlsZCBwcm9jZXNzZXMuCiAgIC0tc2hlbGwtcnVubmVyICAg
ICAgICAgICAgICAgIFVzZXMgdGhlIHNoZWxsLWJhc2VkIHRlc3QgcnVubmVyIGluc3RlYWQgb2Yg
dGhlIGRlZmF1bHQgbWFrZS1iYXNlZCBydW5uZXIuCkBAIC0yNTIsNiArMjY1LDEyIEBAIFVzYWdl
OiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHQKICAgLS1nbWFsbG9jOiAgICAgICAg
ICAgICAgICAgICAgUnVuIHRlc3RzIHdpdGggR3VhcmQgTWFsbG9jIGVuYWJsZWQgKGlmIG5vIHBh
dGggaXMgZ2l2ZW46ICRnbWFsbG9jRGVmYXVsdFBhdGggaXMgdXNlZCkKICAgLS12ZXJib3NlOiAg
ICAgICAgICAgICAgICAgICAgVmVyYm9zZSBvdXRwdXQgKHNwZWNpZnkgbW9yZSB0aGFuIG9uY2Ug
dG8gaW5jcmVhc2UgdmVyYm9zaXR5KS4KIAorICAtLXJlcG9ydDogICAgICAgICAgICAgICAgICAg
ICBSZXN1bHRzIGRhdGFiYXNlIHVybCB0byByZXBvcnQgcmVzdWx0cyB0by4KKyAgLS1idWlsZGJv
dC1tYXN0ZXI6ICAgICAgICAgICAgVGhlIHVybCBvZiB0aGUgYnVpbGRib3QgbWFzdGVyLgorICAt
LWJ1aWxkZXItbmFtZTogICAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgYnVpbGRib3QgYnVp
bGRlciB0ZXN0cyB3ZXJlIHJ1biBvbi4KKyAgLS1idWlsZC1udW1iZXI6ICAgICAgICAgICAgICAg
VGhlIGJ1aWxkYm90IGJ1aWxkIG51bWJlciB0ZXN0cyBhcmUgYXNzb2NpYXRlZCB3aXRoLgorICAt
LWJ1aWxkYm90LXdvcmtlcjogICAgICAgICAgICBUaGUgYnVpbGRib3Qgd29ya2VyIHRlc3RzIHdl
cmUgcnVuIG9uLgorCiBFbnZpcm9ubWVudCBWYXJpYWJsZXM6CiAgIC0gc2V0IFJVTl9KQVZBU0NS
SVBUQ09SRV9URVNUU19URVNUTUFTTSB0byAidHJ1ZSIgb3IgImZhbHNlIiAobm8gcXVvdGVzKSB0
byBkZXRlcm1pbmUgaWYgd2UgcnVuIHRlc3RtYXNtIGJ5IGRlZmF1bHQuCiAgIC0gc2V0IFJVTl9K
QVZBU0NSSVBUQ09SRV9URVNUU19URVNUQUlSIHRvICJ0cnVlIiBvciAiZmFsc2UiIChubyBxdW90
ZXMpIHRvIGRldGVybWluZSBpZiB3ZSBydW4gdGVzdGFpciBieSBkZWZhdWx0LgpAQCAtMjg5LDYg
KzMwOCw5IEBAIEdldE9wdGlvbnMoCiAgICAgJ3RhcmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGws
CiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhvc3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9k
ZWwsCisgICAgJ3ZlcnNpb249cycgPT4gXCR2ZXJzaW9uLAorICAgICd2ZXJzaW9uLW5hbWU9cycg
PT4gXCR2ZXJzaW9uTmFtZSwKKyAgICAnc2RrPXMnID0+IFwkc2RrLAogICAgICdyZW1vdGUtY29u
ZmlnLWZpbGU9cycgPT4gXCRyZW1vdGVDb25maWdGaWxlLAogICAgICdjaGlsZC1wcm9jZXNzZXM9
cycgPT4gXCRjaGlsZFByb2Nlc3NlcywKICAgICAnc2hlbGwtcnVubmVyJyA9PiBcJHNoZWxsUnVu
bmVyLApAQCAtMzAwLDcgKzMyMiwxMiBAQCBHZXRPcHRpb25zKAogICAgICdoZWxwJyA9PiBcJHNo
b3dIZWxwLAogICAgICdlbnYtdmFycz1zJyA9PiBcJGVudlZhcnMsCiAgICAgJ2dtYWxsb2M6cycg
PT4gXCRnbWFsbG9jUGF0aCwKLSAgICAndmVyYm9zZSsnID0+IFwkdmVyYm9zZQorICAgICd2ZXJi
b3NlKycgPT4gXCR2ZXJib3NlLAorICAgICdyZXBvcnQ9cycgPT4gXCRyZXBvcnQsCisgICAgJ2J1
aWxkYm90LW1hc3Rlcj1zJyA9PiBcJGJ1aWxkYm90TWFzdGVyLAorICAgICdidWlsZGVyLW5hbWU9
cycgPT4gXCRidWlsZGVyTmFtZSwKKyAgICAnYnVpbGQtbnVtYmVyPXMnID0+IFwkYnVpbGROdW1i
ZXIsCisgICAgJ2J1aWxkYm90LXdvcmtlcj1zJyA9PiBcJGJ1aWxkYm90V29ya2VyLAogKTsKIAog
CkBAIC0zMTUsNiArMzQyLDEwIEBAIGlmICgkcnVuVGVzdE1hc20gPT0gRE9fUlVOCiAgICAgJHNw
ZWNpZmljVGVzdHNTcGVjaWZpZWQgPSAxOwogfQogCitpZiAoJHZlcnNpb24pIHsKKyAgICAkdmVy
c2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7Cit9CisKIHN1YiBlbmFibGVUZXN0
T3JOb3QgewogICAgIG15ICgkc3RhdGUpID0gQF87CiAgICAgaWYgKCRzdGF0ZSA9PSBSVU5fSUZf
Tk9fVEVTVFNfU1BFQ0lGSUVEIHx8ICRzdGF0ZSA9PSBFTlZfVkFSX1NBWVNfRE9fUlVOKSB7CkBA
IC0zNDIsNiArMzczLDcgQEAgaWYgKCRzaG93SGVscCkgewogfQogCiBzZXRDb25maWd1cmF0aW9u
UHJvZHVjdERpcihDd2Q6OmFic19wYXRoKCRyb290KSkgaWYgKGRlZmluZWQoJHJvb3QpKTsKK2Nv
bmZpZ3VyYXRpb25Gb3JVcGxvYWQoKSBpZiAoZGVmaW5lZCgkcmVwb3J0KSk7CiAKIGlmIChkZWZp
bmVkKCRqc29uRmlsZU5hbWUpKSB7CiAgICAgJGpzb25GaWxlTmFtZSA9IEZpbGU6OlNwZWMtPnJl
bDJhYnMoJGpzb25GaWxlTmFtZSk7CkBAIC0zOTcsOSArNDI5LDY0IEBAIHN1YiBydW5UZXN0IHsK
ICAgICAgICAgfQogICAgIH0KIAotICAgICMgVXNlIGFuICJpbmRpcmVjdCBvYmplY3QiIHNvIHRo
YXQgc3lzdGVtKCkgd29uJ3QgZ2V0IGNvbmZ1c2VkIGlmIHRoZSBwYXRoCi0gICAgIyBjb250YWlu
cyBzcGFjZXMgKHNlZSBwZXJsZG9jIC1mIGV4ZWMpLgotICAgIG15ICR0ZXN0UmVzdWx0ID0gc3lz
dGVtIHsgJGNvbW1hbmRbMF0gfSBAY29tbWFuZDsKKyAgICBteSAkdGVzdFJlc3VsdCA9IDA7Cisg
ICAgbXkgJGZhaWx1cmVGbGFnID0gMDsKKyAgICBvcGVuKFRFU1QsICItfCIsICJAY29tbWFuZCAy
PiYxIikgb3IgJHRlc3RSZXN1bHQgPSAxOworICAgIHdoaWxlICggbXkgJGxpbmUgPSA8VEVTVD4g
KSB7CisgICAgICAgIG15ICRzdWJUZXN0TmFtZTsKKyAgICAgICAgaWYgKCR2ZXJib3NlID4gMCkg
eworICAgICAgICAgICAgcHJpbnQgIiAgICAkbGluZSI7CisgICAgICAgIH0KKworICAgICAgICAj
IGUuZy46ICdPMjogdGVzdFJvdFJXaXRoSW1tU2hpZnQodWludDY0LW1heCwgdWludDMyLW1pbik6
IE9LIScnCisgICAgICAgIGlmICgkbGluZSA9fiAvKE9cZCk6IChcUyspKFwoLipcKSk6IChbQS1a
YS16XSspIVxuLykgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMS4k
MiQzIjsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkNCBuZSAiT0siKTsKKyAg
ICAgICAgfQorICAgICAgICAjIHN1Yi10ZXN0IGZyb20gdGhlIGMtYXBpLCBvZiB0aGUgZm9ybToK
KyAgICAgICAgIyBlLmcuOiAndGVzdGFwaVsxNTQyMjoxNjkwNDc5MF0gcGFyYWxsZWxQcm9taXNl
UmVzb2x2ZVRlc3QoKTogZG9uZS4nJworICAgICAgICBlbHNpZiAoJGxpbmUgPX4gL1xbXGQrOlxk
K1xdIChcUyspKCk6IGRvbmVcLlxuLykgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0
ZXN0TmFtZS5vYmplY3RpdmUtYy4kMSI7CisgICAgICAgIH0KKyAgICAgICAgIyBFbmQgb2YgQy1B
UEkgdGVzdHMgKG1lYW5pbmcgd2UganVzdCBmaW5pc2hlZCB0aGUgdW5ncm91cGVkIG1haW4gdGVz
dHMpCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvU3RhcnRpbmcgQy1BUEkgdGVzdHMgaW4gQysr
LykgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS5vYmplY3RpdmUtYy5t
YWluIjsKKyAgICAgICAgfQorICAgICAgICAjIFRlc3QgY2FzZXMgaW5zaWRlIEFQSSB0ZXN0cwor
ICAgICAgICAjIGUuZy46ICd0ZXN0YXBpWzE1NDIyOjE2OTA0NzkwXSBURVNUOiAiMiArIDIiOiBQ
QVNTRUQnCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvXFtcZCs6XGQrXF0gVEVTVDogIi4qIjog
KFtBLVpdKylcbi8pIHsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkMSBuZSAi
UEFTU0VEIiAmJiAkMSBuZSAiUEFTUyIpOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQor
ICAgICAgICAjIGUuZy46ICd0ZXN0Qml0WG9yQW5kQW5kQXJncygwLCAwLHVpbnQzMi1tYXgpOiBP
SyEnJworICAgICAgICBlbHNpZiAoJGxpbmUgPX4gLyhcUyspKFwoLipcKSk6IChbQS1aYS16XSsp
IVxuLykgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMSQyIjsKKyAg
ICAgICAgICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkMyBuZSAiT0siKTsKKyAgICAgICAgfQor
ICAgICAgICAjIEdlbmVyYWwgdGVzdGNhc2Ugc3RhdGVtZW50LCBmaWx0ZXJlZCB0byBleGNsdWRl
IHNvbWUganVuayBsb2dnaW5nCisgICAgICAgICMgZS5nLjogJ1BBU1M6IERGRyBzY3JpcHQgdGlt
ZWQgb3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLicnCisgICAg
ICAgIGVsc2lmICgkbGluZSA9fiAvKFtBLVpdKyk6ICguKilcLipcbi8gJiYgISgkbGluZSA9fiAv
W0EtWl0rOiBcZCtcbi8gfHwgJGxpbmUgPX4gL1xbXGQrOlxkK1xdIFtBLVpdKzovKSkgeworICAg
ICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMiI7CisgICAgICAgICAgICAkZmFp
bHVyZUZsYWcgKz0gMSBpZiAoJDEgbmUgIlBBU1MiKTsKKyAgICAgICAgfQorICAgICAgICAjIGUu
Zy46ICd0ZXN0IGRlc2NyaXB0aW9uOiBQQVNTRUQnCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAv
Lio6IChbQS1aXSspXG4vKSB7CisgICAgICAgICAgICAkZmFpbHVyZUZsYWcgKz0gMSBpZiAoJDEg
bmUgIlBBU1NFRCIgJiYgJDEgbmUgIlBBU1MiKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFk
ZWZpbmVkICRyZXBvcnREYXRheyRzdWJUZXN0TmFtZX0pIHsKKyAgICAgICAgICAgICRyZXBvcnRE
YXRheyRzdWJUZXN0TmFtZX0gPSAkZmFpbHVyZUZsYWcgPyB7YWN0dWFsID0+ICJGQUlMIn0gOiB7
YWN0dWFsID0+ICJQQVNTIn0KKyAgICAgICAgfQorICAgICAgICAkZmFpbHVyZUZsYWcgPSAwOwor
ICAgIH0KKyAgICBjbG9zZShURVNUKTsKKworICAgIGlmICgkPykgeworICAgICAgICBteSAkdGVz
dFJlc3VsdCA9ICQ/OworICAgIH0KICAgICBteSAkZXhpdFN0YXR1cyA9IGV4aXRTdGF0dXMoJHRl
c3RSZXN1bHQpOwogICAgIHByaW50ICIkdGVzdE5hbWUgY29tcGxldGVkIHdpdGggcmM9JHRlc3RS
ZXN1bHQgKCRleGl0U3RhdHVzKVxuXG4iOwogCkBAIC00MTUsNyArNTAyLDcgQEAgc3ViIHJ1blRl
c3QgewogICAgIGlmICgkdGVzdFJlc3VsdCAmJiAkZmFpbEZhc3QpIHsKICAgICAgICAgcmVwb3J0
VGVzdEZhaWx1cmVzKCk7CiAgICAgICAgIHdyaXRlSnNvbkRhdGFJZkFwcGxpY2FibGUoKTsKLSAg
ICAgICAgZXhpdCBleGl0U3RhdHVzKCR0ZXN0UmVzdWx0KTsKKyAgICAgICAgZXhpdCAkZXhpdFN0
YXR1czsKICAgICB9CiB9CiAKQEAgLTQzNiw2ICs1MjMsOSBAQCBzdWIgcmVwb3J0VGVzdEZhaWx1
cmVzIHsKICAgcHJpbnQgIlxuIjsKIH0KIAorbXkgJHN0YXJ0VGltZSA9IHRpbWUoKTsKK215ICRl
bmRUaW1lID0gJHN0YXJ0VGltZTsKKwogaWYgKCRydW5UZXN0TWFzbSkgeyBydW5UZXN0KCJ0ZXN0
bWFzbSIsICJhbGxNYXNtVGVzdHNQYXNzZWQiKSB9CiBpZiAoJHJ1blRlc3RBaXIpIHsgcnVuVGVz
dCgidGVzdGFpciIsICJhbGxBaXJUZXN0c1Bhc3NlZCIpIH0KIGlmICgkcnVuVGVzdEIzKSB7IHJ1
blRlc3QoInRlc3RiMyIsICJhbGxCM1Rlc3RzUGFzc2VkIikgfQpAQCAtNDQ2LDkgKzUzNiwxMyBA
QCBpZiAoJHJ1blRlc3RBUEkpIHsgcnVuVGVzdCgidGVzdGFwaSIsICJhCiAjIEZpbmQgSmF2YVNj
cmlwdENvcmUgZGlyZWN0b3J5CiBjaGRpcldlYktpdCgpOwogCisjIEZJWE1FOiByZXBvcnQgc3Ry
ZXNzIHRlc3QgZmFpbHVyZXNodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA0MDk2CiBydW5KU0NTdHJlc3NUZXN0cygpOwogcmVwb3J0VGVzdEZhaWx1cmVzKCk7CiAKKyRl
bmRUaW1lID0gdGltZSgpOwordXBsb2FkUmVzdWx0cygpOworCiBpZiAoJGlzVGVzdEZhaWxlZCkg
ewogICBleGl0KDEpOwogfQpAQCAtNjY2LDMgKzc2MCwxMzQgQEAgc3ViIHdyaXRlSnNvbkRhdGFJ
ZkFwcGxpY2FibGUKICAgICAgICAgY2xvc2UoJGZpbGVIYW5kbGVyKTsKICAgICB9CiB9CisKK3N1
YiBjb25maWd1cmF0aW9uRm9yVXBsb2FkKCkKK3sKKyAgICBteSAkcGxhdGZvcm07CisgICAgbXkg
JHNkazsKKyAgICBteSAkc2ltdWxhdG9yID0gMDsKKworICAgIGlmICh3aWxsVXNlSU9TU2ltdWxh
dG9yU0RLKCkpIHsKKyAgICAgICAgJHNpbXVsYXRvciA9IDE7CisgICAgfQorCisgICAgaWYgKGlu
ZGV4KCRtb2RlbCwgJ2lQaG9uZScpICE9IC0xIHx8IGluZGV4KCRtb2RlbCwgJ2lQYWQnKSAhPSAt
MSkgeworICAgICAgICAkcGxhdGZvcm0gPSAnaW9zJzsKKyAgICAgICAgaWYgKCEkdmVyc2lvbikg
eworICAgICAgICAgICAgJHZlcnNpb24gPSBpb3NWZXJzaW9uKCk7CisgICAgICAgIH0KKyAgICB9
IGVsc2lmIChpbmRleCgkbW9kZWwsICd3YXRjaCcpICE9IC0xKSB7CisgICAgICAgICRwbGF0Zm9y
bSA9ICd3YXRjaG9zJzsKKyAgICAgICAgZGllICJObyB3YXRjaE9TIHZlcnNpb24gc3BlY2lmaWVk
IiBpZiAhJHZlcnNpb247CisgICAgfSBlbHNpZiAoaXNHdGsoKSkgeworICAgICAgICAkcGxhdGZv
cm0gPSAnR1RLJzsKKyAgICAgICAgaWYgKCEkdmVyc2lvbikgeworICAgICAgICAgICAgY2hvbXAo
JHZlcnNpb24gPSBgL3Vzci9iaW4vdW5hbWUgLXJgKTsKKyAgICAgICAgICAgICR2ZXJzaW9uID0g
c3BsaXRWZXJzaW9uU3RyaW5nKCR2ZXJzaW9uKTsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKGlz
V1BFKCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gJ1dQRSc7CisgICAgICAgIGlmICghJHZlcnNp
b24pIHsKKyAgICAgICAgICAgIGNob21wKCR2ZXJzaW9uID0gYC91c3IvYmluL3VuYW1lIC1yYCk7
CisgICAgICAgICAgICAkdmVyc2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7Cisg
ICAgICAgIH0KKyAgICB9IGVsc2lmIChpc0FueVdpbmRvd3MoKSkgeworICAgICAgICAkcGxhdGZv
cm0gPSAnd2luJzsKKyAgICAgICAgaWYgKCEkdmVyc2lvbikgeworICAgICAgICAgICAgJHZlcnNp
b24gPSB3aW5WZXJzaW9uKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2lmIChpc0FwcGxlTWFjV2Vi
S2l0KCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gJ21hYyc7CisgICAgICAgIGNob21wKCRtb2Rl
bCA9IGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3Lm1vZGVsYCk7CisgICAgICAgIGlmICghJHZlcnNp
b24pIHsKKyAgICAgICAgICAgICR2ZXJzaW9uID0gb3NYVmVyc2lvbigpOworICAgICAgICB9Cisg
ICAgICAgIGlmICghJHNkaykgeworICAgICAgICAgICAgY2hvbXAoJHNkayA9IGAvdXNyL2Jpbi9z
d192ZXJzIC1idWlsZFZlcnNpb25gKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghJHZlcnNp
b25OYW1lKSB7CisgICAgICAgICAgICBpZiAoJHZlcnNpb24tPnttaW5vcn0gZXEgMTUpIHsKKyAg
ICAgICAgICAgICAgICAkdmVyc2lvbk5hbWUgPSAiQ2F0YWxpbmEiOworICAgICAgICAgICAgfSBl
bHNpZiAoJHZlcnNpb24tPnttaW5vcn0gZXEgMTQpIHsKKyAgICAgICAgICAgICAgICAkdmVyc2lv
bk5hbWUgPSAiTW9qYXZlIjsKKyAgICAgICAgICAgIH0gZWxzaWYgKCR2ZXJzaW9uLT57bWlub3J9
IGVxIDE0KSB7CisgICAgICAgICAgICAgICAgJHZlcnNpb25OYW1lID0gIkhpZ2ggU2llcnJhIjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRpZSAiQ2Fu
bm90IGRldGVybWluZSBwbGF0Zm9ybVxuIjsKKyAgICB9CisKKyAgICBteSAkcmVzdWx0ID0gewor
ICAgICAgICBwbGF0Zm9ybSA9PiAkcGxhdGZvcm0sCisgICAgICAgIGFyY2hpdGVjdHVyZSA9PiBh
cmNoaXRlY3R1cmUoKSwKKyAgICAgICAgaXNfc2ltdWxhdG9yID0+ICRzaW11bGF0b3IsCisgICAg
ICAgIHN0eWxlID0+IGxjKGNvbmZpZ3VyYXRpb24oKSksCisgICAgICAgIHZlcnNpb24gPT4gIiR2
ZXJzaW9uLT57bWFqb3J9LiR2ZXJzaW9uLT57bWlub3J9LiR2ZXJzaW9uLT57c3VibWlub3J9IiwK
KyAgICB9OworICAgIGlmICgkbW9kZWwpIHsKKyAgICAgICAgJHJlc3VsdC0+e21vZGVsfSA9ICRt
b2RlbDsKKyAgICB9CisgICAgaWYgKCR2ZXJzaW9uTmFtZSkgeworICAgICAgICAkcmVzdWx0LT57
dmVyc2lvbl9uYW1lfSA9ICR2ZXJzaW9uTmFtZTsKKyAgICB9CisgICAgaWYgKCRzZGspIHsKKyAg
ICAgICAgJHJlc3VsdC0+e3Nka30gPSAkc2RrOworICAgIH0KKyAgICByZXR1cm4gJHJlc3VsdDsK
K30KKworc3ViIHVwbG9hZFJlc3VsdHMKK3sKKyAgICBpZiAobm90IGRlZmluZWQgJHJlcG9ydCkg
eworICAgICAgICBwcmludCAiTm8gcmVwb3J0IFVSTCBzcGVjaWZpZWQsIHNraXBwaW5nIHJlc3Vs
dHMgdXBsb2FkXG4iOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBteSAldXBsb2Fk
ID0gKAorICAgICAgICB2ZXJzaW9uID0+IDAsCisgICAgICAgIHN1aXRlID0+ICdqYXZhc2NyaXB0
Y29yZS10ZXN0cycsCisgICAgICAgICMgRklYTUU6IEludGVncmF0ZSBicmFuY2hlcywgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDA5NAorICAgICAgICAjIEZJWE1F
OiBJbnRlZ3JhdGUgdGhlIFNhZmFyaSByZXBvc2l0b3J5LCBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDk1CisgICAgICAgIGNvbW1pdHMgPT4gW3sKKyAgICAgICAg
ICAgIHJlcG9zaXRvcnlfaWQgPT4gJ3dlYmtpdCcsCisgICAgICAgICAgICBpZCA9PiBkZXRlcm1p
bmVDdXJyZW50U1ZOUmV2aXNpb24oKSwKKyAgICAgICAgfV0sCisgICAgICAgIGNvbmZpZ3VyYXRp
b24gPT4gY29uZmlndXJhdGlvbkZvclVwbG9hZCgpLAorICAgICAgICB0ZXN0X3Jlc3VsdHMgPT4g
eworICAgICAgICAgICAgcnVuX3N0YXRzID0+IHsKKyAgICAgICAgICAgICAgICBzdGFydF90aW1l
ID0+ICRzdGFydFRpbWUsCisgICAgICAgICAgICAgICAgZW5kX3RpbWUgPT4gJGVuZFRpbWUsCisg
ICAgICAgICAgICAgICAgdGVzdHNfc2tpcHBlZCA9PiAwLAorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHJlc3VsdHMgPT4gXCVyZXBvcnREYXRhLAorICAgICAgICB9LAorICAgICAgICB0aW1l
c3RhbXAgPT4gJHN0YXJ0VGltZSwKKyAgICApOworICAgIGlmIChkZWZpbmVkICRidWlsZGJvdE1h
c3RlciBhbmQgZGVmaW5lZCAkYnVpbGRlck5hbWUgYW5kIGRlZmluZWQgJGJ1aWxkTnVtYmVyIGFu
ZCBkZWZpbmVkICRidWlsZGJvdFdvcmtlcikgeworICAgICAgICAkdXBsb2Fke3Rlc3RfcmVzdWx0
c317ZGV0YWlsc30gPSB7CisgICAgICAgICAgICBidWlsZGJvdF9tYXN0ZXIgPT4gJGJ1aWxkYm90
TWFzdGVyLAorICAgICAgICAgICAgYnVpbGRlcl9uYW1lID0+ICRidWlsZGVyTmFtZSwKKyAgICAg
ICAgICAgIGJ1aWxkX251bWJlciA9PiAkYnVpbGROdW1iZXIsCisgICAgICAgICAgICBidWlsZGJv
dF93b3JrZXIgPT4gJGJ1aWxkYm90V29ya2VyLAorICAgICAgICB9OworICAgIH0KKyAgICBpZiAo
ZGVmaW5lZCAkRU5WeydSRVNVTFRTX1NFUlZFUl9BUElfS0VZJ30pIHsKKyAgICAgICAgJHVwbG9h
ZHsnYXBpX2tleSd9ID0gJEVOVnsnUkVTVUxUU19TRVJWRVJfQVBJX0tFWSd9OworICAgIH0KKwor
ICAgIHByaW50ICJVcGxvYWRpbmcgcmVzdWx0cyB0byAkcmVwb3J0XG4iOworCisgICAgb3BlbihI
QU5ETEUsICJ8LSIsICJjdXJsIC1YIFBPU1QgJHJlcG9ydC9hcGkvdXBsb2FkIC1IICdDb250ZW50
LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIC1mIC1kICdcQC0nIikgb3IgZGllICJGYWlsZWQgdG8g
b3BlbiBjdXJsIjsKKyAgICBteSAkZW5jb2RlZFVwbG9hZCA9IGVuY29kZV9qc29uKFwldXBsb2Fk
KTsKKyAgICBwcmludCBIQU5ETEUgIiRlbmNvZGVkVXBsb2FkXG5cMCI7CisgICAgbXkgJHN1Y2Nl
c3MgPSBjbG9zZSBIQU5ETEU7CisKKyAgICBpZiAoJHN1Y2Nlc3MpIHsKKyAgICAgICAgcHJpbnQg
IlVwbG9hZCBzdWNjZXNzZnVsIVxuIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHBy
aW50ICJVcGxvYWQgdG8gJHJlcG9ydCBmYWlsZWRcbiI7CisgICAgcmV0dXJuIDE7Cit9CkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRkaXJzLnBtCShyZXZpc2lvbiAyNTIzNjgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE1NjMsMTAgKzE1NjMsMTAgQEAgc3ViIHNwbGl0
VmVyc2lvblN0cmluZwogICAgIG15ICR2ZXJzaW9uU3RyaW5nID0gc2hpZnQ7CiAgICAgbXkgQHNw
bGl0VmVyc2lvbiA9IHNwbGl0KC9cLi8sICR2ZXJzaW9uU3RyaW5nKTsKICAgICBAc3BsaXRWZXJz
aW9uID49IDIgb3IgZGllICJJbnZhbGlkIHZlcnNpb24gJHZlcnNpb25TdHJpbmciOwotICAgICRv
c1hWZXJzaW9uID0gewotICAgICAgICAgICAgIm1ham9yIiA9PiAkc3BsaXRWZXJzaW9uWzBdLAot
ICAgICAgICAgICAgIm1pbm9yIiA9PiAkc3BsaXRWZXJzaW9uWzFdLAotICAgICAgICAgICAgInN1
Ym1pbm9yIiA9PiAoZGVmaW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNpb25bMl0g
OiAwKSwKKyAgICByZXR1cm4geworICAgICAgICAibWFqb3IiID0+ICRzcGxpdFZlcnNpb25bMF0s
CisgICAgICAgICJtaW5vciIgPT4gJHNwbGl0VmVyc2lvblsxXSwKKyAgICAgICAgInN1Ym1pbm9y
IiA9PiAoZGVmaW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNpb25bMl0gOiAwKSwK
ICAgICB9OwogfQogCkBAIC0xNTc5LDcgKzE1NzksNyBAQCBzdWIgZGV0ZXJtaW5lT1NYVmVyc2lv
bigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBteSAkdmVyc2lvblN0cmluZyA9IGBz
d192ZXJzIC1wcm9kdWN0VmVyc2lvbmA7CisgICAgY2hvbXAobXkgJHZlcnNpb25TdHJpbmcgPSBg
c3dfdmVycyAtcHJvZHVjdFZlcnNpb25gKTsKICAgICAkb3NYVmVyc2lvbiA9IHNwbGl0VmVyc2lv
blN0cmluZygkdmVyc2lvblN0cmluZyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383471</attachid>
            <date>2019-11-13 11:01:18 -0800</date>
            <delta_ts>2019-11-14 07:18:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204091-20191113110118.patch</filename>
            <type>text/plain</type>
            <size>14442</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjM2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE5LTExLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlcG9ydCBKU0MgdGVzdHMgdG8gdGhl
IHJlc3VsdHMgZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk3Nzg5MDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBsb2FkIHJlc3Vs
dHMgdG8gdGhlIHNwZWNpZmllZCByZXN1bHRzIGRhdGFiYXNlLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgIChydW5UZXN0KTogUGFyc2UgYmlu
YXJ5IG91dHB1dCB0byBtYXJrIGluZGl2aWR1YWwgdGVzdHMgYXMgcGFzc2luZworICAgICAgICBv
ciBmYWlsaW5nLgorICAgICAgICAodXBsb2FkQ29uZmlndXJhdGlvbik6IFJldHVybiBhIGhhc2gg
bWFwIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbgorICAgICAgICBGb3IgdGhpcyBzcGVj
aWZpYyB0ZXN0IHJ1bi4KKyAgICAgICAgKHVwbG9hZFJlc3VsdHMpOiBJZiBhIHJlcG9ydCBVUkwg
aXMgZGVmaW5lZCwgdXBsb2FkIHRlc3QgcmVzdWx0cyB0byB0aGF0IFVSTC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChzcGxpdFZlcnNpb25TdHJpbmcpOiBzcGxp
dFZlcnNpb25TdHJpbmcgaXMgc3VwcG9zZWQgdG8gYmUgYSBnZW5lcmFsbHkgdXNlZAorICAgICAg
ICBmdW5jdGlvbiwgc28gc2hvdWxkIG5vdCBzZXQgYSBnbG9iYWwgdmFyaWFibGUuCisgICAgICAg
IChkZXRlcm1pbmVPU1hWZXJzaW9uKTogUmVtb3ZlIG5ld2xpbmUgZnJvbSB2ZXJzaW9uIG51bWJl
ci4KKwogMjAxOS0xMS0xMiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEFkZCAndGVzdDI2Mi10ZXN0JyBzdGVwIHRvIEdUSyBhbmQgV1BFIGJ1
aWxkIGJvdHMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCShyZXZp
c2lvbiAyNTIzNjgpCisrKyBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwko
d29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsMTIgQEAgbXkgJHJ1YnlSdW5uZXI7CiBteSAkdGVz
dFdyaXRlcjsKIG15ICRtZW1vcnlMaW1pdGVkOwogCitteSAkcmVwb3J0OworbXkgJGJ1aWxkYm90
TWFzdGVyOworbXkgJGJ1aWxkZXJOYW1lOworbXkgJGJ1aWxkTnVtYmVyOworbXkgJGJ1aWxkYm90
V29ya2VyOworCiBteSAkYnVpbGRKU0MgPSAxOwogbXkgJGNvcHlKU0MgPSAxOwogCkBAIC05MSw4
ICs5NywxMiBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRoID0gIi91c3IvbGliL2xpYmdtCiBteSAk
Y3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9zdCA9IDA7CiBteSAkbW9kZWwgPSAwOwor
bXkgJHZlcnNpb247CitteSAkdmVyc2lvbk5hbWU7CitteSAkc2RrOwogbXkgJGZhaWxGYXN0ID0g
MTsKIG15ICVqc29uRGF0YSA9ICgpOworbXkgJXJlcG9ydERhdGEgPSAoKTsKIG15IEB0ZXN0UmVz
dWx0cyA9ICgpOwogbXkgJGlzVGVzdEZhaWxlZCA9IDA7CiBteSAkcmVtb3RlQ29uZmlnRmlsZTsK
QEAgLTIzMSw2ICsyNDEsOSBAQCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9u
cyB0CiAgIC0tcmVtb3RlPSAgICAgICAgICAgICAgICAgICAgIFJ1biB0aGUgSlNDIHN0cmVzcyB0
ZXN0cyBvbiB0aGUgc3BlY2lmaWVkIHJlbW90ZSBob3N0LiBJbXBsaWVzIC0tdGFyYmFsbC4KICAg
LS1yZW1vdGUtY29uZmlnLWZpbGU9ICAgICAgICAgU2FtZSBhcyByZW1vdGUsIGJ1dCByZWFkIGNv
bmZpZyBmcm9tIEpTT04gZmlsZS4KICAgLS1tb2RlbD0gICAgICAgICAgICAgICAgICAgICAgU3Bl
Y2lmeSByZW1vdGUgaGFyZHdhcmUgbW9kZWwsIHRoaXMgaW5mbyB1c2VkIGZvciBkZXRlcm1pbmUg
d2hhdCBqc2MgdGVzdHMgc2hvdWxkIHJ1biBvbiByZW1vdGUKKyAgLS12ZXJzaW9uICAgICAgICAg
ICAgICAgICAgICAgU3BlY2lmeSB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRldmljZSBydW5u
aW5nIHRlc3RzLgorICAtLXZlcnNpb24tbmFtZSAgICAgICAgICAgICAgICBTcGVjaWZ5IHRoZSB2
ZXJzaW9uIG5hbWUgb2YgdGhlIGhhcmR3YXJlIHJ1bm5pbmcgdGVzdHMuCisgIC0tc2RrICAgICAg
ICAgICAgICAgICAgICAgICAgIFNwZWNpZmljIFNESyBvciBPUyB2ZXJzaW9uIG9mIHRoZSBmb3Jt
ICMjKiMjIwogICAtLWV4dHJhLXRlc3RzPSAgICAgICAgICAgICAgICBQYXRoIHRvIGEgZmlsZSBj
b250YWluaW5nIGV4dHJhIHRlc3RzCiAgIC0tY2hpbGQtcHJvY2Vzc2VzPSAgICAgICAgICAgIFNw
ZWNpZnkgdGhlIG51bWJlciBvZiBjaGlsZCBwcm9jZXNzZXMuCiAgIC0tc2hlbGwtcnVubmVyICAg
ICAgICAgICAgICAgIFVzZXMgdGhlIHNoZWxsLWJhc2VkIHRlc3QgcnVubmVyIGluc3RlYWQgb2Yg
dGhlIGRlZmF1bHQgbWFrZS1iYXNlZCBydW5uZXIuCkBAIC0yNTIsNiArMjY1LDEyIEBAIFVzYWdl
OiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHQKICAgLS1nbWFsbG9jOiAgICAgICAg
ICAgICAgICAgICAgUnVuIHRlc3RzIHdpdGggR3VhcmQgTWFsbG9jIGVuYWJsZWQgKGlmIG5vIHBh
dGggaXMgZ2l2ZW46ICRnbWFsbG9jRGVmYXVsdFBhdGggaXMgdXNlZCkKICAgLS12ZXJib3NlOiAg
ICAgICAgICAgICAgICAgICAgVmVyYm9zZSBvdXRwdXQgKHNwZWNpZnkgbW9yZSB0aGFuIG9uY2Ug
dG8gaW5jcmVhc2UgdmVyYm9zaXR5KS4KIAorICAtLXJlcG9ydDogICAgICAgICAgICAgICAgICAg
ICBSZXN1bHRzIGRhdGFiYXNlIHVybCB0byByZXBvcnQgcmVzdWx0cyB0by4KKyAgLS1idWlsZGJv
dC1tYXN0ZXI6ICAgICAgICAgICAgVGhlIHVybCBvZiB0aGUgYnVpbGRib3QgbWFzdGVyLgorICAt
LWJ1aWxkZXItbmFtZTogICAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgYnVpbGRib3QgYnVp
bGRlciB0ZXN0cyB3ZXJlIHJ1biBvbi4KKyAgLS1idWlsZC1udW1iZXI6ICAgICAgICAgICAgICAg
VGhlIGJ1aWxkYm90IGJ1aWxkIG51bWJlciB0ZXN0cyBhcmUgYXNzb2NpYXRlZCB3aXRoLgorICAt
LWJ1aWxkYm90LXdvcmtlcjogICAgICAgICAgICBUaGUgYnVpbGRib3Qgd29ya2VyIHRlc3RzIHdl
cmUgcnVuIG9uLgorCiBFbnZpcm9ubWVudCBWYXJpYWJsZXM6CiAgIC0gc2V0IFJVTl9KQVZBU0NS
SVBUQ09SRV9URVNUU19URVNUTUFTTSB0byAidHJ1ZSIgb3IgImZhbHNlIiAobm8gcXVvdGVzKSB0
byBkZXRlcm1pbmUgaWYgd2UgcnVuIHRlc3RtYXNtIGJ5IGRlZmF1bHQuCiAgIC0gc2V0IFJVTl9K
QVZBU0NSSVBUQ09SRV9URVNUU19URVNUQUlSIHRvICJ0cnVlIiBvciAiZmFsc2UiIChubyBxdW90
ZXMpIHRvIGRldGVybWluZSBpZiB3ZSBydW4gdGVzdGFpciBieSBkZWZhdWx0LgpAQCAtMjg5LDYg
KzMwOCw5IEBAIEdldE9wdGlvbnMoCiAgICAgJ3RhcmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGws
CiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhvc3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9k
ZWwsCisgICAgJ3ZlcnNpb249cycgPT4gXCR2ZXJzaW9uLAorICAgICd2ZXJzaW9uLW5hbWU9cycg
PT4gXCR2ZXJzaW9uTmFtZSwKKyAgICAnc2RrPXMnID0+IFwkc2RrLAogICAgICdyZW1vdGUtY29u
ZmlnLWZpbGU9cycgPT4gXCRyZW1vdGVDb25maWdGaWxlLAogICAgICdjaGlsZC1wcm9jZXNzZXM9
cycgPT4gXCRjaGlsZFByb2Nlc3NlcywKICAgICAnc2hlbGwtcnVubmVyJyA9PiBcJHNoZWxsUnVu
bmVyLApAQCAtMzAwLDcgKzMyMiwxMiBAQCBHZXRPcHRpb25zKAogICAgICdoZWxwJyA9PiBcJHNo
b3dIZWxwLAogICAgICdlbnYtdmFycz1zJyA9PiBcJGVudlZhcnMsCiAgICAgJ2dtYWxsb2M6cycg
PT4gXCRnbWFsbG9jUGF0aCwKLSAgICAndmVyYm9zZSsnID0+IFwkdmVyYm9zZQorICAgICd2ZXJi
b3NlKycgPT4gXCR2ZXJib3NlLAorICAgICdyZXBvcnQ9cycgPT4gXCRyZXBvcnQsCisgICAgJ2J1
aWxkYm90LW1hc3Rlcj1zJyA9PiBcJGJ1aWxkYm90TWFzdGVyLAorICAgICdidWlsZGVyLW5hbWU9
cycgPT4gXCRidWlsZGVyTmFtZSwKKyAgICAnYnVpbGQtbnVtYmVyPXMnID0+IFwkYnVpbGROdW1i
ZXIsCisgICAgJ2J1aWxkYm90LXdvcmtlcj1zJyA9PiBcJGJ1aWxkYm90V29ya2VyLAogKTsKIAog
CkBAIC0zMTUsNiArMzQyLDEwIEBAIGlmICgkcnVuVGVzdE1hc20gPT0gRE9fUlVOCiAgICAgJHNw
ZWNpZmljVGVzdHNTcGVjaWZpZWQgPSAxOwogfQogCitpZiAoJHZlcnNpb24pIHsKKyAgICAkdmVy
c2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7Cit9CisKIHN1YiBlbmFibGVUZXN0
T3JOb3QgewogICAgIG15ICgkc3RhdGUpID0gQF87CiAgICAgaWYgKCRzdGF0ZSA9PSBSVU5fSUZf
Tk9fVEVTVFNfU1BFQ0lGSUVEIHx8ICRzdGF0ZSA9PSBFTlZfVkFSX1NBWVNfRE9fUlVOKSB7CkBA
IC0zMjUsNiArMzU2LDg2IEBAIHN1YiBlbmFibGVUZXN0T3JOb3QgewogICAgIHJldHVybiAkc3Rh
dGU7CiB9CiAKK3N1YiBjb25maWd1cmF0aW9uRm9yVXBsb2FkKCkKK3sKKyAgICBteSAkcGxhdGZv
cm07CisgICAgbXkgJHNkazsKKyAgICBteSAkc2ltdWxhdG9yID0gMDsKKworICAgIGlmIChpbmRl
eCh4Y29kZVNES1BsYXRmb3JtTmFtZSgpLCAic2ltdWxhdG9yIikgIT0gLTEpIHsKKyAgICAgICAg
JHNpbXVsYXRvciA9IDE7CisgICAgfQorCisgICAgaWYgKGluZGV4KCRtb2RlbCwgJ2lQaG9uZScp
ICE9IC0xIHx8IGluZGV4KCRtb2RlbCwgJ2lQYWQnKSAhPSAtMSkgeworICAgICAgICAkcGxhdGZv
cm0gPSAnaW9zJzsKKyAgICAgICAgaWYgKCEkdmVyc2lvbikgeworICAgICAgICAgICAgJHZlcnNp
b24gPSBpb3NWZXJzaW9uKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2lmIChpbmRleCgkbW9kZWws
ICd3YXRjaCcpICE9IC0xIHx8IGluZGV4KHhjb2RlU0RLUGxhdGZvcm1OYW1lKCksICJ3YXRjaCIp
ICE9IC0xKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICd3YXRjaG9zJzsKKyAgICAgICAgZGllICJO
byB3YXRjaE9TIHZlcnNpb24gc3BlY2lmaWVkIiBpZiAhJHZlcnNpb247CisgICAgfSBlbHNpZiAo
aW5kZXgoeGNvZGVTREtQbGF0Zm9ybU5hbWUoKSwgImFwcGxldHYiKSAhPSAtMSkgeworICAgICAg
ICAkcGxhdGZvcm0gPSAndHZvcyc7CisgICAgICAgIGRpZSAiTm8gdHZPUyB2ZXJzaW9uIHNwZWNp
ZmllZCIgaWYgISR2ZXJzaW9uOworICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKKyAgICAgICAgJHBs
YXRmb3JtID0gJ0dUSyc7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAgIGNo
b21wKCR2ZXJzaW9uID0gYC91c3IvYmluL3VuYW1lIC1yYCk7CisgICAgICAgICAgICAkdmVyc2lv
biA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7CisgICAgICAgIH0KKyAgICB9IGVsc2lm
IChpc1dQRSgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICdXUEUnOworICAgICAgICBpZiAoISR2
ZXJzaW9uKSB7CisgICAgICAgICAgICBjaG9tcCgkdmVyc2lvbiA9IGAvdXNyL2Jpbi91bmFtZSAt
cmApOworICAgICAgICAgICAgJHZlcnNpb24gPSBzcGxpdFZlcnNpb25TdHJpbmcoJHZlcnNpb24p
OworICAgICAgICB9CisgICAgfSBlbHNpZiAoaXNBbnlXaW5kb3dzKCkpIHsKKyAgICAgICAgJHBs
YXRmb3JtID0gJ3dpbic7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAgICR2
ZXJzaW9uID0gd2luVmVyc2lvbigpOworICAgICAgICB9CisgICAgfSBlbHNpZiAoaXNBcHBsZU1h
Y1dlYktpdCgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICdtYWMnOworICAgICAgICBjaG9tcCgk
bW9kZWwgPSBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5tb2RlbGApOworICAgICAgICBpZiAoISR2
ZXJzaW9uKSB7CisgICAgICAgICAgICAkdmVyc2lvbiA9IG9zWFZlcnNpb24oKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoISRzZGspIHsKKyAgICAgICAgICAgIGNob21wKCRzZGsgPSBgL3Vzci9i
aW4vc3dfdmVycyAtYnVpbGRWZXJzaW9uYCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISR2
ZXJzaW9uTmFtZSkgeworICAgICAgICAgICAgaWYgKCR2ZXJzaW9uLT57bWlub3J9IGVxIDE1KSB7
CisgICAgICAgICAgICAgICAgJHZlcnNpb25OYW1lID0gIkNhdGFsaW5hIjsKKyAgICAgICAgICAg
IH0gZWxzaWYgKCR2ZXJzaW9uLT57bWlub3J9IGVxIDE0KSB7CisgICAgICAgICAgICAgICAgJHZl
cnNpb25OYW1lID0gIk1vamF2ZSI7CisgICAgICAgICAgICB9IGVsc2lmICgkdmVyc2lvbi0+e21p
bm9yfSBlcSAxMykgeworICAgICAgICAgICAgICAgICR2ZXJzaW9uTmFtZSA9ICJIaWdoIFNpZXJy
YSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBkaWUg
IkNhbm5vdCBkZXRlcm1pbmUgcGxhdGZvcm1cbiI7CisgICAgfQorCisgICAgbXkgJHJlc3VsdCA9
IHsKKyAgICAgICAgcGxhdGZvcm0gPT4gJHBsYXRmb3JtLAorICAgICAgICBhcmNoaXRlY3R1cmUg
PT4gYXJjaGl0ZWN0dXJlKCksCisgICAgICAgIGlzX3NpbXVsYXRvciA9PiAkc2ltdWxhdG9yLAor
ICAgICAgICBzdHlsZSA9PiBsYyhjb25maWd1cmF0aW9uKCkpLAorICAgICAgICB2ZXJzaW9uID0+
ICIkdmVyc2lvbi0+e21ham9yfS4kdmVyc2lvbi0+e21pbm9yfS4kdmVyc2lvbi0+e3N1Ym1pbm9y
fSIsCisgICAgfTsKKyAgICBpZiAoJG1vZGVsKSB7CisgICAgICAgICRyZXN1bHQtPnttb2RlbH0g
PSAkbW9kZWw7CisgICAgfQorICAgIGlmICgkdmVyc2lvbk5hbWUpIHsKKyAgICAgICAgJHJlc3Vs
dC0+e3ZlcnNpb25fbmFtZX0gPSAkdmVyc2lvbk5hbWU7CisgICAgfQorICAgIGlmICgkc2RrKSB7
CisgICAgICAgICRyZXN1bHQtPntzZGt9ID0gJHNkazsKKyAgICB9CisgICAgcmV0dXJuICRyZXN1
bHQ7Cit9CisKICRydW5UZXN0TWFzbSA9IGVuYWJsZVRlc3RPck5vdCgkcnVuVGVzdE1hc20pOwog
JHJ1blRlc3RBaXIgPSBlbmFibGVUZXN0T3JOb3QoJHJ1blRlc3RBaXIpOwogJHJ1blRlc3RCMyA9
IGVuYWJsZVRlc3RPck5vdCgkcnVuVGVzdEIzKTsKQEAgLTM0Miw2ICs0NTMsNyBAQCBpZiAoJHNo
b3dIZWxwKSB7CiB9CiAKIHNldENvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyKEN3ZDo6YWJzX3BhdGgo
JHJvb3QpKSBpZiAoZGVmaW5lZCgkcm9vdCkpOworY29uZmlndXJhdGlvbkZvclVwbG9hZCgpIGlm
IChkZWZpbmVkKCRyZXBvcnQpKTsKIAogaWYgKGRlZmluZWQoJGpzb25GaWxlTmFtZSkpIHsKICAg
ICAkanNvbkZpbGVOYW1lID0gRmlsZTo6U3BlYy0+cmVsMmFicygkanNvbkZpbGVOYW1lKTsKQEAg
LTM3NCw2ICs0ODYsOSBAQCAkRU5We0pTQ1RFU1RfdGltZW91dH0gPSAxMjAgdW5sZXNzICRFTlZ7
CiAkRU5We1RafT0iVVMvUGFjaWZpYyI7ICMgU29tZSB0ZXN0cyBmYWlsIGlmIHRoZSB0aW1lIHpv
bmUgaXMgbm90IHNldCB0byBVUy9QYWNpZmljICg8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM2MzYz
PikKIHNldFBhdGhGb3JSdW5uaW5nV2ViS2l0QXBwKFwlRU5WKSBpZiBpc0N5Z3dpbigpOwogCitt
eSAkc3RhcnRUaW1lID0gdGltZSgpOworbXkgJGVuZFRpbWUgPSAkc3RhcnRUaW1lOworCiBzdWIg
dGVzdFBhdGggewogICAgIG15ICgkcHJvZHVjdERpciwgJHRlc3ROYW1lKSA9IEBfOwogICAgICR0
ZXN0TmFtZSAuPSAiX2RlYnVnIiBpZiBjb25maWd1cmF0aW9uKCkgZXEgIkRlYnVnX0FsbCI7CkBA
IC0zOTcsOSArNTEyLDY0IEBAIHN1YiBydW5UZXN0IHsKICAgICAgICAgfQogICAgIH0KIAotICAg
ICMgVXNlIGFuICJpbmRpcmVjdCBvYmplY3QiIHNvIHRoYXQgc3lzdGVtKCkgd29uJ3QgZ2V0IGNv
bmZ1c2VkIGlmIHRoZSBwYXRoCi0gICAgIyBjb250YWlucyBzcGFjZXMgKHNlZSBwZXJsZG9jIC1m
IGV4ZWMpLgotICAgIG15ICR0ZXN0UmVzdWx0ID0gc3lzdGVtIHsgJGNvbW1hbmRbMF0gfSBAY29t
bWFuZDsKKyAgICBteSAkdGVzdFJlc3VsdCA9IDA7CisgICAgbXkgJGZhaWx1cmVGbGFnID0gMDsK
KyAgICBvcGVuKFRFU1QsICItfCIsICJAY29tbWFuZCAyPiYxIikgb3IgJHRlc3RSZXN1bHQgPSAx
OworICAgIHdoaWxlICggbXkgJGxpbmUgPSA8VEVTVD4gKSB7CisgICAgICAgIG15ICRzdWJUZXN0
TmFtZTsKKyAgICAgICAgaWYgKCR2ZXJib3NlID4gMCkgeworICAgICAgICAgICAgcHJpbnQgIiAg
ICAkbGluZSI7CisgICAgICAgIH0KKworICAgICAgICAjIGUuZy46ICdPMjogdGVzdFJvdFJXaXRo
SW1tU2hpZnQodWludDY0LW1heCwgdWludDMyLW1pbik6IE9LIScnCisgICAgICAgIGlmICgkbGlu
ZSA9fiAvKE9cZCk6IChcUyspKFwoLipcKSk6IChbQS1aYS16XSspIVxuLykgeworICAgICAgICAg
ICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMS4kMiQzIjsKKyAgICAgICAgICAgICRmYWls
dXJlRmxhZyArPSAxIGlmICgkNCBuZSAiT0siKTsKKyAgICAgICAgfQorICAgICAgICAjIHN1Yi10
ZXN0IGZyb20gdGhlIGMtYXBpLCBvZiB0aGUgZm9ybToKKyAgICAgICAgIyBlLmcuOiAndGVzdGFw
aVsxNTQyMjoxNjkwNDc5MF0gcGFyYWxsZWxQcm9taXNlUmVzb2x2ZVRlc3QoKTogZG9uZS4nJwor
ICAgICAgICBlbHNpZiAoJGxpbmUgPX4gL1xbXGQrOlxkK1xdIChcUyspKCk6IGRvbmVcLlxuLykg
eworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS5vYmplY3RpdmUtYy4kMSI7
CisgICAgICAgIH0KKyAgICAgICAgIyBFbmQgb2YgQy1BUEkgdGVzdHMgKG1lYW5pbmcgd2UganVz
dCBmaW5pc2hlZCB0aGUgdW5ncm91cGVkIG1haW4gdGVzdHMpCisgICAgICAgIGVsc2lmICgkbGlu
ZSA9fiAvU3RhcnRpbmcgQy1BUEkgdGVzdHMgaW4gQysrLykgeworICAgICAgICAgICAgJHN1YlRl
c3ROYW1lID0gIiR0ZXN0TmFtZS5vYmplY3RpdmUtYy5tYWluIjsKKyAgICAgICAgfQorICAgICAg
ICAjIFRlc3QgY2FzZXMgaW5zaWRlIEFQSSB0ZXN0cworICAgICAgICAjIGUuZy46ICd0ZXN0YXBp
WzE1NDIyOjE2OTA0NzkwXSBURVNUOiAiMiArIDIiOiBQQVNTRUQnCisgICAgICAgIGVsc2lmICgk
bGluZSA9fiAvXFtcZCs6XGQrXF0gVEVTVDogIi4qIjogKFtBLVpdKylcbi8pIHsKKyAgICAgICAg
ICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkMSBuZSAiUEFTU0VEIiAmJiAkMSBuZSAiUEFTUyIp
OworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICAjIGUuZy46ICd0ZXN0Qml0
WG9yQW5kQW5kQXJncygwLCAwLHVpbnQzMi1tYXgpOiBPSyEnJworICAgICAgICBlbHNpZiAoJGxp
bmUgPX4gLyhcUyspKFwoLipcKSk6IChbQS1aYS16XSspIVxuLykgeworICAgICAgICAgICAgJHN1
YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMSQyIjsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyAr
PSAxIGlmICgkMyBuZSAiT0siKTsKKyAgICAgICAgfQorICAgICAgICAjIEdlbmVyYWwgdGVzdGNh
c2Ugc3RhdGVtZW50LCBmaWx0ZXJlZCB0byBleGNsdWRlIHNvbWUganVuayBsb2dnaW5nCisgICAg
ICAgICMgZS5nLjogJ1BBU1M6IERGRyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkIHdoZW4g
bm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLicnCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvKFtB
LVpdKyk6ICguKilcLipcbi8gJiYgISgkbGluZSA9fiAvW0EtWl0rOiBcZCtcbi8gfHwgJGxpbmUg
PX4gL1xbXGQrOlxkK1xdIFtBLVpdKzovKSkgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0g
IiR0ZXN0TmFtZS4kMiI7CisgICAgICAgICAgICAkZmFpbHVyZUZsYWcgKz0gMSBpZiAoJDEgbmUg
IlBBU1MiKTsKKyAgICAgICAgfQorICAgICAgICAjIGUuZy46ICd0ZXN0IGRlc2NyaXB0aW9uOiBQ
QVNTRUQnCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvLio6IChbQS1aXSspXG4vKSB7CisgICAg
ICAgICAgICAkZmFpbHVyZUZsYWcgKz0gMSBpZiAoJDEgbmUgIlBBU1NFRCIgJiYgJDEgbmUgIlBB
U1MiKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBu
ZXh0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkZWZpbmVkICRyZXBvcnREYXRheyRzdWJU
ZXN0TmFtZX0pIHsKKyAgICAgICAgICAgICRyZXBvcnREYXRheyRzdWJUZXN0TmFtZX0gPSAkZmFp
bHVyZUZsYWcgPyB7YWN0dWFsID0+ICJGQUlMIn0gOiB7YWN0dWFsID0+ICJQQVNTIn0KKyAgICAg
ICAgfQorICAgICAgICAkZmFpbHVyZUZsYWcgPSAwOworICAgIH0KKyAgICBjbG9zZShURVNUKTsK
KworICAgIGlmICgkPykgeworICAgICAgICBteSAkdGVzdFJlc3VsdCA9ICQ/OworICAgIH0KICAg
ICBteSAkZXhpdFN0YXR1cyA9IGV4aXRTdGF0dXMoJHRlc3RSZXN1bHQpOwogICAgIHByaW50ICIk
dGVzdE5hbWUgY29tcGxldGVkIHdpdGggcmM9JHRlc3RSZXN1bHQgKCRleGl0U3RhdHVzKVxuXG4i
OwogCkBAIC00MTUsNyArNTg1LDEwIEBAIHN1YiBydW5UZXN0IHsKICAgICBpZiAoJHRlc3RSZXN1
bHQgJiYgJGZhaWxGYXN0KSB7CiAgICAgICAgIHJlcG9ydFRlc3RGYWlsdXJlcygpOwogICAgICAg
ICB3cml0ZUpzb25EYXRhSWZBcHBsaWNhYmxlKCk7Ci0gICAgICAgIGV4aXQgZXhpdFN0YXR1cygk
dGVzdFJlc3VsdCk7CisKKyAgICAgICAgJGVuZFRpbWUgPSB0aW1lKCk7CisgICAgICAgIHVwbG9h
ZFJlc3VsdHMoKTsKKyAgICAgICAgZXhpdCAkZXhpdFN0YXR1czsKICAgICB9CiB9CiAKQEAgLTQ0
Niw5ICs2MTksMTMgQEAgaWYgKCRydW5UZXN0QVBJKSB7IHJ1blRlc3QoInRlc3RhcGkiLCAiYQog
IyBGaW5kIEphdmFTY3JpcHRDb3JlIGRpcmVjdG9yeQogY2hkaXJXZWJLaXQoKTsKIAotcnVuSlND
U3RyZXNzVGVzdHMoKTsKKyMgRklYTUU6IHJlcG9ydCBzdHJlc3MgdGVzdCBmYWlsdXJlcyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDk2CisjcnVuSlNDU3RyZXNz
VGVzdHMoKTsKIHJlcG9ydFRlc3RGYWlsdXJlcygpOwogCiskZW5kVGltZSA9IHRpbWUoKTsKK3Vw
bG9hZFJlc3VsdHMoKTsKKwogaWYgKCRpc1Rlc3RGYWlsZWQpIHsKICAgZXhpdCgxKTsKIH0KQEAg
LTY2NiwzICs4NDMsNjEgQEAgc3ViIHdyaXRlSnNvbkRhdGFJZkFwcGxpY2FibGUKICAgICAgICAg
Y2xvc2UoJGZpbGVIYW5kbGVyKTsKICAgICB9CiB9CisKK3N1YiB1cGxvYWRSZXN1bHRzCit7Cisg
ICAgaWYgKG5vdCBkZWZpbmVkICRyZXBvcnQpIHsKKyAgICAgICAgcHJpbnQgIk5vIHJlcG9ydCBV
Ukwgc3BlY2lmaWVkLCBza2lwcGluZyByZXN1bHRzIHVwbG9hZFxuIjsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorCisgICAgbXkgJXVwbG9hZCA9ICgKKyAgICAgICAgdmVyc2lvbiA9PiAwLAor
ICAgICAgICBzdWl0ZSA9PiAnamF2YXNjcmlwdGNvcmUtdGVzdHMnLAorICAgICAgICAjIEZJWE1F
OiBJbnRlZ3JhdGUgYnJhbmNoZXMsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQwOTQKKyAgICAgICAgIyBGSVhNRTogSW50ZWdyYXRlIHRoZSBTYWZhcmkgcmVwb3Np
dG9yeSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDA5NQorICAg
ICAgICBjb21taXRzID0+IFt7CisgICAgICAgICAgICByZXBvc2l0b3J5X2lkID0+ICd3ZWJraXQn
LAorICAgICAgICAgICAgaWQgPT4gZGV0ZXJtaW5lQ3VycmVudFNWTlJldmlzaW9uKCksCisgICAg
ICAgIH1dLAorICAgICAgICBjb25maWd1cmF0aW9uID0+IGNvbmZpZ3VyYXRpb25Gb3JVcGxvYWQo
KSwKKyAgICAgICAgdGVzdF9yZXN1bHRzID0+IHsKKyAgICAgICAgICAgIHJ1bl9zdGF0cyA9PiB7
CisgICAgICAgICAgICAgICAgc3RhcnRfdGltZSA9PiAkc3RhcnRUaW1lLAorICAgICAgICAgICAg
ICAgIGVuZF90aW1lID0+ICRlbmRUaW1lLAorICAgICAgICAgICAgICAgIHRlc3RzX3NraXBwZWQg
PT4gMCwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICByZXN1bHRzID0+IFwlcmVwb3J0RGF0
YSwKKyAgICAgICAgfSwKKyAgICAgICAgdGltZXN0YW1wID0+ICRzdGFydFRpbWUsCisgICAgKTsK
KyAgICBpZiAoZGVmaW5lZCAkYnVpbGRib3RNYXN0ZXIgYW5kIGRlZmluZWQgJGJ1aWxkZXJOYW1l
IGFuZCBkZWZpbmVkICRidWlsZE51bWJlciBhbmQgZGVmaW5lZCAkYnVpbGRib3RXb3JrZXIpIHsK
KyAgICAgICAgJHVwbG9hZHt0ZXN0X3Jlc3VsdHN9e2RldGFpbHN9ID0geworICAgICAgICAgICAg
YnVpbGRib3RfbWFzdGVyID0+ICRidWlsZGJvdE1hc3RlciwKKyAgICAgICAgICAgIGJ1aWxkZXJf
bmFtZSA9PiAkYnVpbGRlck5hbWUsCisgICAgICAgICAgICBidWlsZF9udW1iZXIgPT4gJGJ1aWxk
TnVtYmVyLAorICAgICAgICAgICAgYnVpbGRib3Rfd29ya2VyID0+ICRidWlsZGJvdFdvcmtlciwK
KyAgICAgICAgfTsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludCAiICAgIE5vIGJ1aWxkYm90
IGRldGFpbHMgcHJvdmlkZWQsIHRlc3QgcnVuIHdpbGwgbm90IGJlIGxpbmtlZCB0byBDSSBzeXN0
ZW1cbiI7CisgICAgfQorICAgIGlmIChkZWZpbmVkICRFTlZ7J1JFU1VMVFNfU0VSVkVSX0FQSV9L
RVknfSkgeworICAgICAgICAkdXBsb2FkeydhcGlfa2V5J30gPSAkRU5WeydSRVNVTFRTX1NFUlZF
Ul9BUElfS0VZJ307CisgICAgfQorCisgICAgcHJpbnQgIlVwbG9hZGluZyByZXN1bHRzIHRvICRy
ZXBvcnRcbiI7CisKKyAgICBvcGVuKEhBTkRMRSwgInwtIiwgImN1cmwgLVggUE9TVCAkcmVwb3J0
L2FwaS91cGxvYWQgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgLWYgLWQgJ1xA
LSciKSBvciBkaWUgIkZhaWxlZCB0byBvcGVuIGN1cmwiOworCisgICAgIyBKc29uIGNvbmZvcm1p
bmcgdG8gaHR0cHM6Ly9yZXN1bHRzLndlYmtpdC5vcmcvZG9jdW1lbnRhdGlvbiNBUEktVXBsb2Fk
cy4KKyAgICBteSAkZW5jb2RlZFVwbG9hZCA9IGVuY29kZV9qc29uKFwldXBsb2FkKTsKKyAgICBw
cmludCBIQU5ETEUgIiRlbmNvZGVkVXBsb2FkXG5cMCI7CisgICAgbXkgJHN1Y2Nlc3MgPSBjbG9z
ZSBIQU5ETEU7CisKKyAgICBpZiAoJHN1Y2Nlc3MpIHsKKyAgICAgICAgcHJpbnQgIlVwbG9hZCBz
dWNjZXNzZnVsIVxuIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHByaW50ICJVcGxv
YWQgdG8gJHJlcG9ydCBmYWlsZWRcbiI7CisgICAgcmV0dXJuIDE7Cit9CkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdGRpcnMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRk
aXJzLnBtCShyZXZpc2lvbiAyNTIzNjgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0J
KHdvcmtpbmcgY29weSkKQEAgLTE1NjMsMTAgKzE1NjMsMTAgQEAgc3ViIHNwbGl0VmVyc2lvblN0
cmluZwogICAgIG15ICR2ZXJzaW9uU3RyaW5nID0gc2hpZnQ7CiAgICAgbXkgQHNwbGl0VmVyc2lv
biA9IHNwbGl0KC9cLi8sICR2ZXJzaW9uU3RyaW5nKTsKICAgICBAc3BsaXRWZXJzaW9uID49IDIg
b3IgZGllICJJbnZhbGlkIHZlcnNpb24gJHZlcnNpb25TdHJpbmciOwotICAgICRvc1hWZXJzaW9u
ID0gewotICAgICAgICAgICAgIm1ham9yIiA9PiAkc3BsaXRWZXJzaW9uWzBdLAotICAgICAgICAg
ICAgIm1pbm9yIiA9PiAkc3BsaXRWZXJzaW9uWzFdLAotICAgICAgICAgICAgInN1Ym1pbm9yIiA9
PiAoZGVmaW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNpb25bMl0gOiAwKSwKKyAg
ICByZXR1cm4geworICAgICAgICAibWFqb3IiID0+ICRzcGxpdFZlcnNpb25bMF0sCisgICAgICAg
ICJtaW5vciIgPT4gJHNwbGl0VmVyc2lvblsxXSwKKyAgICAgICAgInN1Ym1pbm9yIiA9PiAoZGVm
aW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNpb25bMl0gOiAwKSwKICAgICB9Owog
fQogCkBAIC0xNTc5LDcgKzE1NzksNyBAQCBzdWIgZGV0ZXJtaW5lT1NYVmVyc2lvbigpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBteSAkdmVyc2lvblN0cmluZyA9IGBzd192ZXJzIC1w
cm9kdWN0VmVyc2lvbmA7CisgICAgY2hvbXAobXkgJHZlcnNpb25TdHJpbmcgPSBgc3dfdmVycyAt
cHJvZHVjdFZlcnNpb25gKTsKICAgICAkb3NYVmVyc2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygk
dmVyc2lvblN0cmluZyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383555</attachid>
            <date>2019-11-14 07:18:27 -0800</date>
            <delta_ts>2019-11-14 13:46:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204091-20191114071825.patch</filename>
            <type>text/plain</type>
            <size>14419</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjM2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE5LTExLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlcG9ydCBKU0MgdGVzdHMgdG8gdGhl
IHJlc3VsdHMgZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk3Nzg5MDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBsb2FkIHJlc3Vs
dHMgdG8gdGhlIHNwZWNpZmllZCByZXN1bHRzIGRhdGFiYXNlLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgIChydW5UZXN0KTogUGFyc2UgYmlu
YXJ5IG91dHB1dCB0byBtYXJrIGluZGl2aWR1YWwgdGVzdHMgYXMgcGFzc2luZworICAgICAgICBv
ciBmYWlsaW5nLgorICAgICAgICAodXBsb2FkQ29uZmlndXJhdGlvbik6IFJldHVybiBhIGhhc2gg
bWFwIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbgorICAgICAgICBGb3IgdGhpcyBzcGVj
aWZpYyB0ZXN0IHJ1bi4KKyAgICAgICAgKHVwbG9hZFJlc3VsdHMpOiBJZiBhIHJlcG9ydCBVUkwg
aXMgZGVmaW5lZCwgdXBsb2FkIHRlc3QgcmVzdWx0cyB0byB0aGF0IFVSTC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChzcGxpdFZlcnNpb25TdHJpbmcpOiBzcGxp
dFZlcnNpb25TdHJpbmcgaXMgc3VwcG9zZWQgdG8gYmUgYSBnZW5lcmFsbHkgdXNlZAorICAgICAg
ICBmdW5jdGlvbiwgc28gc2hvdWxkIG5vdCBzZXQgYSBnbG9iYWwgdmFyaWFibGUuCisgICAgICAg
IChkZXRlcm1pbmVPU1hWZXJzaW9uKTogUmVtb3ZlIG5ld2xpbmUgZnJvbSB2ZXJzaW9uIG51bWJl
ci4KKwogMjAxOS0xMS0xMiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEFkZCAndGVzdDI2Mi10ZXN0JyBzdGVwIHRvIEdUSyBhbmQgV1BFIGJ1
aWxkIGJvdHMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCShyZXZp
c2lvbiAyNTIzNjgpCisrKyBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwko
d29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsMTIgQEAgbXkgJHJ1YnlSdW5uZXI7CiBteSAkdGVz
dFdyaXRlcjsKIG15ICRtZW1vcnlMaW1pdGVkOwogCitteSAkcmVwb3J0OworbXkgJGJ1aWxkYm90
TWFzdGVyOworbXkgJGJ1aWxkZXJOYW1lOworbXkgJGJ1aWxkTnVtYmVyOworbXkgJGJ1aWxkYm90
V29ya2VyOworCiBteSAkYnVpbGRKU0MgPSAxOwogbXkgJGNvcHlKU0MgPSAxOwogCkBAIC05MSw4
ICs5NywxMiBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRoID0gIi91c3IvbGliL2xpYmdtCiBteSAk
Y3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9zdCA9IDA7CiBteSAkbW9kZWwgPSAwOwor
bXkgJHZlcnNpb247CitteSAkdmVyc2lvbk5hbWU7CitteSAkc2RrOwogbXkgJGZhaWxGYXN0ID0g
MTsKIG15ICVqc29uRGF0YSA9ICgpOworbXkgJXJlcG9ydERhdGEgPSAoKTsKIG15IEB0ZXN0UmVz
dWx0cyA9ICgpOwogbXkgJGlzVGVzdEZhaWxlZCA9IDA7CiBteSAkcmVtb3RlQ29uZmlnRmlsZTsK
QEAgLTIzMSw2ICsyNDEsOSBAQCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9u
cyB0CiAgIC0tcmVtb3RlPSAgICAgICAgICAgICAgICAgICAgIFJ1biB0aGUgSlNDIHN0cmVzcyB0
ZXN0cyBvbiB0aGUgc3BlY2lmaWVkIHJlbW90ZSBob3N0LiBJbXBsaWVzIC0tdGFyYmFsbC4KICAg
LS1yZW1vdGUtY29uZmlnLWZpbGU9ICAgICAgICAgU2FtZSBhcyByZW1vdGUsIGJ1dCByZWFkIGNv
bmZpZyBmcm9tIEpTT04gZmlsZS4KICAgLS1tb2RlbD0gICAgICAgICAgICAgICAgICAgICAgU3Bl
Y2lmeSByZW1vdGUgaGFyZHdhcmUgbW9kZWwsIHRoaXMgaW5mbyB1c2VkIGZvciBkZXRlcm1pbmUg
d2hhdCBqc2MgdGVzdHMgc2hvdWxkIHJ1biBvbiByZW1vdGUKKyAgLS12ZXJzaW9uICAgICAgICAg
ICAgICAgICAgICAgU3BlY2lmeSB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRldmljZSBydW5u
aW5nIHRlc3RzLgorICAtLXZlcnNpb24tbmFtZSAgICAgICAgICAgICAgICBTcGVjaWZ5IHRoZSB2
ZXJzaW9uIG5hbWUgb2YgdGhlIGhhcmR3YXJlIHJ1bm5pbmcgdGVzdHMuCisgIC0tc2RrICAgICAg
ICAgICAgICAgICAgICAgICAgIFNwZWNpZmljIFNESyBvciBPUyB2ZXJzaW9uIG9mIHRoZSBmb3Jt
ICMjKiMjIwogICAtLWV4dHJhLXRlc3RzPSAgICAgICAgICAgICAgICBQYXRoIHRvIGEgZmlsZSBj
b250YWluaW5nIGV4dHJhIHRlc3RzCiAgIC0tY2hpbGQtcHJvY2Vzc2VzPSAgICAgICAgICAgIFNw
ZWNpZnkgdGhlIG51bWJlciBvZiBjaGlsZCBwcm9jZXNzZXMuCiAgIC0tc2hlbGwtcnVubmVyICAg
ICAgICAgICAgICAgIFVzZXMgdGhlIHNoZWxsLWJhc2VkIHRlc3QgcnVubmVyIGluc3RlYWQgb2Yg
dGhlIGRlZmF1bHQgbWFrZS1iYXNlZCBydW5uZXIuCkBAIC0yNTIsNiArMjY1LDEyIEBAIFVzYWdl
OiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHQKICAgLS1nbWFsbG9jOiAgICAgICAg
ICAgICAgICAgICAgUnVuIHRlc3RzIHdpdGggR3VhcmQgTWFsbG9jIGVuYWJsZWQgKGlmIG5vIHBh
dGggaXMgZ2l2ZW46ICRnbWFsbG9jRGVmYXVsdFBhdGggaXMgdXNlZCkKICAgLS12ZXJib3NlOiAg
ICAgICAgICAgICAgICAgICAgVmVyYm9zZSBvdXRwdXQgKHNwZWNpZnkgbW9yZSB0aGFuIG9uY2Ug
dG8gaW5jcmVhc2UgdmVyYm9zaXR5KS4KIAorICAtLXJlcG9ydDogICAgICAgICAgICAgICAgICAg
ICBSZXN1bHRzIGRhdGFiYXNlIHVybCB0byByZXBvcnQgcmVzdWx0cyB0by4KKyAgLS1idWlsZGJv
dC1tYXN0ZXI6ICAgICAgICAgICAgVGhlIHVybCBvZiB0aGUgYnVpbGRib3QgbWFzdGVyLgorICAt
LWJ1aWxkZXItbmFtZTogICAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgYnVpbGRib3QgYnVp
bGRlciB0ZXN0cyB3ZXJlIHJ1biBvbi4KKyAgLS1idWlsZC1udW1iZXI6ICAgICAgICAgICAgICAg
VGhlIGJ1aWxkYm90IGJ1aWxkIG51bWJlciB0ZXN0cyBhcmUgYXNzb2NpYXRlZCB3aXRoLgorICAt
LWJ1aWxkYm90LXdvcmtlcjogICAgICAgICAgICBUaGUgYnVpbGRib3Qgd29ya2VyIHRlc3RzIHdl
cmUgcnVuIG9uLgorCiBFbnZpcm9ubWVudCBWYXJpYWJsZXM6CiAgIC0gc2V0IFJVTl9KQVZBU0NS
SVBUQ09SRV9URVNUU19URVNUTUFTTSB0byAidHJ1ZSIgb3IgImZhbHNlIiAobm8gcXVvdGVzKSB0
byBkZXRlcm1pbmUgaWYgd2UgcnVuIHRlc3RtYXNtIGJ5IGRlZmF1bHQuCiAgIC0gc2V0IFJVTl9K
QVZBU0NSSVBUQ09SRV9URVNUU19URVNUQUlSIHRvICJ0cnVlIiBvciAiZmFsc2UiIChubyBxdW90
ZXMpIHRvIGRldGVybWluZSBpZiB3ZSBydW4gdGVzdGFpciBieSBkZWZhdWx0LgpAQCAtMjg5LDYg
KzMwOCw5IEBAIEdldE9wdGlvbnMoCiAgICAgJ3RhcmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGws
CiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhvc3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9k
ZWwsCisgICAgJ3ZlcnNpb249cycgPT4gXCR2ZXJzaW9uLAorICAgICd2ZXJzaW9uLW5hbWU9cycg
PT4gXCR2ZXJzaW9uTmFtZSwKKyAgICAnc2RrPXMnID0+IFwkc2RrLAogICAgICdyZW1vdGUtY29u
ZmlnLWZpbGU9cycgPT4gXCRyZW1vdGVDb25maWdGaWxlLAogICAgICdjaGlsZC1wcm9jZXNzZXM9
cycgPT4gXCRjaGlsZFByb2Nlc3NlcywKICAgICAnc2hlbGwtcnVubmVyJyA9PiBcJHNoZWxsUnVu
bmVyLApAQCAtMzAwLDcgKzMyMiwxMiBAQCBHZXRPcHRpb25zKAogICAgICdoZWxwJyA9PiBcJHNo
b3dIZWxwLAogICAgICdlbnYtdmFycz1zJyA9PiBcJGVudlZhcnMsCiAgICAgJ2dtYWxsb2M6cycg
PT4gXCRnbWFsbG9jUGF0aCwKLSAgICAndmVyYm9zZSsnID0+IFwkdmVyYm9zZQorICAgICd2ZXJi
b3NlKycgPT4gXCR2ZXJib3NlLAorICAgICdyZXBvcnQ9cycgPT4gXCRyZXBvcnQsCisgICAgJ2J1
aWxkYm90LW1hc3Rlcj1zJyA9PiBcJGJ1aWxkYm90TWFzdGVyLAorICAgICdidWlsZGVyLW5hbWU9
cycgPT4gXCRidWlsZGVyTmFtZSwKKyAgICAnYnVpbGQtbnVtYmVyPXMnID0+IFwkYnVpbGROdW1i
ZXIsCisgICAgJ2J1aWxkYm90LXdvcmtlcj1zJyA9PiBcJGJ1aWxkYm90V29ya2VyLAogKTsKIAog
CkBAIC0zMTUsNiArMzQyLDEwIEBAIGlmICgkcnVuVGVzdE1hc20gPT0gRE9fUlVOCiAgICAgJHNw
ZWNpZmljVGVzdHNTcGVjaWZpZWQgPSAxOwogfQogCitpZiAoJHZlcnNpb24pIHsKKyAgICAkdmVy
c2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7Cit9CisKIHN1YiBlbmFibGVUZXN0
T3JOb3QgewogICAgIG15ICgkc3RhdGUpID0gQF87CiAgICAgaWYgKCRzdGF0ZSA9PSBSVU5fSUZf
Tk9fVEVTVFNfU1BFQ0lGSUVEIHx8ICRzdGF0ZSA9PSBFTlZfVkFSX1NBWVNfRE9fUlVOKSB7CkBA
IC0zMjUsNiArMzU2LDg2IEBAIHN1YiBlbmFibGVUZXN0T3JOb3QgewogICAgIHJldHVybiAkc3Rh
dGU7CiB9CiAKK3N1YiBjb25maWd1cmF0aW9uRm9yVXBsb2FkKCkKK3sKKyAgICBteSAkcGxhdGZv
cm07CisgICAgbXkgJHNkazsKKyAgICBteSAkc2ltdWxhdG9yID0gMDsKKworICAgIGlmIChpbmRl
eCh4Y29kZVNES1BsYXRmb3JtTmFtZSgpLCAic2ltdWxhdG9yIikgIT0gLTEpIHsKKyAgICAgICAg
JHNpbXVsYXRvciA9IDE7CisgICAgfQorCisgICAgaWYgKGluZGV4KCRtb2RlbCwgJ2lQaG9uZScp
ICE9IC0xIHx8IGluZGV4KCRtb2RlbCwgJ2lQYWQnKSAhPSAtMSkgeworICAgICAgICAkcGxhdGZv
cm0gPSAnaW9zJzsKKyAgICAgICAgaWYgKCEkdmVyc2lvbikgeworICAgICAgICAgICAgJHZlcnNp
b24gPSBpb3NWZXJzaW9uKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2lmIChpbmRleCgkbW9kZWws
ICd3YXRjaCcpICE9IC0xIHx8IGluZGV4KHhjb2RlU0RLUGxhdGZvcm1OYW1lKCksICJ3YXRjaCIp
ICE9IC0xKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICd3YXRjaG9zJzsKKyAgICAgICAgZGllICJO
byB3YXRjaE9TIHZlcnNpb24gc3BlY2lmaWVkIiBpZiAhJHZlcnNpb247CisgICAgfSBlbHNpZiAo
aW5kZXgoeGNvZGVTREtQbGF0Zm9ybU5hbWUoKSwgImFwcGxldHYiKSAhPSAtMSkgeworICAgICAg
ICAkcGxhdGZvcm0gPSAndHZvcyc7CisgICAgICAgIGRpZSAiTm8gdHZPUyB2ZXJzaW9uIHNwZWNp
ZmllZCIgaWYgISR2ZXJzaW9uOworICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKKyAgICAgICAgJHBs
YXRmb3JtID0gJ0dUSyc7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAgIGNo
b21wKCR2ZXJzaW9uID0gYC91c3IvYmluL3VuYW1lIC1yYCk7CisgICAgICAgICAgICAkdmVyc2lv
biA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7CisgICAgICAgIH0KKyAgICB9IGVsc2lm
IChpc1dQRSgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICdXUEUnOworICAgICAgICBpZiAoISR2
ZXJzaW9uKSB7CisgICAgICAgICAgICBjaG9tcCgkdmVyc2lvbiA9IGAvdXNyL2Jpbi91bmFtZSAt
cmApOworICAgICAgICAgICAgJHZlcnNpb24gPSBzcGxpdFZlcnNpb25TdHJpbmcoJHZlcnNpb24p
OworICAgICAgICB9CisgICAgfSBlbHNpZiAoaXNBbnlXaW5kb3dzKCkpIHsKKyAgICAgICAgJHBs
YXRmb3JtID0gJ3dpbic7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAgICR2
ZXJzaW9uID0gd2luVmVyc2lvbigpOworICAgICAgICB9CisgICAgfSBlbHNpZiAoaXNBcHBsZU1h
Y1dlYktpdCgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICdtYWMnOworICAgICAgICBjaG9tcCgk
bW9kZWwgPSBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5tb2RlbGApOworICAgICAgICBpZiAoISR2
ZXJzaW9uKSB7CisgICAgICAgICAgICAkdmVyc2lvbiA9IG9zWFZlcnNpb24oKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoISRzZGspIHsKKyAgICAgICAgICAgIGNob21wKCRzZGsgPSBgL3Vzci9i
aW4vc3dfdmVycyAtYnVpbGRWZXJzaW9uYCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISR2
ZXJzaW9uTmFtZSkgeworICAgICAgICAgICAgaWYgKCR2ZXJzaW9uLT57bWlub3J9IGVxIDE1KSB7
CisgICAgICAgICAgICAgICAgJHZlcnNpb25OYW1lID0gIkNhdGFsaW5hIjsKKyAgICAgICAgICAg
IH0gZWxzaWYgKCR2ZXJzaW9uLT57bWlub3J9IGVxIDE0KSB7CisgICAgICAgICAgICAgICAgJHZl
cnNpb25OYW1lID0gIk1vamF2ZSI7CisgICAgICAgICAgICB9IGVsc2lmICgkdmVyc2lvbi0+e21p
bm9yfSBlcSAxMykgeworICAgICAgICAgICAgICAgICR2ZXJzaW9uTmFtZSA9ICJIaWdoIFNpZXJy
YSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBkaWUg
IkNhbm5vdCBkZXRlcm1pbmUgcGxhdGZvcm1cbiI7CisgICAgfQorCisgICAgbXkgJHJlc3VsdCA9
IHsKKyAgICAgICAgcGxhdGZvcm0gPT4gJHBsYXRmb3JtLAorICAgICAgICBhcmNoaXRlY3R1cmUg
PT4gYXJjaGl0ZWN0dXJlKCksCisgICAgICAgIGlzX3NpbXVsYXRvciA9PiAkc2ltdWxhdG9yLAor
ICAgICAgICBzdHlsZSA9PiBsYyhjb25maWd1cmF0aW9uKCkpLAorICAgICAgICB2ZXJzaW9uID0+
ICIkdmVyc2lvbi0+e21ham9yfS4kdmVyc2lvbi0+e21pbm9yfS4kdmVyc2lvbi0+e3N1Ym1pbm9y
fSIsCisgICAgfTsKKyAgICBpZiAoJG1vZGVsKSB7CisgICAgICAgICRyZXN1bHQtPnttb2RlbH0g
PSAkbW9kZWw7CisgICAgfQorICAgIGlmICgkdmVyc2lvbk5hbWUpIHsKKyAgICAgICAgJHJlc3Vs
dC0+e3ZlcnNpb25fbmFtZX0gPSAkdmVyc2lvbk5hbWU7CisgICAgfQorICAgIGlmICgkc2RrKSB7
CisgICAgICAgICRyZXN1bHQtPntzZGt9ID0gJHNkazsKKyAgICB9CisgICAgcmV0dXJuICRyZXN1
bHQ7Cit9CisKICRydW5UZXN0TWFzbSA9IGVuYWJsZVRlc3RPck5vdCgkcnVuVGVzdE1hc20pOwog
JHJ1blRlc3RBaXIgPSBlbmFibGVUZXN0T3JOb3QoJHJ1blRlc3RBaXIpOwogJHJ1blRlc3RCMyA9
IGVuYWJsZVRlc3RPck5vdCgkcnVuVGVzdEIzKTsKQEAgLTM0Miw2ICs0NTMsNyBAQCBpZiAoJHNo
b3dIZWxwKSB7CiB9CiAKIHNldENvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyKEN3ZDo6YWJzX3BhdGgo
JHJvb3QpKSBpZiAoZGVmaW5lZCgkcm9vdCkpOworY29uZmlndXJhdGlvbkZvclVwbG9hZCgpIGlm
IChkZWZpbmVkKCRyZXBvcnQpKTsKIAogaWYgKGRlZmluZWQoJGpzb25GaWxlTmFtZSkpIHsKICAg
ICAkanNvbkZpbGVOYW1lID0gRmlsZTo6U3BlYy0+cmVsMmFicygkanNvbkZpbGVOYW1lKTsKQEAg
LTM3NCw2ICs0ODYsOSBAQCAkRU5We0pTQ1RFU1RfdGltZW91dH0gPSAxMjAgdW5sZXNzICRFTlZ7
CiAkRU5We1RafT0iVVMvUGFjaWZpYyI7ICMgU29tZSB0ZXN0cyBmYWlsIGlmIHRoZSB0aW1lIHpv
bmUgaXMgbm90IHNldCB0byBVUy9QYWNpZmljICg8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM2MzYz
PikKIHNldFBhdGhGb3JSdW5uaW5nV2ViS2l0QXBwKFwlRU5WKSBpZiBpc0N5Z3dpbigpOwogCitt
eSAkc3RhcnRUaW1lID0gdGltZSgpOworbXkgJGVuZFRpbWUgPSAkc3RhcnRUaW1lOworCiBzdWIg
dGVzdFBhdGggewogICAgIG15ICgkcHJvZHVjdERpciwgJHRlc3ROYW1lKSA9IEBfOwogICAgICR0
ZXN0TmFtZSAuPSAiX2RlYnVnIiBpZiBjb25maWd1cmF0aW9uKCkgZXEgIkRlYnVnX0FsbCI7CkBA
IC0zOTcsOSArNTEyLDY0IEBAIHN1YiBydW5UZXN0IHsKICAgICAgICAgfQogICAgIH0KIAotICAg
ICMgVXNlIGFuICJpbmRpcmVjdCBvYmplY3QiIHNvIHRoYXQgc3lzdGVtKCkgd29uJ3QgZ2V0IGNv
bmZ1c2VkIGlmIHRoZSBwYXRoCi0gICAgIyBjb250YWlucyBzcGFjZXMgKHNlZSBwZXJsZG9jIC1m
IGV4ZWMpLgotICAgIG15ICR0ZXN0UmVzdWx0ID0gc3lzdGVtIHsgJGNvbW1hbmRbMF0gfSBAY29t
bWFuZDsKKyAgICBteSAkdGVzdFJlc3VsdCA9IDA7CisgICAgbXkgJGZhaWx1cmVGbGFnID0gMDsK
KyAgICBvcGVuKFRFU1QsICItfCIsICJAY29tbWFuZCAyPiYxIikgb3IgJHRlc3RSZXN1bHQgPSAx
OworICAgIHdoaWxlICggbXkgJGxpbmUgPSA8VEVTVD4gKSB7CisgICAgICAgIG15ICRzdWJUZXN0
TmFtZTsKKyAgICAgICAgaWYgKCR2ZXJib3NlID4gMCkgeworICAgICAgICAgICAgcHJpbnQgIiAg
ICAkbGluZSI7CisgICAgICAgIH0KKworICAgICAgICAjIGUuZy46ICdPMjogdGVzdFJvdFJXaXRo
SW1tU2hpZnQodWludDY0LW1heCwgdWludDMyLW1pbik6IE9LIScnCisgICAgICAgIGlmICgkbGlu
ZSA9fiAvKE9cZCk6IChcUyspKFwoLipcKSk6IChbQS1aYS16XSspIVxuLykgeworICAgICAgICAg
ICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMS4kMiQzIjsKKyAgICAgICAgICAgICRmYWls
dXJlRmxhZyArPSAxIGlmICgkNCBuZSAiT0siKTsKKyAgICAgICAgfQorICAgICAgICAjIHN1Yi10
ZXN0IGZyb20gdGhlIGMtYXBpLCBvZiB0aGUgZm9ybToKKyAgICAgICAgIyBlLmcuOiAndGVzdGFw
aVsxNTQyMjoxNjkwNDc5MF0gcGFyYWxsZWxQcm9taXNlUmVzb2x2ZVRlc3QoKTogZG9uZS4nJwor
ICAgICAgICBlbHNpZiAoJGxpbmUgPX4gL1xbXGQrOlxkK1xdIChcUyspKCk6IGRvbmVcLlxuLykg
eworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS5vYmplY3RpdmUtYy4kMSI7
CisgICAgICAgIH0KKyAgICAgICAgIyBFbmQgb2YgQy1BUEkgdGVzdHMgKG1lYW5pbmcgd2UganVz
dCBmaW5pc2hlZCB0aGUgdW5ncm91cGVkIG1haW4gdGVzdHMpCisgICAgICAgIGVsc2lmICgkbGlu
ZSA9fiAvU3RhcnRpbmcgQy1BUEkgdGVzdHMgaW4gQysrLykgeworICAgICAgICAgICAgJHN1YlRl
c3ROYW1lID0gIiR0ZXN0TmFtZS5vYmplY3RpdmUtYy5tYWluIjsKKyAgICAgICAgfQorICAgICAg
ICAjIFRlc3QgY2FzZXMgaW5zaWRlIEFQSSB0ZXN0cworICAgICAgICAjIGUuZy46ICd0ZXN0YXBp
WzE1NDIyOjE2OTA0NzkwXSBURVNUOiAiMiArIDIiOiBQQVNTRUQnCisgICAgICAgIGVsc2lmICgk
bGluZSA9fiAvXFtcZCs6XGQrXF0gVEVTVDogIi4qIjogKFtBLVpdKylcbi8pIHsKKyAgICAgICAg
ICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkMSBuZSAiUEFTU0VEIiAmJiAkMSBuZSAiUEFTUyIp
OworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICAjIGUuZy46ICd0ZXN0Qml0
WG9yQW5kQW5kQXJncygwLCAwLHVpbnQzMi1tYXgpOiBPSyEnJworICAgICAgICBlbHNpZiAoJGxp
bmUgPX4gLyhcUyspKFwoLipcKSk6IChbQS1aYS16XSspIVxuLykgeworICAgICAgICAgICAgJHN1
YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMSQyIjsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyAr
PSAxIGlmICgkMyBuZSAiT0siKTsKKyAgICAgICAgfQorICAgICAgICAjIEdlbmVyYWwgdGVzdGNh
c2Ugc3RhdGVtZW50LCBmaWx0ZXJlZCB0byBleGNsdWRlIHNvbWUganVuayBsb2dnaW5nCisgICAg
ICAgICMgZS5nLjogJ1BBU1M6IERGRyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkIHdoZW4g
bm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLicnCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvKFtB
LVpdKyk6ICguKilcLipcbi8gJiYgISgkbGluZSA9fiAvW0EtWl0rOiBcZCtcbi8gfHwgJGxpbmUg
PX4gL1xbXGQrOlxkK1xdIFtBLVpdKzovKSkgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0g
IiR0ZXN0TmFtZS4kMiI7CisgICAgICAgICAgICAkZmFpbHVyZUZsYWcgKz0gMSBpZiAoJDEgbmUg
IlBBU1MiKTsKKyAgICAgICAgfQorICAgICAgICAjIGUuZy46ICd0ZXN0IGRlc2NyaXB0aW9uOiBQ
QVNTRUQnCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvLio6IChbQS1aXSspXG4vKSB7CisgICAg
ICAgICAgICAkZmFpbHVyZUZsYWcgKz0gMSBpZiAoJDEgbmUgIlBBU1NFRCIgJiYgJDEgbmUgIlBB
U1MiKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBu
ZXh0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkZWZpbmVkICRyZXBvcnREYXRheyRzdWJU
ZXN0TmFtZX0pIHsKKyAgICAgICAgICAgICRyZXBvcnREYXRheyRzdWJUZXN0TmFtZX0gPSAkZmFp
bHVyZUZsYWcgPyB7YWN0dWFsID0+ICJGQUlMIn0gOiB7YWN0dWFsID0+ICJQQVNTIn0KKyAgICAg
ICAgfQorICAgICAgICAkZmFpbHVyZUZsYWcgPSAwOworICAgIH0KKyAgICBjbG9zZShURVNUKTsK
KworICAgIGlmICgkPykgeworICAgICAgICBteSAkdGVzdFJlc3VsdCA9ICQ/OworICAgIH0KICAg
ICBteSAkZXhpdFN0YXR1cyA9IGV4aXRTdGF0dXMoJHRlc3RSZXN1bHQpOwogICAgIHByaW50ICIk
dGVzdE5hbWUgY29tcGxldGVkIHdpdGggcmM9JHRlc3RSZXN1bHQgKCRleGl0U3RhdHVzKVxuXG4i
OwogCkBAIC00MTUsNyArNTg1LDEwIEBAIHN1YiBydW5UZXN0IHsKICAgICBpZiAoJHRlc3RSZXN1
bHQgJiYgJGZhaWxGYXN0KSB7CiAgICAgICAgIHJlcG9ydFRlc3RGYWlsdXJlcygpOwogICAgICAg
ICB3cml0ZUpzb25EYXRhSWZBcHBsaWNhYmxlKCk7Ci0gICAgICAgIGV4aXQgZXhpdFN0YXR1cygk
dGVzdFJlc3VsdCk7CisKKyAgICAgICAgJGVuZFRpbWUgPSB0aW1lKCk7CisgICAgICAgIHVwbG9h
ZFJlc3VsdHMoKTsKKyAgICAgICAgZXhpdCAkZXhpdFN0YXR1czsKICAgICB9CiB9CiAKQEAgLTQ0
Niw5ICs2MTksMTMgQEAgaWYgKCRydW5UZXN0QVBJKSB7IHJ1blRlc3QoInRlc3RhcGkiLCAiYQog
IyBGaW5kIEphdmFTY3JpcHRDb3JlIGRpcmVjdG9yeQogY2hkaXJXZWJLaXQoKTsKIAorIyBGSVhN
RTogcmVwb3J0IHN0cmVzcyB0ZXN0IGZhaWx1cmVzIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQwOTYKIHJ1bkpTQ1N0cmVzc1Rlc3RzKCk7CiByZXBvcnRUZXN0RmFp
bHVyZXMoKTsKIAorJGVuZFRpbWUgPSB0aW1lKCk7Cit1cGxvYWRSZXN1bHRzKCk7CisKIGlmICgk
aXNUZXN0RmFpbGVkKSB7CiAgIGV4aXQoMSk7CiB9CkBAIC02NjYsMyArODQzLDYxIEBAIHN1YiB3
cml0ZUpzb25EYXRhSWZBcHBsaWNhYmxlCiAgICAgICAgIGNsb3NlKCRmaWxlSGFuZGxlcik7CiAg
ICAgfQogfQorCitzdWIgdXBsb2FkUmVzdWx0cworeworICAgIGlmIChub3QgZGVmaW5lZCAkcmVw
b3J0KSB7CisgICAgICAgIHByaW50ICJObyByZXBvcnQgVVJMIHNwZWNpZmllZCwgc2tpcHBpbmcg
cmVzdWx0cyB1cGxvYWRcbiI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG15ICV1
cGxvYWQgPSAoCisgICAgICAgIHZlcnNpb24gPT4gMCwKKyAgICAgICAgc3VpdGUgPT4gJ2phdmFz
Y3JpcHRjb3JlLXRlc3RzJywKKyAgICAgICAgIyBGSVhNRTogSW50ZWdyYXRlIGJyYW5jaGVzLCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDk0CisgICAgICAgICMg
RklYTUU6IEludGVncmF0ZSB0aGUgU2FmYXJpIHJlcG9zaXRvcnksIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwOTUKKyAgICAgICAgY29tbWl0cyA9PiBbeworICAg
ICAgICAgICAgcmVwb3NpdG9yeV9pZCA9PiAnd2Via2l0JywKKyAgICAgICAgICAgIGlkID0+IGRl
dGVybWluZUN1cnJlbnRTVk5SZXZpc2lvbigpLAorICAgICAgICB9XSwKKyAgICAgICAgY29uZmln
dXJhdGlvbiA9PiBjb25maWd1cmF0aW9uRm9yVXBsb2FkKCksCisgICAgICAgIHRlc3RfcmVzdWx0
cyA9PiB7CisgICAgICAgICAgICBydW5fc3RhdHMgPT4geworICAgICAgICAgICAgICAgIHN0YXJ0
X3RpbWUgPT4gJHN0YXJ0VGltZSwKKyAgICAgICAgICAgICAgICBlbmRfdGltZSA9PiAkZW5kVGlt
ZSwKKyAgICAgICAgICAgICAgICB0ZXN0c19za2lwcGVkID0+IDAsCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgcmVzdWx0cyA9PiBcJXJlcG9ydERhdGEsCisgICAgICAgIH0sCisgICAgICAg
IHRpbWVzdGFtcCA9PiAkc3RhcnRUaW1lLAorICAgICk7CisgICAgaWYgKGRlZmluZWQgJGJ1aWxk
Ym90TWFzdGVyIGFuZCBkZWZpbmVkICRidWlsZGVyTmFtZSBhbmQgZGVmaW5lZCAkYnVpbGROdW1i
ZXIgYW5kIGRlZmluZWQgJGJ1aWxkYm90V29ya2VyKSB7CisgICAgICAgICR1cGxvYWR7dGVzdF9y
ZXN1bHRzfXtkZXRhaWxzfSA9IHsKKyAgICAgICAgICAgIGJ1aWxkYm90X21hc3RlciA9PiAkYnVp
bGRib3RNYXN0ZXIsCisgICAgICAgICAgICBidWlsZGVyX25hbWUgPT4gJGJ1aWxkZXJOYW1lLAor
ICAgICAgICAgICAgYnVpbGRfbnVtYmVyID0+ICRidWlsZE51bWJlciwKKyAgICAgICAgICAgIGJ1
aWxkYm90X3dvcmtlciA9PiAkYnVpbGRib3RXb3JrZXIsCisgICAgICAgIH07CisgICAgfSBlbHNl
IHsKKyAgICAgICAgcHJpbnQgIiAgICBObyBidWlsZGJvdCBkZXRhaWxzIHByb3ZpZGVkLCB0ZXN0
IHJ1biB3aWxsIG5vdCBiZSBsaW5rZWQgdG8gQ0kgc3lzdGVtXG4iOworICAgIH0KKyAgICBpZiAo
ZGVmaW5lZCAkRU5WeydSRVNVTFRTX1NFUlZFUl9BUElfS0VZJ30pIHsKKyAgICAgICAgJHVwbG9h
ZHsnYXBpX2tleSd9ID0gJEVOVnsnUkVTVUxUU19TRVJWRVJfQVBJX0tFWSd9OworICAgIH0KKwor
ICAgIHByaW50ICJVcGxvYWRpbmcgcmVzdWx0cyB0byAkcmVwb3J0XG4iOworCisgICAgb3BlbihI
QU5ETEUsICJ8LSIsICJjdXJsIC1YIFBPU1QgJHJlcG9ydC9hcGkvdXBsb2FkIC1IICdDb250ZW50
LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIC1mIC1kICdcQC0nIikgb3IgZGllICJGYWlsZWQgdG8g
b3BlbiBjdXJsIjsKKworICAgICMgSnNvbiBjb25mb3JtaW5nIHRvIGh0dHBzOi8vcmVzdWx0cy53
ZWJraXQub3JnL2RvY3VtZW50YXRpb24jQVBJLVVwbG9hZHMuCisgICAgbXkgJGVuY29kZWRVcGxv
YWQgPSBlbmNvZGVfanNvbihcJXVwbG9hZCk7CisgICAgcHJpbnQgSEFORExFICIkZW5jb2RlZFVw
bG9hZFxuXDAiOworICAgIG15ICRzdWNjZXNzID0gY2xvc2UgSEFORExFOworCisgICAgaWYgKCRz
dWNjZXNzKSB7CisgICAgICAgIHByaW50ICJVcGxvYWQgc3VjY2Vzc2Z1bCFcbiI7CisgICAgICAg
IHJldHVybiAwOworICAgIH0KKyAgICBwcmludCAiVXBsb2FkIHRvICRyZXBvcnQgZmFpbGVkXG4i
OworICAgIHJldHVybiAxOworfQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gMjUyMzY4
KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYz
LDEwICsxNTYzLDEwIEBAIHN1YiBzcGxpdFZlcnNpb25TdHJpbmcKICAgICBteSAkdmVyc2lvblN0
cmluZyA9IHNoaWZ0OwogICAgIG15IEBzcGxpdFZlcnNpb24gPSBzcGxpdCgvXC4vLCAkdmVyc2lv
blN0cmluZyk7CiAgICAgQHNwbGl0VmVyc2lvbiA+PSAyIG9yIGRpZSAiSW52YWxpZCB2ZXJzaW9u
ICR2ZXJzaW9uU3RyaW5nIjsKLSAgICAkb3NYVmVyc2lvbiA9IHsKLSAgICAgICAgICAgICJtYWpv
ciIgPT4gJHNwbGl0VmVyc2lvblswXSwKLSAgICAgICAgICAgICJtaW5vciIgPT4gJHNwbGl0VmVy
c2lvblsxXSwKLSAgICAgICAgICAgICJzdWJtaW5vciIgPT4gKGRlZmluZWQoJHNwbGl0VmVyc2lv
blsyXSkgPyAkc3BsaXRWZXJzaW9uWzJdIDogMCksCisgICAgcmV0dXJuIHsKKyAgICAgICAgIm1h
am9yIiA9PiAkc3BsaXRWZXJzaW9uWzBdLAorICAgICAgICAibWlub3IiID0+ICRzcGxpdFZlcnNp
b25bMV0sCisgICAgICAgICJzdWJtaW5vciIgPT4gKGRlZmluZWQoJHNwbGl0VmVyc2lvblsyXSkg
PyAkc3BsaXRWZXJzaW9uWzJdIDogMCksCiAgICAgfTsKIH0KIApAQCAtMTU3OSw3ICsxNTc5LDcg
QEAgc3ViIGRldGVybWluZU9TWFZlcnNpb24oKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgbXkgJHZlcnNpb25TdHJpbmcgPSBgc3dfdmVycyAtcHJvZHVjdFZlcnNpb25gOworICAgIGNo
b21wKG15ICR2ZXJzaW9uU3RyaW5nID0gYHN3X3ZlcnMgLXByb2R1Y3RWZXJzaW9uYCk7CiAgICAg
JG9zWFZlcnNpb24gPSBzcGxpdFZlcnNpb25TdHJpbmcoJHZlcnNpb25TdHJpbmcpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383573</attachid>
            <date>2019-11-14 13:46:48 -0800</date>
            <delta_ts>2019-11-14 17:07:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204091-20191114134647.patch</filename>
            <type>text/plain</type>
            <size>17199</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0JKHJldmlz
aW9uIDI1MjQ2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjc4Nyw3ICsyNzg3LDcgQEAgc3RhdGljIHZvaWQgdGVzdFRv
U3RyaW5nKCkKICAgICAgICAgY2hlY2tSZXN1bHQoQCJjb252ZXJ0aW5nIGFuIG9iamVjdCB3aXRo
IGFuIGV4cG9ydGVkIGN1c3RvbSB0b09iamVjdCBwcm9wZXJ0eSBzaG91bGQgdXNlIHRoYXQgbWV0
aG9kIiwgW1t0b1N0cmluZ0NsYXNzIHRvU3RyaW5nXSBpc0VxdWFsVG9TdHJpbmc6QCJmb28iXSk7
CiAKICAgICAgICAgdG9TdHJpbmdDbGFzcyA9IFtKU1ZhbHVlIHZhbHVlV2l0aE9iamVjdDpbW1Rv
U3RyaW5nU3ViY2xhc3MgYWxsb2NdIGluaXRdIGluQ29udGV4dDpjb250ZXh0XTsKLSAgICAgICAg
Y2hlY2tSZXN1bHQoQCJDYWxsaW5nIGEgbWV0aG9kIG9uIGEgZGVyaXZlZCBjbGFzcyBzaG91bGQg
Y2FsbCB0aGUgZGVyaXZlZCBpbXBsZW1lbnRhdGlvbiIsIFtbdG9TdHJpbmdDbGFzcyBpbnZva2VN
ZXRob2Q6QCJ0b1N0cmluZyIgd2l0aEFyZ3VtZW50czpAW11dIGlzRXF1YWxUb09iamVjdDpAImJh
eiJdKTsKKyAgICAgICAgY2hlY2tSZXN1bHQoQCJDYWxsaW5nIGEgbWV0aG9kIG9uIGEgZGVyaXZl
ZCBjbGFzcyBzaG91bGQgY2FsbCB0aGUgZGVyaXZlZCBpbXBsZW1lbnRhdGlvbiIsIFtbdG9TdHJp
bmdDbGFzcyBpbnZva2VNZXRob2Q6QCJ0b1N0cmluZyIgd2l0aEFyZ3VtZW50czpAW11dIGlzRXF1
YWxUb09iamVjdDpAImJhemluZ2EiXSk7CiAgICAgICAgIGNoZWNrUmVzdWx0KEAiQ29udmVydGlu
ZyBhbiBvYmplY3Qgd2l0aCBhbiBleHBvcnRlZCBjdXN0b20gdG9PYmplY3QgcHJvcGVydHkgc2hv
dWxkIHVzZSB0aGF0IG1ldGhvZCIsIFtbdG9TdHJpbmdDbGFzcyB0b1N0cmluZ10gaXNFcXVhbFRv
U3RyaW5nOkAiYmF6Il0pOwogICAgICAgICBjb250ZXh0W0AidG9TdHJpbmdWYWx1ZSJdID0gdG9T
dHJpbmdDbGFzczsKICAgICAgICAgSlNWYWx1ZSAqaGFzT3duUHJvcGVydHkgPSBbY29udGV4dCBl
dmFsdWF0ZVNjcmlwdDpAInRvU3RyaW5nVmFsdWUuX19wcm90b19fLmhhc093blByb3BlcnR5KCd0
b1N0cmluZycpIl07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5j
cHAJKHJldmlzaW9uIDI1MjQ2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVz
dGFpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIHRlc3RTaHVm
ZmxlU2ltcGxlQnJvYWRjYXN0KCkKICAgICAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MpKTsKIAotICAgIENIRUNLKHRoaW5nc1swXSA9PSAxKTsKKyAgICBDSEVDSyh0aGluZ3Nb
MF0gPT0gMik7CiAgICAgQ0hFQ0sodGhpbmdzWzFdID09IDEpOwogICAgIENIRUNLKHRoaW5nc1sy
XSA9PSAxKTsKICAgICBDSEVDSyh0aGluZ3NbM10gPT0gMSk7CkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTI0NjMpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0xMS0x
MSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisKKyAgICAgICAgcmVzdWx0
cy53ZWJraXQub3JnOiBSZXBvcnQgSlNDIHRlc3RzIHRvIHRoZSByZXN1bHRzIGRhdGFiYXNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwOTEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5Nzc4OTAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwbG9hZCByZXN1bHRzIHRvIHRoZSBzcGVjaWZpZWQg
cmVzdWx0cyBkYXRhYmFzZS4KKworICAgICAgICBERU1PTlNUUkFUSU9OIE9GIEZBSUxVUkUgSU4g
RVdTIEJFSEFWSU9SLCBETyBOT1QgTEFORCEKKworICAgICAgICAqIFNjcmlwdHMvcnVuLWphdmFz
Y3JpcHRjb3JlLXRlc3RzOgorICAgICAgICAocnVuVGVzdCk6IFBhcnNlIGJpbmFyeSBvdXRwdXQg
dG8gbWFyayBpbmRpdmlkdWFsIHRlc3RzIGFzIHBhc3NpbmcKKyAgICAgICAgb3IgZmFpbGluZy4K
KyAgICAgICAgKHVwbG9hZENvbmZpZ3VyYXRpb24pOiBSZXR1cm4gYSBoYXNoIG1hcCByZXByZXNl
bnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgRm9yIHRoaXMgc3BlY2lmaWMgdGVzdCBy
dW4uCisgICAgICAgICh1cGxvYWRSZXN1bHRzKTogSWYgYSByZXBvcnQgVVJMIGlzIGRlZmluZWQs
IHVwbG9hZCB0ZXN0IHJlc3VsdHMgdG8gdGhhdCBVUkwuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRkaXJzLnBtOgorICAgICAgICAoc3BsaXRWZXJzaW9uU3RyaW5nKTogc3BsaXRWZXJzaW9uU3Ry
aW5nIGlzIHN1cHBvc2VkIHRvIGJlIGEgZ2VuZXJhbGx5IHVzZWQKKyAgICAgICAgZnVuY3Rpb24s
IHNvIHNob3VsZCBub3Qgc2V0IGEgZ2xvYmFsIHZhcmlhYmxlLgorICAgICAgICAoZGV0ZXJtaW5l
T1NYVmVyc2lvbik6IFJlbW92ZSBuZXdsaW5lIGZyb20gdmVyc2lvbiBudW1iZXIuCisKIDIwMTkt
MTEtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFN1bW1h
cnk6IFdLV2ViVmlldyBpcyBtaXNzaW5nIGFuIGVxdWl2YWxlbnQgdG8gV2ViS2l0IDEncyBBUEkg
dG8gc2V0IHRoZSBtZWRpYSBzdHlsZS4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3Jp
cHRjb3JlLXRlc3RzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRj
b3JlLXRlc3RzCShyZXZpc2lvbiAyNTI0NjMpCisrKyBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2Ny
aXB0Y29yZS10ZXN0cwkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsMTIgQEAgbXkgJHJ1YnlS
dW5uZXI7CiBteSAkdGVzdFdyaXRlcjsKIG15ICRtZW1vcnlMaW1pdGVkOwogCitteSAkcmVwb3J0
OworbXkgJGJ1aWxkYm90TWFzdGVyOworbXkgJGJ1aWxkZXJOYW1lOworbXkgJGJ1aWxkTnVtYmVy
OworbXkgJGJ1aWxkYm90V29ya2VyOworCiBteSAkYnVpbGRKU0MgPSAxOwogbXkgJGNvcHlKU0Mg
PSAxOwogCkBAIC05MSw4ICs5NywxMiBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRoID0gIi91c3Iv
bGliL2xpYmdtCiBteSAkY3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9zdCA9IDA7CiBt
eSAkbW9kZWwgPSAwOworbXkgJHZlcnNpb247CitteSAkdmVyc2lvbk5hbWU7CitteSAkc2RrOwog
bXkgJGZhaWxGYXN0ID0gMTsKIG15ICVqc29uRGF0YSA9ICgpOworbXkgJXJlcG9ydERhdGEgPSAo
KTsKIG15IEB0ZXN0UmVzdWx0cyA9ICgpOwogbXkgJGlzVGVzdEZhaWxlZCA9IDA7CiBteSAkcmVt
b3RlQ29uZmlnRmlsZTsKQEAgLTIzMSw2ICsyNDEsOSBAQCBVc2FnZTogJHByb2dyYW1OYW1lIFtv
cHRpb25zXSBbb3B0aW9ucyB0CiAgIC0tcmVtb3RlPSAgICAgICAgICAgICAgICAgICAgIFJ1biB0
aGUgSlNDIHN0cmVzcyB0ZXN0cyBvbiB0aGUgc3BlY2lmaWVkIHJlbW90ZSBob3N0LiBJbXBsaWVz
IC0tdGFyYmFsbC4KICAgLS1yZW1vdGUtY29uZmlnLWZpbGU9ICAgICAgICAgU2FtZSBhcyByZW1v
dGUsIGJ1dCByZWFkIGNvbmZpZyBmcm9tIEpTT04gZmlsZS4KICAgLS1tb2RlbD0gICAgICAgICAg
ICAgICAgICAgICAgU3BlY2lmeSByZW1vdGUgaGFyZHdhcmUgbW9kZWwsIHRoaXMgaW5mbyB1c2Vk
IGZvciBkZXRlcm1pbmUgd2hhdCBqc2MgdGVzdHMgc2hvdWxkIHJ1biBvbiByZW1vdGUKKyAgLS12
ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgU3BlY2lmeSB0aGUgdmVyc2lvbiBudW1iZXIgb2Yg
dGhlIGRldmljZSBydW5uaW5nIHRlc3RzLgorICAtLXZlcnNpb24tbmFtZSAgICAgICAgICAgICAg
ICBTcGVjaWZ5IHRoZSB2ZXJzaW9uIG5hbWUgb2YgdGhlIGhhcmR3YXJlIHJ1bm5pbmcgdGVzdHMu
CisgIC0tc2RrICAgICAgICAgICAgICAgICAgICAgICAgIFNwZWNpZmljIFNESyBvciBPUyB2ZXJz
aW9uIG9mIHRoZSBmb3JtICMjKiMjIwogICAtLWV4dHJhLXRlc3RzPSAgICAgICAgICAgICAgICBQ
YXRoIHRvIGEgZmlsZSBjb250YWluaW5nIGV4dHJhIHRlc3RzCiAgIC0tY2hpbGQtcHJvY2Vzc2Vz
PSAgICAgICAgICAgIFNwZWNpZnkgdGhlIG51bWJlciBvZiBjaGlsZCBwcm9jZXNzZXMuCiAgIC0t
c2hlbGwtcnVubmVyICAgICAgICAgICAgICAgIFVzZXMgdGhlIHNoZWxsLWJhc2VkIHRlc3QgcnVu
bmVyIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgbWFrZS1iYXNlZCBydW5uZXIuCkBAIC0yNTIsNiAr
MjY1LDEyIEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHQKICAgLS1n
bWFsbG9jOiAgICAgICAgICAgICAgICAgICAgUnVuIHRlc3RzIHdpdGggR3VhcmQgTWFsbG9jIGVu
YWJsZWQgKGlmIG5vIHBhdGggaXMgZ2l2ZW46ICRnbWFsbG9jRGVmYXVsdFBhdGggaXMgdXNlZCkK
ICAgLS12ZXJib3NlOiAgICAgICAgICAgICAgICAgICAgVmVyYm9zZSBvdXRwdXQgKHNwZWNpZnkg
bW9yZSB0aGFuIG9uY2UgdG8gaW5jcmVhc2UgdmVyYm9zaXR5KS4KIAorICAtLXJlcG9ydDogICAg
ICAgICAgICAgICAgICAgICBSZXN1bHRzIGRhdGFiYXNlIHVybCB0byByZXBvcnQgcmVzdWx0cyB0
by4KKyAgLS1idWlsZGJvdC1tYXN0ZXI6ICAgICAgICAgICAgVGhlIHVybCBvZiB0aGUgYnVpbGRi
b3QgbWFzdGVyLgorICAtLWJ1aWxkZXItbmFtZTogICAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0
aGUgYnVpbGRib3QgYnVpbGRlciB0ZXN0cyB3ZXJlIHJ1biBvbi4KKyAgLS1idWlsZC1udW1iZXI6
ICAgICAgICAgICAgICAgVGhlIGJ1aWxkYm90IGJ1aWxkIG51bWJlciB0ZXN0cyBhcmUgYXNzb2Np
YXRlZCB3aXRoLgorICAtLWJ1aWxkYm90LXdvcmtlcjogICAgICAgICAgICBUaGUgYnVpbGRib3Qg
d29ya2VyIHRlc3RzIHdlcmUgcnVuIG9uLgorCiBFbnZpcm9ubWVudCBWYXJpYWJsZXM6CiAgIC0g
c2V0IFJVTl9KQVZBU0NSSVBUQ09SRV9URVNUU19URVNUTUFTTSB0byAidHJ1ZSIgb3IgImZhbHNl
IiAobm8gcXVvdGVzKSB0byBkZXRlcm1pbmUgaWYgd2UgcnVuIHRlc3RtYXNtIGJ5IGRlZmF1bHQu
CiAgIC0gc2V0IFJVTl9KQVZBU0NSSVBUQ09SRV9URVNUU19URVNUQUlSIHRvICJ0cnVlIiBvciAi
ZmFsc2UiIChubyBxdW90ZXMpIHRvIGRldGVybWluZSBpZiB3ZSBydW4gdGVzdGFpciBieSBkZWZh
dWx0LgpAQCAtMjg5LDYgKzMwOCw5IEBAIEdldE9wdGlvbnMoCiAgICAgJ3RhcmJhbGwhJyA9PiBc
JGNyZWF0ZVRhcmJhbGwsCiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhvc3QsCiAgICAgJ21v
ZGVsPXMnID0+IFwkbW9kZWwsCisgICAgJ3ZlcnNpb249cycgPT4gXCR2ZXJzaW9uLAorICAgICd2
ZXJzaW9uLW5hbWU9cycgPT4gXCR2ZXJzaW9uTmFtZSwKKyAgICAnc2RrPXMnID0+IFwkc2RrLAog
ICAgICdyZW1vdGUtY29uZmlnLWZpbGU9cycgPT4gXCRyZW1vdGVDb25maWdGaWxlLAogICAgICdj
aGlsZC1wcm9jZXNzZXM9cycgPT4gXCRjaGlsZFByb2Nlc3NlcywKICAgICAnc2hlbGwtcnVubmVy
JyA9PiBcJHNoZWxsUnVubmVyLApAQCAtMzAwLDcgKzMyMiwxMiBAQCBHZXRPcHRpb25zKAogICAg
ICdoZWxwJyA9PiBcJHNob3dIZWxwLAogICAgICdlbnYtdmFycz1zJyA9PiBcJGVudlZhcnMsCiAg
ICAgJ2dtYWxsb2M6cycgPT4gXCRnbWFsbG9jUGF0aCwKLSAgICAndmVyYm9zZSsnID0+IFwkdmVy
Ym9zZQorICAgICd2ZXJib3NlKycgPT4gXCR2ZXJib3NlLAorICAgICdyZXBvcnQ9cycgPT4gXCRy
ZXBvcnQsCisgICAgJ2J1aWxkYm90LW1hc3Rlcj1zJyA9PiBcJGJ1aWxkYm90TWFzdGVyLAorICAg
ICdidWlsZGVyLW5hbWU9cycgPT4gXCRidWlsZGVyTmFtZSwKKyAgICAnYnVpbGQtbnVtYmVyPXMn
ID0+IFwkYnVpbGROdW1iZXIsCisgICAgJ2J1aWxkYm90LXdvcmtlcj1zJyA9PiBcJGJ1aWxkYm90
V29ya2VyLAogKTsKIAogCkBAIC0zMTUsNiArMzQyLDEwIEBAIGlmICgkcnVuVGVzdE1hc20gPT0g
RE9fUlVOCiAgICAgJHNwZWNpZmljVGVzdHNTcGVjaWZpZWQgPSAxOwogfQogCitpZiAoJHZlcnNp
b24pIHsKKyAgICAkdmVyc2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7Cit9CisK
IHN1YiBlbmFibGVUZXN0T3JOb3QgewogICAgIG15ICgkc3RhdGUpID0gQF87CiAgICAgaWYgKCRz
dGF0ZSA9PSBSVU5fSUZfTk9fVEVTVFNfU1BFQ0lGSUVEIHx8ICRzdGF0ZSA9PSBFTlZfVkFSX1NB
WVNfRE9fUlVOKSB7CkBAIC0zMjUsNiArMzU2LDg2IEBAIHN1YiBlbmFibGVUZXN0T3JOb3Qgewog
ICAgIHJldHVybiAkc3RhdGU7CiB9CiAKK3N1YiBjb25maWd1cmF0aW9uRm9yVXBsb2FkKCkKK3sK
KyAgICBteSAkcGxhdGZvcm07CisgICAgbXkgJHNkazsKKyAgICBteSAkc2ltdWxhdG9yID0gMDsK
KworICAgIGlmIChpbmRleCh4Y29kZVNES1BsYXRmb3JtTmFtZSgpLCAic2ltdWxhdG9yIikgIT0g
LTEpIHsKKyAgICAgICAgJHNpbXVsYXRvciA9IDE7CisgICAgfQorCisgICAgaWYgKGluZGV4KCRt
b2RlbCwgJ2lQaG9uZScpICE9IC0xIHx8IGluZGV4KCRtb2RlbCwgJ2lQYWQnKSAhPSAtMSkgewor
ICAgICAgICAkcGxhdGZvcm0gPSAnaW9zJzsKKyAgICAgICAgaWYgKCEkdmVyc2lvbikgeworICAg
ICAgICAgICAgJHZlcnNpb24gPSBpb3NWZXJzaW9uKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2lm
IChpbmRleCgkbW9kZWwsICd3YXRjaCcpICE9IC0xIHx8IGluZGV4KHhjb2RlU0RLUGxhdGZvcm1O
YW1lKCksICJ3YXRjaCIpICE9IC0xKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICd3YXRjaG9zJzsK
KyAgICAgICAgZGllICJObyB3YXRjaE9TIHZlcnNpb24gc3BlY2lmaWVkIiBpZiAhJHZlcnNpb247
CisgICAgfSBlbHNpZiAoaW5kZXgoeGNvZGVTREtQbGF0Zm9ybU5hbWUoKSwgImFwcGxldHYiKSAh
PSAtMSkgeworICAgICAgICAkcGxhdGZvcm0gPSAndHZvcyc7CisgICAgICAgIGRpZSAiTm8gdHZP
UyB2ZXJzaW9uIHNwZWNpZmllZCIgaWYgISR2ZXJzaW9uOworICAgIH0gZWxzaWYgKGlzR3RrKCkp
IHsKKyAgICAgICAgJHBsYXRmb3JtID0gJ0dUSyc7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsK
KyAgICAgICAgICAgIGNob21wKCR2ZXJzaW9uID0gYC91c3IvYmluL3VuYW1lIC1yYCk7CisgICAg
ICAgICAgICAkdmVyc2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7CisgICAgICAg
IH0KKyAgICB9IGVsc2lmIChpc1dQRSgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICdXUEUnOwor
ICAgICAgICBpZiAoISR2ZXJzaW9uKSB7CisgICAgICAgICAgICBjaG9tcCgkdmVyc2lvbiA9IGAv
dXNyL2Jpbi91bmFtZSAtcmApOworICAgICAgICAgICAgJHZlcnNpb24gPSBzcGxpdFZlcnNpb25T
dHJpbmcoJHZlcnNpb24pOworICAgICAgICB9CisgICAgfSBlbHNpZiAoaXNBbnlXaW5kb3dzKCkp
IHsKKyAgICAgICAgJHBsYXRmb3JtID0gJ3dpbic7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsK
KyAgICAgICAgICAgICR2ZXJzaW9uID0gd2luVmVyc2lvbigpOworICAgICAgICB9CisgICAgfSBl
bHNpZiAoaXNBcHBsZU1hY1dlYktpdCgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICdtYWMnOwor
ICAgICAgICBjaG9tcCgkbW9kZWwgPSBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5tb2RlbGApOwor
ICAgICAgICBpZiAoISR2ZXJzaW9uKSB7CisgICAgICAgICAgICAkdmVyc2lvbiA9IG9zWFZlcnNp
b24oKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoISRzZGspIHsKKyAgICAgICAgICAgIGNob21w
KCRzZGsgPSBgL3Vzci9iaW4vc3dfdmVycyAtYnVpbGRWZXJzaW9uYCk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoISR2ZXJzaW9uTmFtZSkgeworICAgICAgICAgICAgaWYgKCR2ZXJzaW9uLT57
bWlub3J9IGVxIDE1KSB7CisgICAgICAgICAgICAgICAgJHZlcnNpb25OYW1lID0gIkNhdGFsaW5h
IjsKKyAgICAgICAgICAgIH0gZWxzaWYgKCR2ZXJzaW9uLT57bWlub3J9IGVxIDE0KSB7CisgICAg
ICAgICAgICAgICAgJHZlcnNpb25OYW1lID0gIk1vamF2ZSI7CisgICAgICAgICAgICB9IGVsc2lm
ICgkdmVyc2lvbi0+e21pbm9yfSBlcSAxMykgeworICAgICAgICAgICAgICAgICR2ZXJzaW9uTmFt
ZSA9ICJIaWdoIFNpZXJyYSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2Ug
eworICAgICAgICBkaWUgIkNhbm5vdCBkZXRlcm1pbmUgcGxhdGZvcm1cbiI7CisgICAgfQorCisg
ICAgbXkgJHJlc3VsdCA9IHsKKyAgICAgICAgcGxhdGZvcm0gPT4gJHBsYXRmb3JtLAorICAgICAg
ICBhcmNoaXRlY3R1cmUgPT4gYXJjaGl0ZWN0dXJlKCksCisgICAgICAgIGlzX3NpbXVsYXRvciA9
PiAkc2ltdWxhdG9yLAorICAgICAgICBzdHlsZSA9PiBsYyhjb25maWd1cmF0aW9uKCkpLAorICAg
ICAgICB2ZXJzaW9uID0+ICIkdmVyc2lvbi0+e21ham9yfS4kdmVyc2lvbi0+e21pbm9yfS4kdmVy
c2lvbi0+e3N1Ym1pbm9yfSIsCisgICAgfTsKKyAgICBpZiAoJG1vZGVsKSB7CisgICAgICAgICRy
ZXN1bHQtPnttb2RlbH0gPSAkbW9kZWw7CisgICAgfQorICAgIGlmICgkdmVyc2lvbk5hbWUpIHsK
KyAgICAgICAgJHJlc3VsdC0+e3ZlcnNpb25fbmFtZX0gPSAkdmVyc2lvbk5hbWU7CisgICAgfQor
ICAgIGlmICgkc2RrKSB7CisgICAgICAgICRyZXN1bHQtPntzZGt9ID0gJHNkazsKKyAgICB9Cisg
ICAgcmV0dXJuICRyZXN1bHQ7Cit9CisKICRydW5UZXN0TWFzbSA9IGVuYWJsZVRlc3RPck5vdCgk
cnVuVGVzdE1hc20pOwogJHJ1blRlc3RBaXIgPSBlbmFibGVUZXN0T3JOb3QoJHJ1blRlc3RBaXIp
OwogJHJ1blRlc3RCMyA9IGVuYWJsZVRlc3RPck5vdCgkcnVuVGVzdEIzKTsKQEAgLTM0Miw2ICs0
NTMsNyBAQCBpZiAoJHNob3dIZWxwKSB7CiB9CiAKIHNldENvbmZpZ3VyYXRpb25Qcm9kdWN0RGly
KEN3ZDo6YWJzX3BhdGgoJHJvb3QpKSBpZiAoZGVmaW5lZCgkcm9vdCkpOworY29uZmlndXJhdGlv
bkZvclVwbG9hZCgpIGlmIChkZWZpbmVkKCRyZXBvcnQpKTsKIAogaWYgKGRlZmluZWQoJGpzb25G
aWxlTmFtZSkpIHsKICAgICAkanNvbkZpbGVOYW1lID0gRmlsZTo6U3BlYy0+cmVsMmFicygkanNv
bkZpbGVOYW1lKTsKQEAgLTM3NCw2ICs0ODYsOSBAQCAkRU5We0pTQ1RFU1RfdGltZW91dH0gPSAx
MjAgdW5sZXNzICRFTlZ7CiAkRU5We1RafT0iVVMvUGFjaWZpYyI7ICMgU29tZSB0ZXN0cyBmYWls
IGlmIHRoZSB0aW1lIHpvbmUgaXMgbm90IHNldCB0byBVUy9QYWNpZmljICg8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMTM2MzYzPikKIHNldFBhdGhGb3JSdW5uaW5nV2ViS2l0QXBwKFwlRU5WKSBpZiBp
c0N5Z3dpbigpOwogCitteSAkc3RhcnRUaW1lID0gdGltZSgpOworbXkgJGVuZFRpbWUgPSAkc3Rh
cnRUaW1lOworCiBzdWIgdGVzdFBhdGggewogICAgIG15ICgkcHJvZHVjdERpciwgJHRlc3ROYW1l
KSA9IEBfOwogICAgICR0ZXN0TmFtZSAuPSAiX2RlYnVnIiBpZiBjb25maWd1cmF0aW9uKCkgZXEg
IkRlYnVnX0FsbCI7CkBAIC0zOTcsOSArNTEyLDg4IEBAIHN1YiBydW5UZXN0IHsKICAgICAgICAg
fQogICAgIH0KIAotICAgICMgVXNlIGFuICJpbmRpcmVjdCBvYmplY3QiIHNvIHRoYXQgc3lzdGVt
KCkgd29uJ3QgZ2V0IGNvbmZ1c2VkIGlmIHRoZSBwYXRoCi0gICAgIyBjb250YWlucyBzcGFjZXMg
KHNlZSBwZXJsZG9jIC1mIGV4ZWMpLgotICAgIG15ICR0ZXN0UmVzdWx0ID0gc3lzdGVtIHsgJGNv
bW1hbmRbMF0gfSBAY29tbWFuZDsKKyAgICBteSAkdGVzdFJlc3VsdCA9IDA7CisgICAgbXkgJGZh
aWx1cmVGbGFnID0gMDsKKyAgICBteSAkbGFzdE9wdGltaXplTGV2ZWw7CisKKyAgICBvcGVuKFRF
U1QsICItfCIsICJAY29tbWFuZCAyPiYxIikgb3IgZGllICJGYWlsZWQgdG8gcnVuIEBjb21tYW5k
IjsKKyAgICB3aGlsZSAoIG15ICRsaW5lID0gPFRFU1Q+ICkgeworICAgICAgICBteSAkc3ViVGVz
dE5hbWU7CisgICAgICAgIHByaW50ICRsaW5lOworCisgICAgICAgICMgZS5nLjogJ08yOiB0ZXN0
Um90UldpdGhJbW1TaGlmdCh1aW50NjQtbWF4LCB1aW50MzItbWluKTogT0shJycKKyAgICAgICAg
aWYgKCRsaW5lID1+IC8oT1xkKTogKFxTKykoXCguKlwpKTogKFtBLVphLXpdKykhXG4vKSB7Cisg
ICAgICAgICAgICAkbGFzdE9wdGltaXplTGV2ZWwgPSAkMTsKKyAgICAgICAgICAgICRzdWJUZXN0
TmFtZSA9ICIkdGVzdE5hbWUuJDEuJDIkMyI7CisgICAgICAgICAgICAkZmFpbHVyZUZsYWcgKz0g
MSBpZiAoJDQgbmUgIk9LIik7CisgICAgICAgIH0KKyAgICAgICAgIyBBc3NlcnRpb24gaW4gYmlu
YXJ5CisgICAgICAgICMgZS5nLjogQVNTRVJUSU9OIEZBSUxFRDogdGhpbmdzWzBdID09IDIKKyAg
ICAgICAgZWxzaWYgKCRsaW5lID1+IC9BU1NFUlRJT04gRkFJTEVEOi8pIHsKKyAgICAgICAgICAg
ICRmYWlsdXJlRmxhZyArPSAxOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAg
ICAjIGUuZy46IGZpbGUvcGF0aCgzOTcpIDogdm9pZCAoYW5vbnltb3VzIG5hbWVzcGFjZSk6OnRl
c3RTaHVmZmxlU2ltcGxlQnJvYWRjYXN0KCkKKyAgICAgICAgZWxzaWYgKCRmYWlsdXJlRmxhZyAm
JiAkbGluZSA9fiAvLipcKFxkK1wpIDogXFMrIC4qOjooXFMrKShcKC4qXCkpLykgeworICAgICAg
ICAgICAgaWYgKGRlZmluZWQgJGxhc3RPcHRpbWl6ZUxldmVsKSB7CisgICAgICAgICAgICAgICAg
JHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kbGFzdE9wdGltaXplTGV2ZWwuJDEkMiI7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRzdWJUZXN0TmFtZSA9ICIkdGVzdE5h
bWUuJDEkMiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgIyBzdWItdGVzdCBm
cm9tIHRoZSBjLWFwaSwgb2YgdGhlIGZvcm06CisgICAgICAgICMgZS5nLjogJ3Rlc3RhcGlbMTU0
MjI6MTY5MDQ3OTBdIHBhcmFsbGVsUHJvbWlzZVJlc29sdmVUZXN0KCk6IGRvbmUuJycKKyAgICAg
ICAgZWxzaWYgKCRsaW5lID1+IC9cW1xkKzpcZCtcXSAoXFMrKSgpOiBkb25lXC5cbi8pIHsKKyAg
ICAgICAgICAgICRzdWJUZXN0TmFtZSA9ICIkdGVzdE5hbWUub2JqZWN0aXZlLWMuJDEiOworICAg
ICAgICB9CisgICAgICAgICMgRW5kIG9mIEMtQVBJIHRlc3RzIChtZWFuaW5nIHdlIGp1c3QgZmlu
aXNoZWQgdGhlIHVuZ3JvdXBlZCBtYWluIHRlc3RzKQorICAgICAgICBlbHNpZiAoJGxpbmUgPX4g
L1N0YXJ0aW5nIEMtQVBJIHRlc3RzIGluIEMrKy8pIHsKKyAgICAgICAgICAgICRzdWJUZXN0TmFt
ZSA9ICIkdGVzdE5hbWUub2JqZWN0aXZlLWMubWFpbiI7CisgICAgICAgIH0KKyAgICAgICAgIyBF
bmQgb2YgdGVzdGFwaQorICAgICAgICAjIGUuZy46IEZBSUw6IFNvbWUgdGVzdHMgZmFpbGVkLgor
ICAgICAgICBlbHNpZiAoJGxpbmUgPX4gL0ZBSUw6IFNvbWUgdGVzdHMgZmFpbGVkXC4vKSB7Cisg
ICAgICAgICAgICAkZmFpbHVyZUZsYWcgPSAwOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAg
fQorICAgICAgICAjIFRlc3QgY2FzZXMgaW5zaWRlIEFQSSB0ZXN0cworICAgICAgICAjIGUuZy46
ICd0ZXN0YXBpWzE1NDIyOjE2OTA0NzkwXSBURVNUOiAiMiArIDIiOiBQQVNTRUQnCisgICAgICAg
IGVsc2lmICgkbGluZSA9fiAvXFtcZCs6XGQrXF0gVEVTVDogIi4qIjogKFtBLVpdKylcbi8pIHsK
KyAgICAgICAgICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkMSBuZSAiUEFTU0VEIiAmJiAkMSBu
ZSAiUEFTUyIpOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICAjIGUuZy46
ICd0ZXN0Qml0WG9yQW5kQW5kQXJncygwLCAwLHVpbnQzMi1tYXgpOiBPSyEnJworICAgICAgICBl
bHNpZiAoJGxpbmUgPX4gLyhcUyspKFwoLipcKSk6IChbQS1aYS16XSspIVxuLykgeworICAgICAg
ICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMSQyIjsKKyAgICAgICAgICAgICRmYWls
dXJlRmxhZyArPSAxIGlmICgkMyBuZSAiT0siKTsKKyAgICAgICAgfQorICAgICAgICAjIEdlbmVy
YWwgdGVzdGNhc2Ugc3RhdGVtZW50LCBmaWx0ZXJlZCB0byBleGNsdWRlIHNvbWUganVuayBsb2dn
aW5nCisgICAgICAgICMgZS5nLjogJ1BBU1M6IERGRyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVj
dGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLicnCisgICAgICAgIGVsc2lmICgkbGlu
ZSA9fiAvKFtBLVpdKyk6ICguKilcLipcbi8gJiYgISgkbGluZSA9fiAvW0EtWl0rOiBcZCtcbi8g
fHwgJGxpbmUgPX4gL1xbXGQrOlxkK1xdIFtBLVpdKzovKSkgeworICAgICAgICAgICAgJHN1YlRl
c3ROYW1lID0gIiR0ZXN0TmFtZS4kMiI7CisgICAgICAgICAgICAkZmFpbHVyZUZsYWcgKz0gMSBp
ZiAoJDEgbmUgIlBBU1MiKTsKKyAgICAgICAgfQorICAgICAgICAjIGUuZy46ICd0ZXN0IGRlc2Ny
aXB0aW9uOiBQQVNTRUQnCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvLio6IChbQS1aXSspXG4v
KSB7CisgICAgICAgICAgICAkZmFpbHVyZUZsYWcgKz0gMSBpZiAoJDEgbmUgIlBBU1NFRCIgJiYg
JDEgbmUgIlBBU1MiKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBuZXh0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkZWZpbmVkICRyZXBvcnRE
YXRheyRzdWJUZXN0TmFtZX0pIHsKKyAgICAgICAgICAgIHByaW50KCIkc3ViVGVzdE5hbWUgJGZh
aWx1cmVGbGFnXG4iKSBpZiAkZmFpbHVyZUZsYWc7CisgICAgICAgICAgICAkcmVwb3J0RGF0YXsk
c3ViVGVzdE5hbWV9ID0gJGZhaWx1cmVGbGFnID8ge2FjdHVhbCA9PiAiRkFJTCJ9IDoge2FjdHVh
bCA9PiAiUEFTUyJ9OworICAgICAgICB9CisgICAgICAgICRmYWlsdXJlRmxhZyA9IDA7CisgICAg
fQorICAgICR0ZXN0UmVzdWx0ID0gY2xvc2UoVEVTVCk7CisgICAgaWYgKCR0ZXN0UmVzdWx0KSB7
CisgICAgICAgICR0ZXN0UmVzdWx0ID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICAkdGVzdFJl
c3VsdCA9ICQ/OworICAgIH0KKwogICAgIG15ICRleGl0U3RhdHVzID0gZXhpdFN0YXR1cygkdGVz
dFJlc3VsdCk7CiAgICAgcHJpbnQgIiR0ZXN0TmFtZSBjb21wbGV0ZWQgd2l0aCByYz0kdGVzdFJl
c3VsdCAoJGV4aXRTdGF0dXMpXG5cbiI7CiAKQEAgLTQxNSw3ICs2MDksMTAgQEAgc3ViIHJ1blRl
c3QgewogICAgIGlmICgkdGVzdFJlc3VsdCAmJiAkZmFpbEZhc3QpIHsKICAgICAgICAgcmVwb3J0
VGVzdEZhaWx1cmVzKCk7CiAgICAgICAgIHdyaXRlSnNvbkRhdGFJZkFwcGxpY2FibGUoKTsKLSAg
ICAgICAgZXhpdCBleGl0U3RhdHVzKCR0ZXN0UmVzdWx0KTsKKworICAgICAgICAkZW5kVGltZSA9
IHRpbWUoKTsKKyAgICAgICAgdXBsb2FkUmVzdWx0cygpOworICAgICAgICBleGl0ICRleGl0U3Rh
dHVzOwogICAgIH0KIH0KIApAQCAtNDQ2LDkgKzY0MywxMyBAQCBpZiAoJHJ1blRlc3RBUEkpIHsg
cnVuVGVzdCgidGVzdGFwaSIsICJhCiAjIEZpbmQgSmF2YVNjcmlwdENvcmUgZGlyZWN0b3J5CiBj
aGRpcldlYktpdCgpOwogCisjIEZJWE1FOiByZXBvcnQgc3RyZXNzIHRlc3QgZmFpbHVyZXMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDA5NgogcnVuSlNDU3RyZXNz
VGVzdHMoKTsKIHJlcG9ydFRlc3RGYWlsdXJlcygpOwogCiskZW5kVGltZSA9IHRpbWUoKTsKK3Vw
bG9hZFJlc3VsdHMoKTsKKwogaWYgKCRpc1Rlc3RGYWlsZWQpIHsKICAgZXhpdCgxKTsKIH0KQEAg
LTY2NiwzICs4NjcsNjEgQEAgc3ViIHdyaXRlSnNvbkRhdGFJZkFwcGxpY2FibGUKICAgICAgICAg
Y2xvc2UoJGZpbGVIYW5kbGVyKTsKICAgICB9CiB9CisKK3N1YiB1cGxvYWRSZXN1bHRzCit7Cisg
ICAgaWYgKG5vdCBkZWZpbmVkICRyZXBvcnQpIHsKKyAgICAgICAgcHJpbnQgIlNraXBwaW5nIHVw
bG9hZCB0byByZXN1bHRzIGRhdGFiYXNlIHNpbmNlIG5vIHJlcG9ydCBVUkwgd2FzIHNwZWNpZmll
ZFxuIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbXkgJXVwbG9hZCA9ICgKKyAg
ICAgICAgdmVyc2lvbiA9PiAwLAorICAgICAgICBzdWl0ZSA9PiAnamF2YXNjcmlwdGNvcmUtdGVz
dHMnLAorICAgICAgICAjIEZJWE1FOiBJbnRlZ3JhdGUgYnJhbmNoZXMsIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwOTQKKyAgICAgICAgIyBGSVhNRTogSW50ZWdy
YXRlIHRoZSBTYWZhcmkgcmVwb3NpdG9yeSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDA5NQorICAgICAgICBjb21taXRzID0+IFt7CisgICAgICAgICAgICByZXBv
c2l0b3J5X2lkID0+ICd3ZWJraXQnLAorICAgICAgICAgICAgaWQgPT4gZGV0ZXJtaW5lQ3VycmVu
dFNWTlJldmlzaW9uKCksCisgICAgICAgIH1dLAorICAgICAgICBjb25maWd1cmF0aW9uID0+IGNv
bmZpZ3VyYXRpb25Gb3JVcGxvYWQoKSwKKyAgICAgICAgdGVzdF9yZXN1bHRzID0+IHsKKyAgICAg
ICAgICAgIHJ1bl9zdGF0cyA9PiB7CisgICAgICAgICAgICAgICAgc3RhcnRfdGltZSA9PiAkc3Rh
cnRUaW1lLAorICAgICAgICAgICAgICAgIGVuZF90aW1lID0+ICRlbmRUaW1lLAorICAgICAgICAg
ICAgICAgIHRlc3RzX3NraXBwZWQgPT4gMCwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBy
ZXN1bHRzID0+IFwlcmVwb3J0RGF0YSwKKyAgICAgICAgfSwKKyAgICAgICAgdGltZXN0YW1wID0+
ICRzdGFydFRpbWUsCisgICAgKTsKKyAgICBpZiAoZGVmaW5lZCAkYnVpbGRib3RNYXN0ZXIgYW5k
IGRlZmluZWQgJGJ1aWxkZXJOYW1lIGFuZCBkZWZpbmVkICRidWlsZE51bWJlciBhbmQgZGVmaW5l
ZCAkYnVpbGRib3RXb3JrZXIpIHsKKyAgICAgICAgJHVwbG9hZHt0ZXN0X3Jlc3VsdHN9e2RldGFp
bHN9ID0geworICAgICAgICAgICAgYnVpbGRib3RfbWFzdGVyID0+ICRidWlsZGJvdE1hc3RlciwK
KyAgICAgICAgICAgIGJ1aWxkZXJfbmFtZSA9PiAkYnVpbGRlck5hbWUsCisgICAgICAgICAgICBi
dWlsZF9udW1iZXIgPT4gJGJ1aWxkTnVtYmVyLAorICAgICAgICAgICAgYnVpbGRib3Rfd29ya2Vy
ID0+ICRidWlsZGJvdFdvcmtlciwKKyAgICAgICAgfTsKKyAgICB9IGVsc2UgeworICAgICAgICBw
cmludCAiICAgIE5vIGJ1aWxkYm90IGRldGFpbHMgcHJvdmlkZWQsIHRlc3QgcnVuIHdpbGwgbm90
IGJlIGxpbmtlZCB0byBDSSBzeXN0ZW1cbiI7CisgICAgfQorICAgIGlmIChkZWZpbmVkICRFTlZ7
J1JFU1VMVFNfU0VSVkVSX0FQSV9LRVknfSkgeworICAgICAgICAkdXBsb2FkeydhcGlfa2V5J30g
PSAkRU5WeydSRVNVTFRTX1NFUlZFUl9BUElfS0VZJ307CisgICAgfQorCisgICAgcHJpbnQgIlVw
bG9hZGluZyByZXN1bHRzIHRvICRyZXBvcnRcbiI7CisKKyAgICBvcGVuKEhBTkRMRSwgInwtIiwg
ImN1cmwgLVggUE9TVCAkcmVwb3J0L2FwaS91cGxvYWQgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGlj
YXRpb24vanNvbicgLWYgLWQgJ1xALSciKSBvciBkaWUgIkZhaWxlZCB0byBvcGVuIGN1cmwiOwor
CisgICAgIyBKc29uIGNvbmZvcm1pbmcgdG8gaHR0cHM6Ly9yZXN1bHRzLndlYmtpdC5vcmcvZG9j
dW1lbnRhdGlvbiNBUEktVXBsb2Fkcy4KKyAgICBteSAkZW5jb2RlZFVwbG9hZCA9IGVuY29kZV9q
c29uKFwldXBsb2FkKTsKKyAgICBwcmludCBIQU5ETEUgIiRlbmNvZGVkVXBsb2FkXG5cMCI7Cisg
ICAgbXkgJHN1Y2Nlc3MgPSBjbG9zZSBIQU5ETEU7CisKKyAgICBpZiAoJHN1Y2Nlc3MpIHsKKyAg
ICAgICAgcHJpbnQgIlVwbG9hZCBzdWNjZXNzZnVsIVxuIjsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQorICAgIHByaW50ICJVcGxvYWQgdG8gJHJlcG9ydCBmYWlsZWRcbiI7CisgICAgcmV0dXJu
IDE7Cit9CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCShyZXZpc2lvbiAyNTI0NjMpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE1NjMsMTAgKzE1NjMsMTAg
QEAgc3ViIHNwbGl0VmVyc2lvblN0cmluZwogICAgIG15ICR2ZXJzaW9uU3RyaW5nID0gc2hpZnQ7
CiAgICAgbXkgQHNwbGl0VmVyc2lvbiA9IHNwbGl0KC9cLi8sICR2ZXJzaW9uU3RyaW5nKTsKICAg
ICBAc3BsaXRWZXJzaW9uID49IDIgb3IgZGllICJJbnZhbGlkIHZlcnNpb24gJHZlcnNpb25TdHJp
bmciOwotICAgICRvc1hWZXJzaW9uID0gewotICAgICAgICAgICAgIm1ham9yIiA9PiAkc3BsaXRW
ZXJzaW9uWzBdLAotICAgICAgICAgICAgIm1pbm9yIiA9PiAkc3BsaXRWZXJzaW9uWzFdLAotICAg
ICAgICAgICAgInN1Ym1pbm9yIiA9PiAoZGVmaW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxp
dFZlcnNpb25bMl0gOiAwKSwKKyAgICByZXR1cm4geworICAgICAgICAibWFqb3IiID0+ICRzcGxp
dFZlcnNpb25bMF0sCisgICAgICAgICJtaW5vciIgPT4gJHNwbGl0VmVyc2lvblsxXSwKKyAgICAg
ICAgInN1Ym1pbm9yIiA9PiAoZGVmaW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNp
b25bMl0gOiAwKSwKICAgICB9OwogfQogCkBAIC0xNTc5LDcgKzE1NzksNyBAQCBzdWIgZGV0ZXJt
aW5lT1NYVmVyc2lvbigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBteSAkdmVyc2lv
blN0cmluZyA9IGBzd192ZXJzIC1wcm9kdWN0VmVyc2lvbmA7CisgICAgY2hvbXAobXkgJHZlcnNp
b25TdHJpbmcgPSBgc3dfdmVycyAtcHJvZHVjdFZlcnNpb25gKTsKICAgICAkb3NYVmVyc2lvbiA9
IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvblN0cmluZyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383587</attachid>
            <date>2019-11-14 17:07:23 -0800</date>
            <delta_ts>2019-11-15 11:19:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204091-20191114170722.patch</filename>
            <type>text/plain</type>
            <size>15363</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjQ2MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDE5LTExLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlcG9ydCBKU0MgdGVzdHMgdG8gdGhl
IHJlc3VsdHMgZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk3Nzg5MDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBsb2FkIHJlc3Vs
dHMgdG8gdGhlIHNwZWNpZmllZCByZXN1bHRzIGRhdGFiYXNlLgorCisgICAgICAgIERFTU9OU1RS
QVRJT04gT0YgRkFJTFVSRSBJTiBFV1MgQkVIQVZJT1IsIERPIE5PVCBMQU5EIQorCisgICAgICAg
ICogU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgIChydW5UZXN0KTog
UGFyc2UgYmluYXJ5IG91dHB1dCB0byBtYXJrIGluZGl2aWR1YWwgdGVzdHMgYXMgcGFzc2luZwor
ICAgICAgICBvciBmYWlsaW5nLgorICAgICAgICAodXBsb2FkQ29uZmlndXJhdGlvbik6IFJldHVy
biBhIGhhc2ggbWFwIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbgorICAgICAgICBGb3Ig
dGhpcyBzcGVjaWZpYyB0ZXN0IHJ1bi4KKyAgICAgICAgKHVwbG9hZFJlc3VsdHMpOiBJZiBhIHJl
cG9ydCBVUkwgaXMgZGVmaW5lZCwgdXBsb2FkIHRlc3QgcmVzdWx0cyB0byB0aGF0IFVSTC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChzcGxpdFZlcnNpb25TdHJp
bmcpOiBzcGxpdFZlcnNpb25TdHJpbmcgaXMgc3VwcG9zZWQgdG8gYmUgYSBnZW5lcmFsbHkgdXNl
ZAorICAgICAgICBmdW5jdGlvbiwgc28gc2hvdWxkIG5vdCBzZXQgYSBnbG9iYWwgdmFyaWFibGUu
CisgICAgICAgIChkZXRlcm1pbmVPU1hWZXJzaW9uKTogUmVtb3ZlIG5ld2xpbmUgZnJvbSB2ZXJz
aW9uIG51bWJlci4KKwogMjAxOS0xMS0xNCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgU3VtbWFyeTogV0tXZWJWaWV3IGlzIG1pc3NpbmcgYW4gZXF1aXZhbGVu
dCB0byBXZWJLaXQgMSdzIEFQSSB0byBzZXQgdGhlIG1lZGlhIHN0eWxlLgpJbmRleDogVG9vbHMv
U2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMJKHJldmlzaW9uIDI1MjQ2MykKKysrIFRvb2xz
L1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2
ICs1NywxMiBAQCBteSAkcnVieVJ1bm5lcjsKIG15ICR0ZXN0V3JpdGVyOwogbXkgJG1lbW9yeUxp
bWl0ZWQ7CiAKK215ICRyZXBvcnQ7CitteSAkYnVpbGRib3RNYXN0ZXI7CitteSAkYnVpbGRlck5h
bWU7CitteSAkYnVpbGROdW1iZXI7CitteSAkYnVpbGRib3RXb3JrZXI7CisKIG15ICRidWlsZEpT
QyA9IDE7CiBteSAkY29weUpTQyA9IDE7CiAKQEAgLTkxLDggKzk3LDEyIEBAIG15ICRnbWFsbG9j
RGVmYXVsdFBhdGggPSAiL3Vzci9saWIvbGliZ20KIG15ICRjcmVhdGVUYXJiYWxsID0gMDsKIG15
ICRyZW1vdGVIb3N0ID0gMDsKIG15ICRtb2RlbCA9IDA7CitteSAkdmVyc2lvbjsKK215ICR2ZXJz
aW9uTmFtZTsKK215ICRzZGs7CiBteSAkZmFpbEZhc3QgPSAxOwogbXkgJWpzb25EYXRhID0gKCk7
CitteSAlcmVwb3J0RGF0YSA9ICgpOwogbXkgQHRlc3RSZXN1bHRzID0gKCk7CiBteSAkaXNUZXN0
RmFpbGVkID0gMDsKIG15ICRyZW1vdGVDb25maWdGaWxlOwpAQCAtMjMxLDYgKzI0MSw5IEBAIFVz
YWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHQKICAgLS1yZW1vdGU9ICAgICAg
ICAgICAgICAgICAgICAgUnVuIHRoZSBKU0Mgc3RyZXNzIHRlc3RzIG9uIHRoZSBzcGVjaWZpZWQg
cmVtb3RlIGhvc3QuIEltcGxpZXMgLS10YXJiYWxsLgogICAtLXJlbW90ZS1jb25maWctZmlsZT0g
ICAgICAgICBTYW1lIGFzIHJlbW90ZSwgYnV0IHJlYWQgY29uZmlnIGZyb20gSlNPTiBmaWxlLgog
ICAtLW1vZGVsPSAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZ5IHJlbW90ZSBoYXJkd2FyZSBt
b2RlbCwgdGhpcyBpbmZvIHVzZWQgZm9yIGRldGVybWluZSB3aGF0IGpzYyB0ZXN0cyBzaG91bGQg
cnVuIG9uIHJlbW90ZQorICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICBTcGVjaWZ5IHRo
ZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgZGV2aWNlIHJ1bm5pbmcgdGVzdHMuCisgIC0tdmVyc2lv
bi1uYW1lICAgICAgICAgICAgICAgIFNwZWNpZnkgdGhlIHZlcnNpb24gbmFtZSBvZiB0aGUgaGFy
ZHdhcmUgcnVubmluZyB0ZXN0cy4KKyAgLS1zZGsgICAgICAgICAgICAgICAgICAgICAgICAgU3Bl
Y2lmaWMgU0RLIG9yIE9TIHZlcnNpb24gb2YgdGhlIGZvcm0gIyMqIyMjCiAgIC0tZXh0cmEtdGVz
dHM9ICAgICAgICAgICAgICAgIFBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgZXh0cmEgdGVzdHMK
ICAgLS1jaGlsZC1wcm9jZXNzZXM9ICAgICAgICAgICAgU3BlY2lmeSB0aGUgbnVtYmVyIG9mIGNo
aWxkIHByb2Nlc3Nlcy4KICAgLS1zaGVsbC1ydW5uZXIgICAgICAgICAgICAgICAgVXNlcyB0aGUg
c2hlbGwtYmFzZWQgdGVzdCBydW5uZXIgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBtYWtlLWJhc2Vk
IHJ1bm5lci4KQEAgLTI1Miw2ICsyNjUsMTIgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9u
c10gW29wdGlvbnMgdAogICAtLWdtYWxsb2M6ICAgICAgICAgICAgICAgICAgICBSdW4gdGVzdHMg
d2l0aCBHdWFyZCBNYWxsb2MgZW5hYmxlZCAoaWYgbm8gcGF0aCBpcyBnaXZlbjogJGdtYWxsb2NE
ZWZhdWx0UGF0aCBpcyB1c2VkKQogICAtLXZlcmJvc2U6ICAgICAgICAgICAgICAgICAgICBWZXJi
b3NlIG91dHB1dCAoc3BlY2lmeSBtb3JlIHRoYW4gb25jZSB0byBpbmNyZWFzZSB2ZXJib3NpdHkp
LgogCisgIC0tcmVwb3J0OiAgICAgICAgICAgICAgICAgICAgIFJlc3VsdHMgZGF0YWJhc2UgdXJs
IHRvIHJlcG9ydCByZXN1bHRzIHRvLgorICAtLWJ1aWxkYm90LW1hc3RlcjogICAgICAgICAgICBU
aGUgdXJsIG9mIHRoZSBidWlsZGJvdCBtYXN0ZXIuCisgIC0tYnVpbGRlci1uYW1lOiAgICAgICAg
ICAgICAgIFRoZSBuYW1lIG9mIHRoZSBidWlsZGJvdCBidWlsZGVyIHRlc3RzIHdlcmUgcnVuIG9u
LgorICAtLWJ1aWxkLW51bWJlcjogICAgICAgICAgICAgICBUaGUgYnVpbGRib3QgYnVpbGQgbnVt
YmVyIHRlc3RzIGFyZSBhc3NvY2lhdGVkIHdpdGguCisgIC0tYnVpbGRib3Qtd29ya2VyOiAgICAg
ICAgICAgIFRoZSBidWlsZGJvdCB3b3JrZXIgdGVzdHMgd2VyZSBydW4gb24uCisKIEVudmlyb25t
ZW50IFZhcmlhYmxlczoKICAgLSBzZXQgUlVOX0pBVkFTQ1JJUFRDT1JFX1RFU1RTX1RFU1RNQVNN
IHRvICJ0cnVlIiBvciAiZmFsc2UiIChubyBxdW90ZXMpIHRvIGRldGVybWluZSBpZiB3ZSBydW4g
dGVzdG1hc20gYnkgZGVmYXVsdC4KICAgLSBzZXQgUlVOX0pBVkFTQ1JJUFRDT1JFX1RFU1RTX1RF
U1RBSVIgdG8gInRydWUiIG9yICJmYWxzZSIgKG5vIHF1b3RlcykgdG8gZGV0ZXJtaW5lIGlmIHdl
IHJ1biB0ZXN0YWlyIGJ5IGRlZmF1bHQuCkBAIC0yODksNiArMzA4LDkgQEAgR2V0T3B0aW9ucygK
ICAgICAndGFyYmFsbCEnID0+IFwkY3JlYXRlVGFyYmFsbCwKICAgICAncmVtb3RlPXMnID0+IFwk
cmVtb3RlSG9zdCwKICAgICAnbW9kZWw9cycgPT4gXCRtb2RlbCwKKyAgICAndmVyc2lvbj1zJyA9
PiBcJHZlcnNpb24sCisgICAgJ3ZlcnNpb24tbmFtZT1zJyA9PiBcJHZlcnNpb25OYW1lLAorICAg
ICdzZGs9cycgPT4gXCRzZGssCiAgICAgJ3JlbW90ZS1jb25maWctZmlsZT1zJyA9PiBcJHJlbW90
ZUNvbmZpZ0ZpbGUsCiAgICAgJ2NoaWxkLXByb2Nlc3Nlcz1zJyA9PiBcJGNoaWxkUHJvY2Vzc2Vz
LAogICAgICdzaGVsbC1ydW5uZXInID0+IFwkc2hlbGxSdW5uZXIsCkBAIC0zMDAsNyArMzIyLDEy
IEBAIEdldE9wdGlvbnMoCiAgICAgJ2hlbHAnID0+IFwkc2hvd0hlbHAsCiAgICAgJ2Vudi12YXJz
PXMnID0+IFwkZW52VmFycywKICAgICAnZ21hbGxvYzpzJyA9PiBcJGdtYWxsb2NQYXRoLAotICAg
ICd2ZXJib3NlKycgPT4gXCR2ZXJib3NlCisgICAgJ3ZlcmJvc2UrJyA9PiBcJHZlcmJvc2UsCisg
ICAgJ3JlcG9ydD1zJyA9PiBcJHJlcG9ydCwKKyAgICAnYnVpbGRib3QtbWFzdGVyPXMnID0+IFwk
YnVpbGRib3RNYXN0ZXIsCisgICAgJ2J1aWxkZXItbmFtZT1zJyA9PiBcJGJ1aWxkZXJOYW1lLAor
ICAgICdidWlsZC1udW1iZXI9cycgPT4gXCRidWlsZE51bWJlciwKKyAgICAnYnVpbGRib3Qtd29y
a2VyPXMnID0+IFwkYnVpbGRib3RXb3JrZXIsCiApOwogCiAKQEAgLTMxNSw2ICszNDIsMTAgQEAg
aWYgKCRydW5UZXN0TWFzbSA9PSBET19SVU4KICAgICAkc3BlY2lmaWNUZXN0c1NwZWNpZmllZCA9
IDE7CiB9CiAKK2lmICgkdmVyc2lvbikgeworICAgICR2ZXJzaW9uID0gc3BsaXRWZXJzaW9uU3Ry
aW5nKCR2ZXJzaW9uKTsKK30KKwogc3ViIGVuYWJsZVRlc3RPck5vdCB7CiAgICAgbXkgKCRzdGF0
ZSkgPSBAXzsKICAgICBpZiAoJHN0YXRlID09IFJVTl9JRl9OT19URVNUU19TUEVDSUZJRUQgfHwg
JHN0YXRlID09IEVOVl9WQVJfU0FZU19ET19SVU4pIHsKQEAgLTMyNSw2ICszNTYsODYgQEAgc3Vi
IGVuYWJsZVRlc3RPck5vdCB7CiAgICAgcmV0dXJuICRzdGF0ZTsKIH0KIAorc3ViIGNvbmZpZ3Vy
YXRpb25Gb3JVcGxvYWQoKQoreworICAgIG15ICRwbGF0Zm9ybTsKKyAgICBteSAkc2RrOworICAg
IG15ICRzaW11bGF0b3IgPSAwOworCisgICAgaWYgKGluZGV4KHhjb2RlU0RLUGxhdGZvcm1OYW1l
KCksICJzaW11bGF0b3IiKSAhPSAtMSkgeworICAgICAgICAkc2ltdWxhdG9yID0gMTsKKyAgICB9
CisKKyAgICBpZiAoaW5kZXgoJG1vZGVsLCAnaVBob25lJykgIT0gLTEgfHwgaW5kZXgoJG1vZGVs
LCAnaVBhZCcpICE9IC0xKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICdpb3MnOworICAgICAgICBp
ZiAoISR2ZXJzaW9uKSB7CisgICAgICAgICAgICAkdmVyc2lvbiA9IGlvc1ZlcnNpb24oKTsKKyAg
ICAgICAgfQorICAgIH0gZWxzaWYgKGluZGV4KCRtb2RlbCwgJ3dhdGNoJykgIT0gLTEgfHwgaW5k
ZXgoeGNvZGVTREtQbGF0Zm9ybU5hbWUoKSwgIndhdGNoIikgIT0gLTEpIHsKKyAgICAgICAgJHBs
YXRmb3JtID0gJ3dhdGNob3MnOworICAgICAgICBkaWUgIk5vIHdhdGNoT1MgdmVyc2lvbiBzcGVj
aWZpZWQiIGlmICEkdmVyc2lvbjsKKyAgICB9IGVsc2lmIChpbmRleCh4Y29kZVNES1BsYXRmb3Jt
TmFtZSgpLCAiYXBwbGV0diIpICE9IC0xKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICd0dm9zJzsK
KyAgICAgICAgZGllICJObyB0dk9TIHZlcnNpb24gc3BlY2lmaWVkIiBpZiAhJHZlcnNpb247Cisg
ICAgfSBlbHNpZiAoaXNHdGsoKSkgeworICAgICAgICAkcGxhdGZvcm0gPSAnR1RLJzsKKyAgICAg
ICAgaWYgKCEkdmVyc2lvbikgeworICAgICAgICAgICAgY2hvbXAoJHZlcnNpb24gPSBgL3Vzci9i
aW4vdW5hbWUgLXJgKTsKKyAgICAgICAgICAgICR2ZXJzaW9uID0gc3BsaXRWZXJzaW9uU3RyaW5n
KCR2ZXJzaW9uKTsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAg
JHBsYXRmb3JtID0gJ1dQRSc7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAg
IGNob21wKCR2ZXJzaW9uID0gYC91c3IvYmluL3VuYW1lIC1yYCk7CisgICAgICAgICAgICAkdmVy
c2lvbiA9IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7CisgICAgICAgIH0KKyAgICB9IGVs
c2lmIChpc0FueVdpbmRvd3MoKSkgeworICAgICAgICAkcGxhdGZvcm0gPSAnd2luJzsKKyAgICAg
ICAgaWYgKCEkdmVyc2lvbikgeworICAgICAgICAgICAgJHZlcnNpb24gPSB3aW5WZXJzaW9uKCk7
CisgICAgICAgIH0KKyAgICB9IGVsc2lmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKKyAgICAgICAg
JHBsYXRmb3JtID0gJ21hYyc7CisgICAgICAgIGNob21wKCRtb2RlbCA9IGAvdXNyL3NiaW4vc3lz
Y3RsIC1uIGh3Lm1vZGVsYCk7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAg
ICR2ZXJzaW9uID0gb3NYVmVyc2lvbigpOworICAgICAgICB9CisgICAgICAgIGlmICghJHNkaykg
eworICAgICAgICAgICAgY2hvbXAoJHNkayA9IGAvdXNyL2Jpbi9zd192ZXJzIC1idWlsZFZlcnNp
b25gKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghJHZlcnNpb25OYW1lKSB7CisgICAgICAg
ICAgICBpZiAoJHZlcnNpb24tPnttaW5vcn0gZXEgMTUpIHsKKyAgICAgICAgICAgICAgICAkdmVy
c2lvbk5hbWUgPSAiQ2F0YWxpbmEiOworICAgICAgICAgICAgfSBlbHNpZiAoJHZlcnNpb24tPntt
aW5vcn0gZXEgMTQpIHsKKyAgICAgICAgICAgICAgICAkdmVyc2lvbk5hbWUgPSAiTW9qYXZlIjsK
KyAgICAgICAgICAgIH0gZWxzaWYgKCR2ZXJzaW9uLT57bWlub3J9IGVxIDEzKSB7CisgICAgICAg
ICAgICAgICAgJHZlcnNpb25OYW1lID0gIkhpZ2ggU2llcnJhIjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRpZSAiQ2Fubm90IGRldGVybWluZSBwbGF0
Zm9ybVxuIjsKKyAgICB9CisKKyAgICBteSAkcmVzdWx0ID0geworICAgICAgICBwbGF0Zm9ybSA9
PiAkcGxhdGZvcm0sCisgICAgICAgIGFyY2hpdGVjdHVyZSA9PiBhcmNoaXRlY3R1cmUoKSwKKyAg
ICAgICAgaXNfc2ltdWxhdG9yID0+ICRzaW11bGF0b3IsCisgICAgICAgIHN0eWxlID0+IGxjKGNv
bmZpZ3VyYXRpb24oKSksCisgICAgICAgIHZlcnNpb24gPT4gIiR2ZXJzaW9uLT57bWFqb3J9LiR2
ZXJzaW9uLT57bWlub3J9LiR2ZXJzaW9uLT57c3VibWlub3J9IiwKKyAgICB9OworICAgIGlmICgk
bW9kZWwpIHsKKyAgICAgICAgJHJlc3VsdC0+e21vZGVsfSA9ICRtb2RlbDsKKyAgICB9CisgICAg
aWYgKCR2ZXJzaW9uTmFtZSkgeworICAgICAgICAkcmVzdWx0LT57dmVyc2lvbl9uYW1lfSA9ICR2
ZXJzaW9uTmFtZTsKKyAgICB9CisgICAgaWYgKCRzZGspIHsKKyAgICAgICAgJHJlc3VsdC0+e3Nk
a30gPSAkc2RrOworICAgIH0KKyAgICByZXR1cm4gJHJlc3VsdDsKK30KKwogJHJ1blRlc3RNYXNt
ID0gZW5hYmxlVGVzdE9yTm90KCRydW5UZXN0TWFzbSk7CiAkcnVuVGVzdEFpciA9IGVuYWJsZVRl
c3RPck5vdCgkcnVuVGVzdEFpcik7CiAkcnVuVGVzdEIzID0gZW5hYmxlVGVzdE9yTm90KCRydW5U
ZXN0QjMpOwpAQCAtMzQyLDYgKzQ1Myw3IEBAIGlmICgkc2hvd0hlbHApIHsKIH0KIAogc2V0Q29u
ZmlndXJhdGlvblByb2R1Y3REaXIoQ3dkOjphYnNfcGF0aCgkcm9vdCkpIGlmIChkZWZpbmVkKCRy
b290KSk7Citjb25maWd1cmF0aW9uRm9yVXBsb2FkKCkgaWYgKGRlZmluZWQoJHJlcG9ydCkpOwog
CiBpZiAoZGVmaW5lZCgkanNvbkZpbGVOYW1lKSkgewogICAgICRqc29uRmlsZU5hbWUgPSBGaWxl
OjpTcGVjLT5yZWwyYWJzKCRqc29uRmlsZU5hbWUpOwpAQCAtMzc0LDYgKzQ4Niw5IEBAICRFTlZ7
SlNDVEVTVF90aW1lb3V0fSA9IDEyMCB1bmxlc3MgJEVOVnsKICRFTlZ7VFp9PSJVUy9QYWNpZmlj
IjsgIyBTb21lIHRlc3RzIGZhaWwgaWYgdGhlIHRpbWUgem9uZSBpcyBub3Qgc2V0IHRvIFVTL1Bh
Y2lmaWMgKDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzYzNjM+KQogc2V0UGF0aEZvclJ1bm5pbmdX
ZWJLaXRBcHAoXCVFTlYpIGlmIGlzQ3lnd2luKCk7CiAKK215ICRzdGFydFRpbWUgPSB0aW1lKCk7
CitteSAkZW5kVGltZSA9ICRzdGFydFRpbWU7CisKIHN1YiB0ZXN0UGF0aCB7CiAgICAgbXkgKCRw
cm9kdWN0RGlyLCAkdGVzdE5hbWUpID0gQF87CiAgICAgJHRlc3ROYW1lIC49ICJfZGVidWciIGlm
IGNvbmZpZ3VyYXRpb24oKSBlcSAiRGVidWdfQWxsIjsKQEAgLTM5Nyw5ICs1MTIsODMgQEAgc3Vi
IHJ1blRlc3QgewogICAgICAgICB9CiAgICAgfQogCi0gICAgIyBVc2UgYW4gImluZGlyZWN0IG9i
amVjdCIgc28gdGhhdCBzeXN0ZW0oKSB3b24ndCBnZXQgY29uZnVzZWQgaWYgdGhlIHBhdGgKLSAg
ICAjIGNvbnRhaW5zIHNwYWNlcyAoc2VlIHBlcmxkb2MgLWYgZXhlYykuCi0gICAgbXkgJHRlc3RS
ZXN1bHQgPSBzeXN0ZW0geyAkY29tbWFuZFswXSB9IEBjb21tYW5kOworICAgIG15ICR0ZXN0UmVz
dWx0ID0gMDsKKyAgICBteSAkZmFpbHVyZUZsYWcgPSAwOworICAgIG15ICRsYXN0T3B0aW1pemVM
ZXZlbDsKKworICAgIG9wZW4oVEVTVCwgIi18IiwgIkBjb21tYW5kIDI+JjEiKSBvciBkaWUgIkZh
aWxlZCB0byBydW4gQGNvbW1hbmQiOworICAgIHdoaWxlICggbXkgJGxpbmUgPSA8VEVTVD4gKSB7
CisgICAgICAgIG15ICRzdWJUZXN0TmFtZTsKKyAgICAgICAgcHJpbnQgJGxpbmU7CisKKyAgICAg
ICAgIyBlLmcuOiAnTzI6IHRlc3RSb3RSV2l0aEltbVNoaWZ0KHVpbnQ2NC1tYXgsIHVpbnQzMi1t
aW4pOiBPSyEnJworICAgICAgICBpZiAoJGxpbmUgPX4gLyhPXGQpOiAoXFMrKShcKC4qXCkpOiAo
W0EtWmEtel0rKSFcbi8pIHsKKyAgICAgICAgICAgICRsYXN0T3B0aW1pemVMZXZlbCA9ICQxOwor
ICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMS4kMiQzIjsKKyAgICAgICAg
ICAgICRmYWlsdXJlRmxhZyArPSAxIGlmICgkNCBuZSAiT0siKTsKKyAgICAgICAgfQorICAgICAg
ICAjIEFzc2VydGlvbiBpbiBiaW5hcnkKKyAgICAgICAgIyBlLmcuOiBBU1NFUlRJT04gRkFJTEVE
OiB0aGluZ3NbMF0gPT0gMgorICAgICAgICBlbHNpZiAoJGxpbmUgPX4gL0FTU0VSVElPTiBGQUlM
RUQ6LykgeworICAgICAgICAgICAgJGZhaWx1cmVGbGFnICs9IDE7CisgICAgICAgICAgICBuZXh0
OworICAgICAgICB9CisgICAgICAgICMgZS5nLjogZmlsZS9wYXRoKDM5NykgOiB2b2lkIChhbm9u
eW1vdXMgbmFtZXNwYWNlKTo6dGVzdFNodWZmbGVTaW1wbGVCcm9hZGNhc3QoKQorICAgICAgICBl
bHNpZiAoJGZhaWx1cmVGbGFnICYmICRsaW5lID1+IC8uKlwoXGQrXCkgOiBcUysgLio6OihcUysp
KFwoLipcKSkvKSB7CisgICAgICAgICAgICBpZiAoZGVmaW5lZCAkbGFzdE9wdGltaXplTGV2ZWwp
IHsKKyAgICAgICAgICAgICAgICAkc3ViVGVzdE5hbWUgPSAiJHRlc3ROYW1lLiRsYXN0T3B0aW1p
emVMZXZlbC4kMSQyIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJHN1
YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS4kMSQyIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICAjIHN1Yi10ZXN0IGZyb20gdGhlIGMtYXBpLCBvZiB0aGUgZm9ybToKKyAgICAgICAg
IyBlLmcuOiAndGVzdGFwaVsxNTQyMjoxNjkwNDc5MF0gcGFyYWxsZWxQcm9taXNlUmVzb2x2ZVRl
c3QoKTogZG9uZS4nJworICAgICAgICBlbHNpZiAoJGxpbmUgPX4gL1xbXGQrOlxkK1xdIChcUysp
KCk6IGRvbmVcLlxuLykgeworICAgICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS5v
YmplY3RpdmUtYy4kMSI7CisgICAgICAgIH0KKyAgICAgICAgIyBFbmQgb2YgQy1BUEkgdGVzdHMg
KG1lYW5pbmcgd2UganVzdCBmaW5pc2hlZCB0aGUgdW5ncm91cGVkIG1haW4gdGVzdHMpCisgICAg
ICAgIGVsc2lmICgkbGluZSA9fiAvU3RhcnRpbmcgQy1BUEkgdGVzdHMgaW4gQysrLykgeworICAg
ICAgICAgICAgJHN1YlRlc3ROYW1lID0gIiR0ZXN0TmFtZS5vYmplY3RpdmUtYy5tYWluIjsKKyAg
ICAgICAgfQorICAgICAgICAjIEVuZCBvZiB0ZXN0YXBpCisgICAgICAgICMgZS5nLjogRkFJTDog
U29tZSB0ZXN0cyBmYWlsZWQuCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvRkFJTDogU29tZSB0
ZXN0cyBmYWlsZWRcLi8pIHsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyA9IDA7CisgICAgICAg
ICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgICMgVGVzdCBjYXNlcyBpbnNpZGUgQVBJIHRl
c3RzCisgICAgICAgICMgZS5nLjogJ3Rlc3RhcGlbMTU0MjI6MTY5MDQ3OTBdIFRFU1Q6ICIyICsg
MiI6IFBBU1NFRCcKKyAgICAgICAgZWxzaWYgKCRsaW5lID1+IC9cW1xkKzpcZCtcXSBURVNUOiAi
LioiOiAoW0EtWl0rKVxuLykgeworICAgICAgICAgICAgJGZhaWx1cmVGbGFnICs9IDEgaWYgKCQx
IG5lICJQQVNTRUQiICYmICQxIG5lICJQQVNTIik7CisgICAgICAgICAgICBuZXh0OworICAgICAg
ICB9CisgICAgICAgICMgZS5nLjogJ3Rlc3RCaXRYb3JBbmRBbmRBcmdzKDAsIDAsdWludDMyLW1h
eCk6IE9LIScnCisgICAgICAgIGVsc2lmICgkbGluZSA9fiAvKFxTKykoXCguKlwpKTogKFtBLVph
LXpdKykhXG4vKSB7CisgICAgICAgICAgICAkc3ViVGVzdE5hbWUgPSAiJHRlc3ROYW1lLiQxJDIi
OworICAgICAgICAgICAgJGZhaWx1cmVGbGFnICs9IDEgaWYgKCQzIG5lICJPSyIpOworICAgICAg
ICB9CisgICAgICAgICMgR2VuZXJhbCB0ZXN0Y2FzZSBzdGF0ZW1lbnQsIGZpbHRlcmVkIHRvIGV4
Y2x1ZGUgc29tZSBqdW5rIGxvZ2dpbmcKKyAgICAgICAgIyBlLmcuOiAnUEFTUzogREZHIHNjcmlw
dCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuJycK
KyAgICAgICAgZWxzaWYgKCRsaW5lID1+IC8oW0EtWl0rKTogKC4qKVwuKlxuLyAmJiAhKCRsaW5l
ID1+IC9bQS1aXSs6IFxkK1xuLyB8fCAkbGluZSA9fiAvXFtcZCs6XGQrXF0gW0EtWl0rOi8pKSB7
CisgICAgICAgICAgICAkc3ViVGVzdE5hbWUgPSAiJHRlc3ROYW1lLiQyIjsKKyAgICAgICAgICAg
ICRmYWlsdXJlRmxhZyArPSAxIGlmICgkMSBuZSAiUEFTUyIpOworICAgICAgICB9CisgICAgICAg
ICMgZS5nLjogJ3Rlc3QgZGVzY3JpcHRpb246IFBBU1NFRCcKKyAgICAgICAgZWxzaWYgKCRsaW5l
ID1+IC8uKjogKFtBLVpdKylcbi8pIHsKKyAgICAgICAgICAgICRmYWlsdXJlRmxhZyArPSAxIGlm
ICgkMSBuZSAiUEFTU0VEIiAmJiAkMSBuZSAiUEFTUyIpOworICAgICAgICAgICAgbmV4dDsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoIWRlZmluZWQgJHJlcG9ydERhdGF7JHN1YlRlc3ROYW1lfSkgeworICAgICAgICAgICAgcHJp
bnQoIiRzdWJUZXN0TmFtZSAkZmFpbHVyZUZsYWdcbiIpIGlmICRmYWlsdXJlRmxhZzsKKyAgICAg
ICAgICAgICRyZXBvcnREYXRheyRzdWJUZXN0TmFtZX0gPSAkZmFpbHVyZUZsYWcgPyB7YWN0dWFs
ID0+ICJGQUlMIn0gOiB7YWN0dWFsID0+ICJQQVNTIn07CisgICAgICAgIH0KKyAgICAgICAgJGZh
aWx1cmVGbGFnID0gMDsKKyAgICB9CisgICAgJHRlc3RSZXN1bHQgPSBjbG9zZShURVNUKSA/IDAg
OiAkPzsKKwogICAgIG15ICRleGl0U3RhdHVzID0gZXhpdFN0YXR1cygkdGVzdFJlc3VsdCk7CiAg
ICAgcHJpbnQgIiR0ZXN0TmFtZSBjb21wbGV0ZWQgd2l0aCByYz0kdGVzdFJlc3VsdCAoJGV4aXRT
dGF0dXMpXG5cbiI7CiAKQEAgLTQxNSw3ICs2MDQsMTAgQEAgc3ViIHJ1blRlc3QgewogICAgIGlm
ICgkdGVzdFJlc3VsdCAmJiAkZmFpbEZhc3QpIHsKICAgICAgICAgcmVwb3J0VGVzdEZhaWx1cmVz
KCk7CiAgICAgICAgIHdyaXRlSnNvbkRhdGFJZkFwcGxpY2FibGUoKTsKLSAgICAgICAgZXhpdCBl
eGl0U3RhdHVzKCR0ZXN0UmVzdWx0KTsKKworICAgICAgICAkZW5kVGltZSA9IHRpbWUoKTsKKyAg
ICAgICAgdXBsb2FkUmVzdWx0cygpOworICAgICAgICBleGl0ICRleGl0U3RhdHVzOwogICAgIH0K
IH0KIApAQCAtNDQ2LDkgKzYzOCwxMyBAQCBpZiAoJHJ1blRlc3RBUEkpIHsgcnVuVGVzdCgidGVz
dGFwaSIsICJhCiAjIEZpbmQgSmF2YVNjcmlwdENvcmUgZGlyZWN0b3J5CiBjaGRpcldlYktpdCgp
OwogCisjIEZJWE1FOiByZXBvcnQgc3RyZXNzIHRlc3QgZmFpbHVyZXMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDA5NgogcnVuSlNDU3RyZXNzVGVzdHMoKTsKIHJl
cG9ydFRlc3RGYWlsdXJlcygpOwogCiskZW5kVGltZSA9IHRpbWUoKTsKK3VwbG9hZFJlc3VsdHMo
KTsKKwogaWYgKCRpc1Rlc3RGYWlsZWQpIHsKICAgZXhpdCgxKTsKIH0KQEAgLTY2NiwzICs4NjIs
NjEgQEAgc3ViIHdyaXRlSnNvbkRhdGFJZkFwcGxpY2FibGUKICAgICAgICAgY2xvc2UoJGZpbGVI
YW5kbGVyKTsKICAgICB9CiB9CisKK3N1YiB1cGxvYWRSZXN1bHRzCit7CisgICAgaWYgKG5vdCBk
ZWZpbmVkICRyZXBvcnQpIHsKKyAgICAgICAgcHJpbnQgIlNraXBwaW5nIHVwbG9hZCB0byByZXN1
bHRzIGRhdGFiYXNlIHNpbmNlIG5vIHJlcG9ydCBVUkwgd2FzIHNwZWNpZmllZFxuIjsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbXkgJXVwbG9hZCA9ICgKKyAgICAgICAgdmVyc2lv
biA9PiAwLAorICAgICAgICBzdWl0ZSA9PiAnamF2YXNjcmlwdGNvcmUtdGVzdHMnLAorICAgICAg
ICAjIEZJWE1FOiBJbnRlZ3JhdGUgYnJhbmNoZXMsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQwOTQKKyAgICAgICAgIyBGSVhNRTogSW50ZWdyYXRlIHRoZSBTYWZh
cmkgcmVwb3NpdG9yeSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NDA5NQorICAgICAgICBjb21taXRzID0+IFt7CisgICAgICAgICAgICByZXBvc2l0b3J5X2lkID0+
ICd3ZWJraXQnLAorICAgICAgICAgICAgaWQgPT4gZGV0ZXJtaW5lQ3VycmVudFNWTlJldmlzaW9u
KCksCisgICAgICAgIH1dLAorICAgICAgICBjb25maWd1cmF0aW9uID0+IGNvbmZpZ3VyYXRpb25G
b3JVcGxvYWQoKSwKKyAgICAgICAgdGVzdF9yZXN1bHRzID0+IHsKKyAgICAgICAgICAgIHJ1bl9z
dGF0cyA9PiB7CisgICAgICAgICAgICAgICAgc3RhcnRfdGltZSA9PiAkc3RhcnRUaW1lLAorICAg
ICAgICAgICAgICAgIGVuZF90aW1lID0+ICRlbmRUaW1lLAorICAgICAgICAgICAgICAgIHRlc3Rz
X3NraXBwZWQgPT4gMCwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICByZXN1bHRzID0+IFwl
cmVwb3J0RGF0YSwKKyAgICAgICAgfSwKKyAgICAgICAgdGltZXN0YW1wID0+ICRzdGFydFRpbWUs
CisgICAgKTsKKyAgICBpZiAoZGVmaW5lZCAkYnVpbGRib3RNYXN0ZXIgYW5kIGRlZmluZWQgJGJ1
aWxkZXJOYW1lIGFuZCBkZWZpbmVkICRidWlsZE51bWJlciBhbmQgZGVmaW5lZCAkYnVpbGRib3RX
b3JrZXIpIHsKKyAgICAgICAgJHVwbG9hZHt0ZXN0X3Jlc3VsdHN9e2RldGFpbHN9ID0geworICAg
ICAgICAgICAgYnVpbGRib3RfbWFzdGVyID0+ICRidWlsZGJvdE1hc3RlciwKKyAgICAgICAgICAg
IGJ1aWxkZXJfbmFtZSA9PiAkYnVpbGRlck5hbWUsCisgICAgICAgICAgICBidWlsZF9udW1iZXIg
PT4gJGJ1aWxkTnVtYmVyLAorICAgICAgICAgICAgYnVpbGRib3Rfd29ya2VyID0+ICRidWlsZGJv
dFdvcmtlciwKKyAgICAgICAgfTsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludCAiICAgIE5v
IGJ1aWxkYm90IGRldGFpbHMgcHJvdmlkZWQsIHRlc3QgcnVuIHdpbGwgbm90IGJlIGxpbmtlZCB0
byBDSSBzeXN0ZW1cbiI7CisgICAgfQorICAgIGlmIChkZWZpbmVkICRFTlZ7J1JFU1VMVFNfU0VS
VkVSX0FQSV9LRVknfSkgeworICAgICAgICAkdXBsb2FkeydhcGlfa2V5J30gPSAkRU5WeydSRVNV
TFRTX1NFUlZFUl9BUElfS0VZJ307CisgICAgfQorCisgICAgcHJpbnQgIlVwbG9hZGluZyByZXN1
bHRzIHRvICRyZXBvcnRcbiI7CisKKyAgICBvcGVuKEhBTkRMRSwgInwtIiwgImN1cmwgLVggUE9T
VCAkcmVwb3J0L2FwaS91cGxvYWQgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicg
LWYgLWQgJ1xALSciKSBvciBkaWUgIkZhaWxlZCB0byBvcGVuIGN1cmwiOworCisgICAgIyBKc29u
IGNvbmZvcm1pbmcgdG8gaHR0cHM6Ly9yZXN1bHRzLndlYmtpdC5vcmcvZG9jdW1lbnRhdGlvbiNB
UEktVXBsb2Fkcy4KKyAgICBteSAkZW5jb2RlZFVwbG9hZCA9IGVuY29kZV9qc29uKFwldXBsb2Fk
KTsKKyAgICBwcmludCBIQU5ETEUgIiRlbmNvZGVkVXBsb2FkXG5cMCI7CisgICAgbXkgJHN1Y2Nl
c3MgPSBjbG9zZSBIQU5ETEU7CisKKyAgICBpZiAoJHN1Y2Nlc3MpIHsKKyAgICAgICAgcHJpbnQg
IlVwbG9hZCBzdWNjZXNzZnVsIVxuIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHBy
aW50ICJVcGxvYWQgdG8gJHJlcG9ydCBmYWlsZWRcbiI7CisgICAgcmV0dXJuIDE7Cit9CkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRkaXJzLnBtCShyZXZpc2lvbiAyNTI0NjMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE1NjMsMTAgKzE1NjMsMTAgQEAgc3ViIHNwbGl0
VmVyc2lvblN0cmluZwogICAgIG15ICR2ZXJzaW9uU3RyaW5nID0gc2hpZnQ7CiAgICAgbXkgQHNw
bGl0VmVyc2lvbiA9IHNwbGl0KC9cLi8sICR2ZXJzaW9uU3RyaW5nKTsKICAgICBAc3BsaXRWZXJz
aW9uID49IDIgb3IgZGllICJJbnZhbGlkIHZlcnNpb24gJHZlcnNpb25TdHJpbmciOwotICAgICRv
c1hWZXJzaW9uID0gewotICAgICAgICAgICAgIm1ham9yIiA9PiAkc3BsaXRWZXJzaW9uWzBdLAot
ICAgICAgICAgICAgIm1pbm9yIiA9PiAkc3BsaXRWZXJzaW9uWzFdLAotICAgICAgICAgICAgInN1
Ym1pbm9yIiA9PiAoZGVmaW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNpb25bMl0g
OiAwKSwKKyAgICByZXR1cm4geworICAgICAgICAibWFqb3IiID0+ICRzcGxpdFZlcnNpb25bMF0s
CisgICAgICAgICJtaW5vciIgPT4gJHNwbGl0VmVyc2lvblsxXSwKKyAgICAgICAgInN1Ym1pbm9y
IiA9PiAoZGVmaW5lZCgkc3BsaXRWZXJzaW9uWzJdKSA/ICRzcGxpdFZlcnNpb25bMl0gOiAwKSwK
ICAgICB9OwogfQogCkBAIC0xNTc5LDcgKzE1NzksNyBAQCBzdWIgZGV0ZXJtaW5lT1NYVmVyc2lv
bigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBteSAkdmVyc2lvblN0cmluZyA9IGBz
d192ZXJzIC1wcm9kdWN0VmVyc2lvbmA7CisgICAgY2hvbXAobXkgJHZlcnNpb25TdHJpbmcgPSBg
c3dfdmVycyAtcHJvZHVjdFZlcnNpb25gKTsKICAgICAkb3NYVmVyc2lvbiA9IHNwbGl0VmVyc2lv
blN0cmluZygkdmVyc2lvblN0cmluZyk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>