<?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>92432</bug_id>
          
          <creation_ts>2012-07-26 15:56:47 -0700</creation_ts>
          <short_desc>nrwt: clean up --print options, logging modes</short_desc>
          <delta_ts>2012-08-07 19:11:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>NRWT</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88702</dependson>
    
    <dependson>93018</dependson>
    
    <dependson>93026</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>679869</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-26 15:56:47 -0700</bug_when>
    <thetext>There&apos;s entirely too much complexity in printing/logging in nrwt. I&apos;ve now got nearly (?) all of it stuffed behind the printing.py wall, so I can clean it up and eliminate a lot of the options.

My current plan is to make the output (and options) resemble what is currently implemented in test-webkitpy, with the following options:

--quiet : logs a ninja-esque status update, warnings, errors, tests that fail, and a one line summary at the end, *and nothing else*. If all tests pass successfully, you get one line of output indicating that.

(no args): equivalent to --print default,config today (more or less). Some introductory output logging the configuration, plus what you get with --quiet.

--verbose: the default plus one line per test, containing the results of the test

--details: --verbose plus the details of each test run a la --print trace-everything

--verbose --verbose: equivalent to today&apos;s --verbose: you get everything (except for --details -level information ; -vv -details would get that).

the --print argument will be removed.

comments welcome :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683709</commentid>
    <comment_count>1</comment_count>
      <attachid>155693</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-31 18:05:35 -0700</bug_when>
    <thetext>Created attachment 155693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683713</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-31 18:06:27 -0700</bug_when>
    <thetext>Okay, the attached patch does all of the above except for the ninja-style progress bar (which will come in a separate patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683910</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-31 23:28:57 -0700</bug_when>
    <thetext>Now buildbots use --verbose (get from run-webkit-tests wrapper script).
We should modify it to --verbose --verbose not to change this behaviour.

(A little bit later I&apos;ll check all of these options.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684335</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 11:08:34 -0700</bug_when>
    <thetext>discussion on webkit-dev@ suggests that we should use --debug instead of &apos;-vv&apos; or &apos;--verbose --verbose&apos;; however, we already use --debug to run the debug build (instead of the release build).

Ryosuke, what do you think of --debug-logging instead? 

We could also use something like --show-test-details (or --print-test-details) instead of --details, and --show-each-test instead of --verbose (possibly then leaving --verbose as it is today).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684357</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-01 11:22:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; discussion on webkit-dev@ suggests that we should use --debug instead of &apos;-vv&apos; or &apos;--verbose --verbose&apos;; however, we already use --debug to run the debug build (instead of the release build).
&gt; 
&gt; Ryosuke, what do you think of --debug-logging instead? 
&gt; 
&gt; We could also use something like --show-test-details (or --print-test-details) instead of --details, and --show-each-test instead of --verbose (possibly then leaving --verbose as it is today).

Ah, that&apos;s a good point. Maybe --more-verbose as John suggested on the thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684364</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-01 11:27:44 -0700</bug_when>
    <thetext>This is all bikeshed-painting, but the reason to separate logging levels is that one is best for engineers working on WebKit, and another is best for debugging NRWT itself.

It&apos;s not about having more or less verbosity - it&apos;s entirely possible that we&apos;ll want some logging that is only usable in &quot;less verbose&quot; mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684368</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 11:32:18 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; This is all bikeshed-painting, but the reason to separate logging levels is that one is best for engineers working on WebKit, and another is best for debugging NRWT itself.
&gt; 

This is true.

&gt; It&apos;s not about having more or less verbosity - it&apos;s entirely possible that we&apos;ll want some logging that is only usable in &quot;less verbose&quot; mode.

I&apos;m not quite sure what to make of this comment; are you suggesting we should have different names?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684371</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 11:34:07 -0700</bug_when>
    <thetext>I don&apos;t have a objection to --more-verbose or --extra-verbose, but they&apos;re kinda awkward :)

Any objection to making whatever we pick a synonym for &apos;--verbose --verbose&apos; so that that at least works, too? It would be useful at least temporarily since at least some of the bots are already passing it twice in preparation for something like this landing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684379</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-01 11:37:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I don&apos;t have a objection to --more-verbose or --extra-verbose, but they&apos;re kinda awkward :)
&gt; 
&gt; Any objection to making whatever we pick a synonym for &apos;--verbose --verbose&apos; so that that at least works, too? It would be useful at least temporarily since at least some of the bots are already passing it twice in preparation for something like this landing?

I object. Treating an option that appears for the second time differently from the first time is possibly the worst thing we can ever do in command line options. It&apos;s confusing and error prone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684381</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-01 11:38:46 -0700</bug_when>
    <thetext>I&apos;m fine with any of suggested names as long as it&apos;s separate from --verbose, --details, and other options.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684392</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 11:43:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; I don&apos;t have a objection to --more-verbose or --extra-verbose, but they&apos;re kinda awkward :)
&gt; &gt; 
&gt; &gt; Any objection to making whatever we pick a synonym for &apos;--verbose --verbose&apos; so that that at least works, too? It would be useful at least temporarily since at least some of the bots are already passing it twice in preparation for something like this landing?
&gt; 
&gt; I object. Treating an option that appears for the second time differently from the first time is possibly the worst thing we can ever do in command line options. It&apos;s confusing and error prone.

Okay :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684394</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 11:44:17 -0700</bug_when>
    <thetext>I think I&apos;ll probably go with --debug-nrwt-logging instead of --more-verbose or --extra-verbose, though. As Alexey says, it does help to make it clearer that this is about nrwt rather than the tests themselves.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684494</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-01 13:01:37 -0700</bug_when>
    <thetext>&gt; --debug-nrwt-logging

I agree with the direction of this discussion, but not with this name. &quot;New&quot; in NRWT is something we should get rid of sooner or later, and then the option would have to be renamed again. 

It&apos;s a poor practice to have &quot;new&quot; in tool or file names - &quot;old&quot; remains old, but &quot;new&quot; never remains new. I think that the time to remove &quot;new&quot; from nrwt is now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684508</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 13:18:26 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; --debug-nrwt-logging
&gt; 
&gt; I agree with the direction of this discussion, but not with this name. &quot;New&quot; in NRWT is something we should get rid of sooner or later, and then the option would have to be renamed again. 
&gt; 
&gt; It&apos;s a poor practice to have &quot;new&quot; in tool or file names - &quot;old&quot; remains old, but &quot;new&quot; never remains new. I think that the time to remove &quot;new&quot; from nrwt is now.

I actually had the same thought as you (about the undesirability of &quot;nrwt&quot; in the flag) but I didn&apos;t like &quot;--debug-logging&quot; because one might think it would include DRT logging, etc., and &quot;--debug-rwt-logging&quot; looked kinda goofy. Maybe it&apos;s not so bad, though? Any other suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684510</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-01 13:19:53 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I actually had the same thought as you (about the undesirability of &quot;nrwt&quot; in the flag) but I didn&apos;t like &quot;--debug-logging&quot; because one might think it would include DRT logging, etc., and &quot;--debug-rwt-logging&quot; looked kinda goofy. Maybe it&apos;s not so bad, though? Any other suggestions?

--debug-rwt-logging sounds fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684532</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-01 13:40:50 -0700</bug_when>
    <thetext>--debug-rwt-logging or --debug-rwt both seem fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684535</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 13:43:43 -0700</bug_when>
    <thetext>sold on --debug-rwt-logging!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684823</commentid>
    <comment_count>18</comment_count>
      <attachid>155936</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 17:52:32 -0700</bug_when>
    <thetext>Created attachment 155936
rename -vv to --debug-rwt-logging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684824</commentid>
    <comment_count>19</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-01 17:53:28 -0700</bug_when>
    <thetext>okay, can haz review plz?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685618</commentid>
    <comment_count>20</comment_count>
      <attachid>155936</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-02 11:32:42 -0700</bug_when>
    <thetext>Comment on attachment 155936
rename -vv to --debug-rwt-logging

okay, I&apos;m gonna go on the assumption that this patch is too big to review easily and split it up a bit ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685640</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-02 11:57:53 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 155936 [details])
&gt; okay, I&apos;m gonna go on the assumption that this patch is too big to review easily and split it up a bit ...

Yeah, that&apos;ll make the review easier. I did take a brief look at it but I decided that I need to read through it a couple of times as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685685</commentid>
    <comment_count>22</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-02 12:40:47 -0700</bug_when>
    <thetext>okay, first patch posted in bug 93018; I think there&apos;ll probably be three patches total (one more to clean up printing.py, and another to implement the new --verbose output).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689754</commentid>
    <comment_count>23</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-07 19:11:37 -0700</bug_when>
    <thetext>all patches have been landed, closing. I still need to change the progress meter to be a little more ninja-esque, but that&apos;ll be a separate bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155693</attachid>
            <date>2012-07-31 18:05:35 -0700</date>
            <delta_ts>2012-08-01 17:52:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92432-20120731180518.patch</filename>
            <type>text/plain</type>
            <size>71881</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjY3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzc4MzE4YmM5NjY5ZGY0ZmQyYTZmNDg0MTY1NTQxY2M2
NmVmYzBiZC4uZjU2ZTM4MWY1MjcxOGU3NDdiYTRiNTliOTUzNDRhM2U5ODlkZTQ2MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEw
MSBAQAogMjAxMi0wNy0zMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAor
ICAgICAgICBucnd0OiBjbGVhbiB1cCAtLXByaW50IG9wdGlvbnMsIGxvZ2dpbmcgbW9kZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNDMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBk
ZWxldGVzIGEgYnVuY2ggb2YgY29tcGxleGl0eSBpbiB0aGUgcHJpbnRpbmcgY29kZQorICAgICAg
ICBmb3IgbmV3LXJ1bi13ZWJraXQtdGVzdHMuCisKKyAgICAgICAgRmlyc3QsIHdlIHJlbW92ZSBh
bGwgb2YgdGhlIC0tcHJpbnQgb3B0aW9ucyAoYW5kIC0taGVscC1wcmludGluZykuCisKKyAgICAg
ICAgVGhpcyBpcyByZXBsYWNlZCBieSBmaXZlIHByaW50aW5nIG1vZGVzL29wdGlvbnM6CisgICAg
ICAgIDEpIGJ5IGRlZmF1bHQsIHdlIHByaW50IHNvbWUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlv
biwgZXJyb3JzLAorICAgICAgICB3YXJuaW5ncywgYW5kIGEgcHJvZ3Jlc3MgYmFyCisgICAgICAg
IDIpIGlmIC0tcXVpZXQgaXMgcGFzc2VkLCB3ZSBkb24ndCBwcmludCB0aGUgY29uZmlndXJhdGlv
biBpbmZvcm1hdGlvbgorICAgICAgICAodGhpcyB3YXMgdGhlIGRlZmF1bHQgYmVmb3JlKQorICAg
ICAgICAzKSBpZiAtLXZlcmJvc2UgaXMgc3BlY2lmaWVkIG9uY2UsIHlvdSB3aWxsIGdldCBhIG9u
ZS1saW5lLXBlcgorICAgICAgICB0ZXN0IHN1bW1hcnkgaW4gYWRkaXRpb24gdG8gdGhlIGRlZmF1
bHQgb3V0cHV0IG9mICgxKQorICAgICAgICA0KSBpZiAtLXZlcmJvc2UgaXMgc3BlY2lmaWVkIHR3
aWNlLCB5b3UgZ2V0IHRoZSBvbGQtc3R5bGUgZGVidWcgbG9nIG91dHB1dAorICAgICAgICA1KSBp
ZiAtLWRldGFpbHMgaXMgc3BlY2lmaWVkLCB5b3UgZ2V0IHRoZSBwZXItdGVzdCBkZXRhaWxzIHlv
dQorICAgICAgICB1c2VkIHRvIGdldCB3aXRoIC0tcHJpbnQgdHJhY2UtZXZlcnl0aGluZyBvciAt
LXByaW50IHRyYWNlLXVuZXhwZWN0ZWQKKworICAgICAgICAtLWRldGFpbHMgaGFuZGxpbmcgaXMg
bGFyZ2VseSBpbmRlcGVuZGVuZGVudCBvZiAtLXF1aWV0Ly0tdmVyYm9zZS4KKworICAgICAgICBB
bHNvLCB0aGlzIHBhdGNoIHJlbW92ZXMgYSBsb3Qgb2YgdGhlIHVuaXQgdGVzdHMgZnJvbSBwcmlu
dGluZ191bml0dGVzdDsKKyAgICAgICAgc2luY2UgdGhlIG1vZHVsZSBpcyBzbyBtdWNoIHNpbXBs
ZXIgbm93LCBhIGxvdCBvZiB0aGVtIHdlcmVuJ3QKKyAgICAgICAgbmVjZXNzYXJ5LgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGp1c3RzIHNvbWUgb2YgdGhlIHRleHQgc3RyaW5ncyBwcmlu
dGVkIGZvcgorICAgICAgICBlYWNoIGZhaWx1cmUgdHlwZSB0byByZWFkIGJldHRlciB3aXRoIHRo
ZSBuZXcgc3R5bGUgb2Ygb3V0cHV0LAorICAgICAgICBhbmQgYWRqdXN0cyBtYW55IG9mIHRoZSBp
bnRlZ3JhdGlvbiB0ZXN0cyBhY2NvcmRpbmdseS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHk6CisgICAgICAg
IChNYW5hZ2VyVGVzdC50ZXN0X2h0dHBfbG9ja2luZyk6CisgICAgICAgIChNYW5hZ2VyVGVzdC50
ZXN0X3BlcmZfbG9ja2luZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9u
cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weToKKyAgICAgICAgKHJ1bik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHk6CisgICAgICAgIChw
YXJzZV9hcmdzKToKKyAgICAgICAgKHBhc3NpbmdfcnVuKToKKyAgICAgICAgKGxvZ2dpbmdfcnVu
KToKKyAgICAgICAgKFN0cmVhbVRlc3RpbmdNaXhpbi5hc3NlcnRDb250YWluc0xpbmUpOgorICAg
ICAgICAoTWFpblRlc3QudGVzdF9jaGlsZF9wcm9jZXNzZXNfMik6CisgICAgICAgIChNYWluVGVz
dC50ZXN0X2NoaWxkX3Byb2Nlc3Nlc19taW4pOgorICAgICAgICAoTWFpblRlc3QudGVzdF9mdWxs
X3Jlc3VsdHNfaHRtbCk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X2h1bmdfdGhyZWFkKToKKyAg
ICAgICAgKE1haW5UZXN0LnRlc3RfcmVwZWF0X2VhY2hfaXRlcmF0aW9uc19udW1fdGVzdHMpOgor
ICAgICAgICAoTWFpblRlc3QudGVzdF90ZXN0X2xpc3QpOgorICAgICAgICAoTWFpblRlc3QudGVz
dF91bmV4cGVjdGVkX2ZhaWx1cmVzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfbWlzc2luZ19h
bmRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdmVyYm9zZSk6
CisgICAgICAgIChFbmRUb0VuZFRlc3QudGVzdF9lbmRfdG9fZW5kKToKKyAgICAgICAgKEVuZFRv
RW5kVGVzdC50ZXN0X3JlZnRlc3Rfd2l0aF90d29fbm90cmVmcyk6CisgICAgICAgIChSZWJhc2Vs
aW5lVGVzdC50ZXN0X3Jlc2V0X3Jlc3VsdHMpOgorICAgICAgICAoUmViYXNlbGluZVRlc3QudGVz
dF9taXNzaW5nX3Jlc3VsdHMpOgorICAgICAgICAoUmViYXNlbGluZVRlc3QudGVzdF9uZXdfYmFz
ZWxpbmUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21l
dGVyZWRfc3RyZWFtLnB5OgorICAgICAgICAoTWV0ZXJlZFN0cmVhbS5fX2luaXRfXyk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHk6Cisg
ICAgICAgIChwcmludF9vcHRpb25zKToKKyAgICAgICAgKFByaW50ZXIuX19pbml0X18pOgorICAg
ICAgICAoUHJpbnRlci5fX2RlbF9fKToKKyAgICAgICAgKFByaW50ZXIucHJpbnRfY29uZmlnKToK
KyAgICAgICAgKFByaW50ZXIucHJpbnRfZm91bmQpOgorICAgICAgICAoUHJpbnRlci5wcmludF9l
eHBlY3RlZCk6CisgICAgICAgIChQcmludGVyLnByaW50X3dvcmtlcnNfYW5kX3NoYXJkcyk6Cisg
ICAgICAgIChQcmludGVyKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2V4cGVjdGVkX3Jlc3Vs
dHNfb2ZfdHlwZSk6CisgICAgICAgIChQcmludGVyLnByaW50X3Jlc3VsdHMpOgorICAgICAgICAo
UHJpbnRlci5fcHJpbnRfdGltaW5nX3N0YXRpc3RpY3MpOgorICAgICAgICAoUHJpbnRlci5fcHJp
bnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9p
bmRpdmlkdWFsX3Rlc3RfdGltZXMpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfdGVzdF9saXN0
X3RpbWluZyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9kaXJlY3RvcnlfdGltaW5ncyk6Cisg
ICAgICAgIChQcmludGVyLl9wcmludF9zdGF0aXN0aWNzX2Zvcl90ZXN0X3RpbWluZ3MpOgorICAg
ICAgICAoUHJpbnRlci5fcHJpbnRfcmVzdWx0X3N1bW1hcnkpOgorICAgICAgICAoUHJpbnRlci5f
cHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfYWN0
dWFsKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X29uZV9saW5lX3N1bW1hcnkpOgorICAgICAg
ICAoUHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdCk6CisgICAgICAgIChQcmludGVyLl9wcmludF9i
YXNlbGluZSk6CisgICAgICAgIChQcmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMpOgor
ICAgICAgICAoUHJpbnRlci53cml0ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHk6CisgICAgICAgIChnZXRfb3B0aW9u
cyk6CisgICAgICAgIChUZXN0cHJpbnRlci5zZXRVcCk6CisgICAgICAgIChUZXN0cHJpbnRlci5n
ZXRfcHJpbnRlcik6CisgICAgICAgIChUZXN0cHJpbnRlci5nZXRfcmVzdWx0X3N1bW1hcnkpOgor
ICAgICAgICAoVGVzdHByaW50ZXIudGVzdF9jb25maWd1cmVfYW5kX2NsZWFudXApOgorICAgICAg
ICAoVGVzdHByaW50ZXIudGVzdF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMuZ2V0X3VuZXhwZWN0
ZWRfcmVzdWx0cyk6CisgICAgICAgIChUZXN0cHJpbnRlcik6CisgICAgICAgIChUZXN0cHJpbnRl
ci50ZXN0X3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisKKzIwMTItMDctMzEgIERpcmsgUHJh
bmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgbnJ3dDogcmVuYW1lIHdvcmtl
ci5weSB0byBsYXlvdXRfdGVzdF9ydW5uZXIucHkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODA0CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3Vu
aXR0ZXN0LnB5CmluZGV4IDZiMjE0YTI4Y2E3NjhmNTg5ZWUwYmUxYzBkNjQ2OWEzMmMwNzU1NmIu
LmJhYWQzOTE3MTIxZjFmYWRiZGExMDRlNGJjNzk3MTdmNDA5ZmIzNzkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQpAQCAtMjU0LDcgKzI1NCw3IEBAIGNsYXNzIE1hbmFn
ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV0dXJuIE1vY2tPcHRpb25zKHBp
eGVsX3Rlc3RzPUZhbHNlLCBuZXdfYmFzZWxpbmU9RmFsc2UsIHRpbWVfb3V0X21zPTYwMDAsIHNs
b3dfdGltZV9vdXRfbXM9MzAwMDAsIHdvcmtlcl9tb2RlbD0naW5saW5lJykKIAogICAgIGRlZiB0
ZXN0X2h0dHBfbG9ja2luZyh0ZXN0ZXIpOgotICAgICAgICBvcHRpb25zLCBhcmdzID0gcnVuX3dl
YmtpdF90ZXN0cy5wYXJzZV9hcmdzKFsnLS1wbGF0Zm9ybT10ZXN0JywgJy0tcHJpbnQ9bm90aGlu
ZycsICdodHRwL3Rlc3RzL3Bhc3NlcycsICdwYXNzZXMnXSkKKyAgICAgICAgb3B0aW9ucywgYXJn
cyA9IHJ1bl93ZWJraXRfdGVzdHMucGFyc2VfYXJncyhbJy0tcGxhdGZvcm09dGVzdCcsICdodHRw
L3Rlc3RzL3Bhc3NlcycsICdwYXNzZXMnXSkKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAg
ICAgICAgcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWU9b3B0aW9ucy5wbGF0
Zm9ybSwgb3B0aW9ucz1vcHRpb25zKQogICAgICAgICBydW5fd2Via2l0X3Rlc3RzLl9zZXRfdXBf
ZGVyaXZlZF9vcHRpb25zKHBvcnQsIG9wdGlvbnMpCkBAIC0yNjUsNyArMjY1LDcgQEAgY2xhc3Mg
TWFuYWdlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0ZXN0ZXIuYXNzZXJ0RXF1
YWxzKG51bV91bmV4cGVjdGVkX3Jlc3VsdHMsIDApCiAKICAgICBkZWYgdGVzdF9wZXJmX2xvY2tp
bmcodGVzdGVyKToKLSAgICAgICAgb3B0aW9ucywgYXJncyA9IHJ1bl93ZWJraXRfdGVzdHMucGFy
c2VfYXJncyhbJy0tcGxhdGZvcm09dGVzdCcsICctLXByaW50PW5vdGhpbmcnLCAnLS1uby1odHRw
JywgJ3Bhc3NlcycsICdwZXJmLyddKQorICAgICAgICBvcHRpb25zLCBhcmdzID0gcnVuX3dlYmtp
dF90ZXN0cy5wYXJzZV9hcmdzKFsnLS1wbGF0Zm9ybT10ZXN0JywgJy0tbm8taHR0cCcsICdwYXNz
ZXMnLCAncGVyZi8nXSkKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgcG9ydCA9
IGhvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWU9b3B0aW9ucy5wbGF0Zm9ybSwgb3B0aW9u
cz1vcHRpb25zKQogICAgICAgICBydW5fd2Via2l0X3Rlc3RzLl9zZXRfdXBfZGVyaXZlZF9vcHRp
b25zKHBvcnQsIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKaW5kZXggOGVl
ODdiM2M3ZDA4ZDUyOTUyZTAyMGE0OTNmYzc0MTM2N2Y1ZjA4Yi4uMDU5NTdhZjgwZjQwMjA2NTVl
NGM5OGU2ZDBkOWI0NjE1YzlmMzdmNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQpA
QCAtNjkwLDE4ICs2OTAsMTYgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAg
ICAgICAgICAgICAgICAgICAnY3Jhc2gnOiBDUkFTSCwKICAgICAgICAgICAgICAgICAgICAgJ21p
c3NpbmcnOiBNSVNTSU5HfQogCi0gICAgRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TID0ge1NLSVA6
ICgnc2tpcHBlZCcsICdza2lwcGVkJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBBU1M6ICgncGFzcycsICdwYXNzZXMnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVEVYVDogKCd0ZXh0IGRpZmYgbWlzbWF0Y2gnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3RleHQgZGlmZiBtaXNtYXRjaCcpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJTUFHRTogKCdpbWFnZSBtaXNtYXRjaCcsICdpbWFnZSBtaXNtYXRjaCcp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTUFHRV9QTFVTX1RFWFQ6ICgnaW1h
Z2UgYW5kIHRleHQgbWlzbWF0Y2gnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnaW1hZ2UgYW5kIHRleHQgbWlzbWF0Y2gnKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQVVESU86ICgnYXVkaW8gbWlzbWF0Y2gnLCAnYXVkaW8gbWlz
bWF0Y2gnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1JBU0g6ICgnY3Jhc2gn
LCAnY3Jhc2hlcycpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSU1FT1VUOiAo
J3Rlc3QgdGltZWQgb3V0JywgJ3Rlc3RzIHRpbWVkIG91dCcpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNSVNTSU5HOiAoJ25vIGV4cGVjdGVkIHJlc3VsdCBmb3VuZCcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm8gZXhwZWN0ZWQgcmVzdWx0
cyBmb3VuZCcpfQorICAgICMgKGFnZ3JlZ2F0ZWQgYnkgY2F0ZWdvcnksIHBhc3MvZmFpbC9za2lw
LCB0eXBlKQorICAgIEVYUEVDVEFUSU9OX0RFU0NSSVBUSU9OUyA9IHtTS0lQOiAoJ3NraXBwZWQn
LCAnc2tpcHBlZCcsICcnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTUzog
KCdwYXNzJywgJ3Bhc3NlZCcsICcnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VEVYVDogKCd0ZXh0IGRpZmYgbWlzbWF0Y2gnLCAnZmFpbGVkJywgJyAodGV4dCBkaWZmKScpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTUFHRTogKCdpbWFnZSBtaXNtYXRjaCcs
ICdmYWlsZWQnLCAnIChpbWFnZSBkaWZmKScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJTUFHRV9QTFVTX1RFWFQ6ICgnaW1hZ2UgYW5kIHRleHQgbWlzbWF0Y2gnLCAnZmFpbGVk
JywgJyAoYm90aCBpbWFnZSBhbmQgdGV4dCBkaWZmcycpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBVURJTzogKCdhdWRpbyBtaXNtYXRjaCcsICdmYWlsZWQnLCAnIChhdWRpbyBk
aWZmKScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkFTSDogKCdjcmFzaCcs
ICdjcmFzaGVkJywgJycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSU1FT1VU
OiAoJ3Rlc3QgdGltZWQgb3V0JywgJ3RpbWVkIG91dCcsICcnKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTUlTU0lORzogKCdubyBleHBlY3RlZCByZXN1bHQgZm91bmQnLCAnaXMg
bWlzc2luZyBhbiBleHBlY3RlZCByZXN1bHQnLCAnJyl9CiAKICAgICBFWFBFQ1RBVElPTl9PUkRF
UiA9IChQQVNTLCBDUkFTSCwgVElNRU9VVCwgTUlTU0lORywgSU1BR0VfUExVU19URVhULCBURVhU
LCBJTUFHRSwgQVVESU8sIFNLSVApCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IGM0ZjRmMjQwNDkyN2Qw
NzhkY2E3MGRhOTc0NWVkNWZjNjY1ZGQxNjQuLmQ4MTZiMDQxODY0MTc2NmY0OTc2MjhiODJhNzc0
Y2I4ZmM1Y2QwMzkgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtOTcsMTEgKzk3LDYgQEAgZGVmIHJ1bihw
b3J0LCBvcHRpb25zLCBhcmdzLCByZWd1bGFyX291dHB1dD1zeXMuc3RkZXJyLCBidWlsZGJvdF9v
dXRwdXQ9c3lzLnN0ZG8KICAgICAgICAgZm9yIHdhcm5pbmcgaW4gd2FybmluZ3M6CiAgICAgICAg
ICAgICBfbG9nLndhcm5pbmcod2FybmluZykKIAotICAgICAgICBpZiBvcHRpb25zLmhlbHBfcHJp
bnRpbmc6Ci0gICAgICAgICAgICBwcmludGVyLmhlbHBfcHJpbnRpbmcoKQotICAgICAgICAgICAg
cHJpbnRlci5jbGVhbnVwKCkKLSAgICAgICAgICAgIHJldHVybiAwCi0KICAgICAgICAgaWYgb3B0
aW9ucy5saW50X3Rlc3RfZmlsZXM6CiAgICAgICAgICAgICByZXR1cm4gbGludChwb3J0LCBvcHRp
b25zKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CmluZGV4
IDZkNDkxNGVhZmFhY2E0MzdmZWFmODE2YmRiZmIyNmM3MGJkZWU1NzQuLjE4NmE3ZDdiMzM3ZDI4
NTNmYjUxMTMxMmY2ZDc2MThjMTVlZjBjMGEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNf
aW50ZWdyYXRpb250ZXN0LnB5CkBAIC01OCwxMiArNTgsOSBAQCBmcm9tIHdlYmtpdHB5LnRlc3Qu
c2tpcCBpbXBvcnQgc2tpcF9pZgogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBN
b2NrT3B0aW9ucwogCiAKLWRlZiBwYXJzZV9hcmdzKGV4dHJhX2FyZ3M9Tm9uZSwgcmVjb3JkX3Jl
c3VsdHM9RmFsc2UsIHRlc3RzX2luY2x1ZGVkPUZhbHNlLCBuZXdfcmVzdWx0cz1GYWxzZSwgcHJp
bnRfbm90aGluZz1UcnVlKToKK2RlZiBwYXJzZV9hcmdzKGV4dHJhX2FyZ3M9Tm9uZSwgcmVjb3Jk
X3Jlc3VsdHM9RmFsc2UsIHRlc3RzX2luY2x1ZGVkPUZhbHNlLCBuZXdfcmVzdWx0cz1GYWxzZSk6
CiAgICAgZXh0cmFfYXJncyA9IGV4dHJhX2FyZ3Mgb3IgW10KLSAgICBpZiBwcmludF9ub3RoaW5n
OgotICAgICAgICBhcmdzID0gWyctLXByaW50JywgJ25vdGhpbmcnXQotICAgIGVsc2U6Ci0gICAg
ICAgIGFyZ3MgPSBbXQorICAgIGFyZ3MgPSBbXQogICAgIGlmIG5vdCAnLS1wbGF0Zm9ybScgaW4g
ZXh0cmFfYXJnczoKICAgICAgICAgYXJncy5leHRlbmQoWyctLXBsYXRmb3JtJywgJ3Rlc3QnXSkK
ICAgICBpZiBub3QgcmVjb3JkX3Jlc3VsdHM6CkBAIC05NSwxNCArOTIsMTQgQEAgZGVmIHBhc3Np
bmdfcnVuKGV4dHJhX2FyZ3M9Tm9uZSwgcG9ydF9vYmo9Tm9uZSwgcmVjb3JkX3Jlc3VsdHM9RmFs
c2UsIHRlc3RzX2luY2wKICAgICBidWlsZGJvdF9vdXRwdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygp
CiAgICAgcmVndWxhcl9vdXRwdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCiAgICAgcmVzID0gcnVu
X3dlYmtpdF90ZXN0cy5ydW4ocG9ydF9vYmosIG9wdGlvbnMsIHBhcnNlZF9hcmdzLCBidWlsZGJv
dF9vdXRwdXQ9YnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dD1yZWd1bGFyX291dHB1dCkK
LSAgICByZXR1cm4gcmVzID09IDAgYW5kIG5vdCByZWd1bGFyX291dHB1dC5nZXR2YWx1ZSgpIGFu
ZCBub3QgYnVpbGRib3Rfb3V0cHV0LmdldHZhbHVlKCkKKyAgICByZXR1cm4gcmVzID09IDAKIAog
CiBkZWYgbG9nZ2luZ19ydW4oZXh0cmFfYXJncz1Ob25lLCBwb3J0X29iaj1Ob25lLCByZWNvcmRf
cmVzdWx0cz1GYWxzZSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2UsIGhvc3Q9Tm9uZSwgbmV3X3Jlc3Vs
dHM9RmFsc2UsIHNoYXJlZF9wb3J0PVRydWUpOgogICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0g
cGFyc2VfYXJncyhleHRyYV9hcmdzPWV4dHJhX2FyZ3MsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY29yZF9yZXN1bHRzPXJlY29yZF9yZXN1bHRzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD10ZXN0c19pbmNsdWRl
ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRfbm90aGluZz1G
YWxzZSwgbmV3X3Jlc3VsdHM9bmV3X3Jlc3VsdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5ld19yZXN1bHRzPW5ld19yZXN1bHRzKQogICAgIGhvc3QgPSBob3N0IG9y
IE1vY2tIb3N0KCkKICAgICBpZiBub3QgcG9ydF9vYmo6CiAgICAgICAgIHBvcnRfb2JqID0gaG9z
dC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT1vcHRpb25zLnBsYXRmb3JtLCBvcHRpb25zPW9w
dGlvbnMpCkBAIC0xODcsNyArMTg0LDcgQEAgY2xhc3MgU3RyZWFtVGVzdGluZ01peGluKG9iamVj
dCk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzdHJpbmcgaW4gc3RyZWFtLmdldHZhbHVlKCkp
CiAKICAgICBkZWYgYXNzZXJ0Q29udGFpbnNMaW5lKHNlbGYsIHN0cmVhbSwgc3RyaW5nKToKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHN0cmluZyBpbiBzdHJlYW0uYnVmbGlzdCkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGFueShzdHJpbmcgaW4gYnVmIGZvciBidWYgaW4gc3RyZWFtLmJ1Zmxp
c3QpKQogCiAgICAgZGVmIGFzc2VydEVtcHR5KHNlbGYsIHN0cmVhbSk6CiAgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2Uoc3RyZWFtLmdldHZhbHVlKCkpCkBAIC0zMDksMTUgKzMwNiwxMiBAQCBjbGFz
cyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKIAogICAg
IGRlZiB0ZXN0X2NoaWxkX3Byb2Nlc3Nlc18yKHNlbGYpOgogICAgICAgICBpZiBzZWxmLnNob3Vs
ZF90ZXN0X3Byb2Nlc3NlczoKLSAgICAgICAgICAgIF8sIF8sIHJlZ3VsYXJfb3V0cHV0LCBfID0g
bG9nZ2luZ19ydW4oCi0gICAgICAgICAgICAgICAgWyctLXByaW50JywgJ2NvbmZpZycsICctLWNo
aWxkLXByb2Nlc3NlcycsICcyJ10sIHNoYXJlZF9wb3J0PUZhbHNlKQorICAgICAgICAgICAgXywg
XywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bihbJy0tY2hpbGQtcHJvY2Vzc2VzJywg
JzInXSwgc2hhcmVkX3BvcnQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55
KFsnUnVubmluZyAyICcgaW4gbGluZSBmb3IgbGluZSBpbiByZWd1bGFyX291dHB1dC5idWZsaXN0
XSkpCiAKICAgICBkZWYgdGVzdF9jaGlsZF9wcm9jZXNzZXNfbWluKHNlbGYpOgogICAgICAgICBp
ZiBzZWxmLnNob3VsZF90ZXN0X3Byb2Nlc3NlczoKLSAgICAgICAgICAgIF8sIF8sIHJlZ3VsYXJf
b3V0cHV0LCBfID0gbG9nZ2luZ19ydW4oCi0gICAgICAgICAgICAgICAgWyctLXByaW50JywgJ2Nv
bmZpZycsICctLWNoaWxkLXByb2Nlc3NlcycsICcyJywgJ3Bhc3NlcyddLAotICAgICAgICAgICAg
ICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsIHNoYXJlZF9wb3J0PUZhbHNlKQorICAgICAgICAgICAg
XywgXywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bihbJy0tY2hpbGQtcHJvY2Vzc2Vz
JywgJzInLCAncGFzc2VzJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIHNoYXJlZF9wb3J0PUZhbHNl
KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFueShbJ1J1bm5pbmcgMSAnIGluIGxpbmUg
Zm9yIGxpbmUgaW4gcmVndWxhcl9vdXRwdXQuYnVmbGlzdF0pKQogCiAgICAgZGVmIHRlc3RfZHJ5
cnVuKHNlbGYpOgpAQCAtMzQ2LDIxICszNDAsMTMgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3Qu
VGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAKICAgICBkZWYgdGVzdF9mdWxsX3Jlc3Vs
dHNfaHRtbChzZWxmKToKICAgICAgICAgIyBGSVhNRTogdmVyaWZ5IGh0bWw/Ci0gICAgICAgIHJl
cywgb3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bihbJy0tZnVsbC1yZXN1bHRzLWh0bWwnXSkK
KyAgICAgICAgcmVzLCBfLCBfLCBfID0gbG9nZ2luZ19ydW4oWyctLWZ1bGwtcmVzdWx0cy1odG1s
J10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAwKQogCi0gICAgZGVmIHRlc3RfaGVs
cF9wcmludGluZyhzZWxmKToKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdf
cnVuKFsnLS1oZWxwLXByaW50aW5nJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAw
KQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RF
bXB0eShlcnIpCi0KICAgICBkZWYgdGVzdF9odW5nX3RocmVhZChzZWxmKToKLSAgICAgICAgcmVz
LCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnLS1ydW4tc2luZ2x5JywgJy0tdGltZS1v
dXQtbXM9NTAnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zh
aWx1cmVzL2V4cGVjdGVkL2hhbmcuaHRtbCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKKyAgICAgICAgcmVzLCBfLCBlcnIs
IF8gPSBsb2dnaW5nX3J1bihbJy0tcnVuLXNpbmdseScsICctLXRpbWUtb3V0LW1zPTUwJywgJ2Zh
aWx1cmVzL2V4cGVjdGVkL2hhbmcuaHRtbCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVzLCAwKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKICAgICAgICAgc2VsZi5h
c3NlcnROb3RFbXB0eShlcnIpCiAKICAgICBkZWYgdGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQoc2Vs
Zik6CkBAIC00MzksNyArNDI1LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2Us
IFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAg
IHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0taXRlcmF0aW9ucycsICcyJywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1yZXBlYXQtZWFjaCcsICc0
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1wcmludCcsICdl
dmVyeXRoaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS12
ZXJib3NlJywgJy0tdmVyYm9zZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJ10s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1U
cnVlLCBob3N0PWhvc3QsIHJlY29yZF9yZXN1bHRzPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0
Q29udGFpbnNMaW5lKG91dCwgIj0+IFJlc3VsdHM6IDgvMTYgdGVzdHMgcGFzc2VkICg1MC4wJSlc
biIpCkBAIC01MjcsOCArNTEzLDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2Us
IFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4o
WyctLXRlc3QtbGlzdD0lcycgJSBmaWxlbmFtZV0sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0
ZW5fYmF0Y2hlcz1UcnVlLCBob3N0PWhvc3QpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsn
cGFzc2VzL3RleHQuaHRtbCddLCB0ZXN0c19ydW4pCiAgICAgICAgIGhvc3QuZmlsZXN5c3RlbS5y
ZW1vdmUoZmlsZW5hbWUpCi0gICAgICAgIHJlcywgb3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1
bihbJy0tdGVzdC1saXN0PSVzJyAlIGZpbGVuYW1lXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAg
ICAgcmVzLCBfLCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tdGVzdC1saXN0PSVzJyAlIGZpbGVu
YW1lXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHJlcywgLTEpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQogCkBAIC01
NDIsMTAgKzUyNyw4IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1U
ZXN0aW5nTWl4aW4pOgogICAgIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZik6CiAg
ICAgICAgICMgUnVuIHRlc3RzIGluY2x1ZGluZyB0aGUgdW5leHBlY3RlZCBmYWlsdXJlcy4KICAg
ICAgICAgc2VsZi5fdXJsX29wZW5lZCA9IE5vbmUKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNl
ciA9IGxvZ2dpbmdfcnVuKHRlc3RzX2luY2x1ZGVkPVRydWUpCi0KKyAgICAgICAgcmVzLCBfLCBl
cnIsIHVzZXIgPSBsb2dnaW5nX3J1bih0ZXN0c19pbmNsdWRlZD1UcnVlKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHJlcywgdW5leHBlY3RlZF90ZXN0c19jb3VudCkKLSAgICAgICAgc2VsZi5h
c3NlcnROb3RFbXB0eShvdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHVzZXIub3BlbmVkX3VybHMsIFtwYXRoLmFic3BhdGhfdG9f
dXJpKE1vY2tIb3N0KCkucGxhdGZvcm0sICcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcmVzdWx0
cy5odG1sJyldKQogCkBAIC01NTMsNyArNTM2LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3Qu
VGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIHVw
ZGF0ZSBleHBlY3RhdGlvbnMgaW4gcGxhY2UuIElmIHRoZSBleHBlY3RhdGlvbgogICAgICAgICAj
IGlzIG1pc3NpbmcsIHVwZGF0ZSB0aGUgZXhwZWN0ZWQgZ2VuZXJpYyBsb2NhdGlvbi4KICAgICAg
ICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdf
cnVuKFsnLS1uby1zaG93LXJlc3VsdHMnLAorICAgICAgICByZXMsIF8sIF8sIF8gPSBsb2dnaW5n
X3J1bihbJy0tbm8tc2hvdy1yZXN1bHRzJywKICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3Rl
ZC9taXNzaW5nX2ltYWdlLmh0bWwnLAogICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQv
bWlzc2luZ190ZXh0Lmh0bWwnLAogICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvdGV4
dC1pbWFnZS1jaGVja3N1bS5odG1sJ10sCkBAIC05MzEsOSArOTE0LDkgQEAgY2xhc3MgTWFpblRl
c3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgZGVmIHRlc3Rf
dmVyYm9zZShzZWxmKToKICAgICAgICAgIyBOb3RlIHRoYXQgdGhlIHRlc3RzIGZhaWwgYmVjYXVz
ZSB3ZSBjYW4ndCBwYXNzIGEgbW9jayBob3N0IHRvIHRoZSB3b3JrZXIgcHJvY2Vzc2VzICphbmQq
CiAgICAgICAgICMgdXNlIG91dHB1dGNhcHR1cmUgdG8gY2FwdHVyZSB0aGUgb3V0cHV0IChkb2lu
ZyB0aGUgbGF0dGVyIHJlc3VsdHMgaW4gYSBub25waWNrbGFibGUgaG9zdCkuCi0gICAgICAgIF8s
IF8sIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS12ZXJib3NlJywgJy0tZnVsbHktcGFyYWxsZWwn
LCAnLS1jaGlsZC1wcm9jZXNzZXMnLCAnMicsICdwYXNzZXMvdGV4dC5odG1sJywgJ3Bhc3Nlcy9p
bWFnZS5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZSgndGV4dC5odG1sIGZhaWxlZCcgaW4gZXJyLmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgnaW1hZ2UuaHRtbCBmYWlsZWQnIGluIGVyci5nZXR2YWx1ZSgpKQorICAgICAgICBf
LCBfLCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tdmVyYm9zZScsICctLXZlcmJvc2UnLCAnLS1m
dWxseS1wYXJhbGxlbCcsICctLWNoaWxkLXByb2Nlc3NlcycsICcyJywgJ3Bhc3Nlcy90ZXh0Lmh0
bWwnLCAncGFzc2VzL2ltYWdlLmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCd0ZXh0Lmh0bWwgaXMgbWlzc2luZyBhbiBleHBlY3RlZCByZXN1bHQn
IGluIGVyci5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2ltYWdlLmh0bWwg
aXMgbWlzc2luZyBhbiBleHBlY3RlZCByZXN1bHQnIGluIGVyci5nZXR2YWx1ZSgpKQogCiAKIGNs
YXNzIEVuZFRvRW5kVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC05NDQsNyArOTI3LDcgQEAg
Y2xhc3MgRW5kVG9FbmRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2Vu
ZF90b19lbmQoc2VsZik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCi0gICAgICAgIHJlcywg
b3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bihyZWNvcmRfcmVzdWx0cz1UcnVlLCB0ZXN0c19p
bmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCisgICAgICAgIHJlcywgXywgXywgdXNlciA9IGxvZ2dp
bmdfcnVuKHJlY29yZF9yZXN1bHRzPVRydWUsIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9z
dCkKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXMsIHVuZXhwZWN0ZWRfdGVzdHNfY291
bnQpCiAgICAgICAgIHJlc3VsdHMgPSBzZWxmLnBhcnNlX2Z1bGxfcmVzdWx0cyhob3N0LmZpbGVz
eXN0ZW0ucmVhZF90ZXh0X2ZpbGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mdWxsX3Jlc3Vs
dHMuanNvbicpKQpAQCAtOTU5LDcgKzk0Miw3IEBAIGNsYXNzIEVuZFRvRW5kVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIHVwZGF0ZSBleHBlY3RhdGlvbnMg
aW4gcGxhY2UuIElmIHRoZSBleHBlY3RhdGlvbgogICAgICAgICAjIGlzIG1pc3NpbmcsIHVwZGF0
ZSB0aGUgZXhwZWN0ZWQgZ2VuZXJpYyBsb2NhdGlvbi4KICAgICAgICAgaG9zdCA9IE1vY2tIb3N0
KCkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1uby1zaG93LXJl
c3VsdHMnLCAncmVmdGVzdHMvZm9vLyddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3Qs
IHJlY29yZF9yZXN1bHRzPVRydWUpCisgICAgICAgIHJlcywgXywgZXJyLCBfID0gbG9nZ2luZ19y
dW4oWyctLW5vLXNob3ctcmVzdWx0cycsICdyZWZ0ZXN0cy9mb28vJ10sIHRlc3RzX2luY2x1ZGVk
PVRydWUsIGhvc3Q9aG9zdCwgcmVjb3JkX3Jlc3VsdHM9VHJ1ZSkKICAgICAgICAgZmlsZV9saXN0
ID0gaG9zdC5maWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMua2V5cygpCiAgICAgICAgIGZpbGVfbGlz
dC5yZW1vdmUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4wLnR4dCcpCiAgICAg
ICAgIGpzb25fc3RyaW5nID0gaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvZnVsbF9yZXN1bHRzLmpzb24nKQpAQCAtOTkxLDE1ICs5NzQsMTEg
QEAgY2xhc3MgUmViYXNlbGluZVRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdN
aXhpbik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIHVwZGF0ZSBleHBlY3RhdGlvbnMgaW4gcGxh
Y2UuIElmIHRoZSBleHBlY3RhdGlvbgogICAgICAgICAjIGlzIG1pc3NpbmcsIHVwZGF0ZSB0aGUg
ZXhwZWN0ZWQgZ2VuZXJpYyBsb2NhdGlvbi4KICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAg
ICAgICAgcmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1waXhlbC10ZXN0cycsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnLS1yZXNldC1yZXN1bHRzJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICdwYXNzZXMvaW1hZ2UuaHRtbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAn
ZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1sJ10sCi0gICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QsIG5ld19yZXN1bHRzPVRydWUp
CisgICAgICAgIHJlcywgXywgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLXBpeGVsLXRlc3RzJywg
Jy0tcmVzZXQtcmVzdWx0cycsICdwYXNzZXMvaW1hZ2UuaHRtbCcsICdmYWlsdXJlcy9leHBlY3Rl
ZC9taXNzaW5nX2ltYWdlLmh0bWwnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QsIG5ld19yZXN1bHRzPVRydWUpCiAg
ICAgICAgIGZpbGVfbGlzdCA9IGhvc3QuZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzLmtleXMoKQog
ICAgICAgICBmaWxlX2xpc3QucmVtb3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNf
cnVuMC50eHQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXMsIDApCi0gICAgICAgIHNl
bGYuYXNzZXJ0RW1wdHkob3V0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xp
c3QpLCA0KQogICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsICJwYXNzZXMv
aW1hZ2UiLCBbIi50eHQiLCAiLnBuZyJdLCBlcnIpCiAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxp
bmVzKGZpbGVfbGlzdCwgImZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfaW1hZ2UiLCBbIi50eHQi
LCAiLnBuZyJdLCBlcnIpCkBAIC0xMDA5LDE1ICs5ODgsMTQgQEAgY2xhc3MgUmViYXNlbGluZVRl
c3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgaXMg
bWlzc2luZywgdXBkYXRlIHRoZSBleHBlY3RlZCBnZW5lcmljIGxvY2F0aW9uLgogICAgICAgICBo
b3N0ID0gTW9ja0hvc3QoKQogICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9nZ2luZ19ydW4o
WyctLW5vLXNob3ctcmVzdWx0cycsCi0gICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvdW5l
eHBlY3RlZC9taXNzaW5nX3RleHQuaHRtbCcsCi0gICAgICAgICAgICAgICAgICAgICAnZmFpbHVy
ZXMvdW5leHBlY3RlZC9taXNzaW5nX2ltYWdlLmh0bWwnLAotICAgICAgICAgICAgICAgICAgICAg
J2ZhaWx1cmVzL3VuZXhwZWN0ZWQvbWlzc2luZ19hdWRpby5odG1sJywKLSAgICAgICAgICAgICAg
ICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfcmVuZGVyX3RyZWVfZHVtcC5odG1s
J10sCi0gICAgICAgICAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3Qs
IG5ld19yZXN1bHRzPVRydWUpCisgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNz
aW5nX3RleHQuaHRtbCcsCisgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNzaW5n
X2ltYWdlLmh0bWwnLAorICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvbWlzc2luZ19h
dWRpby5odG1sJywKKyAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfcmVu
ZGVyX3RyZWVfZHVtcC5odG1sJ10sCisgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBo
b3N0PWhvc3QsIG5ld19yZXN1bHRzPVRydWUpCiAgICAgICAgIGZpbGVfbGlzdCA9IGhvc3QuZmls
ZXN5c3RlbS53cml0dGVuX2ZpbGVzLmtleXMoKQogICAgICAgICBmaWxlX2xpc3QucmVtb3ZlKCcv
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHQnKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhyZXMsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xpc3QpLCA2KQogICAgICAgICBzZWxmLmFz
c2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsICJmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfdGV4
dCIsIFsiLnR4dCJdLCBlcnIpCiAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlz
dCwgInBsYXRmb3JtL3Rlc3QvZmFpbHVyZXMvdW5leHBlY3RlZC9taXNzaW5nX2ltYWdlIiwgWyIu
cG5nIl0sIGVycikKQEAgLTEwMzUsNyArMTAxMyw2IEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICBmaWxlX2xpc3Qg
PSBob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcy5rZXlzKCkKICAgICAgICAgZmlsZV9saXN0
LnJlbW92ZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjAudHh0JykKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91
dCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZV9saXN0KSwgNCkKICAgICAgICAg
c2VsZi5hc3NlcnRCYXNlbGluZXMoZmlsZV9saXN0LAogICAgICAgICAgICAgInBsYXRmb3JtL3Rl
c3QtbWFjLWxlb3BhcmQvcGFzc2VzL2ltYWdlIiwgWyIudHh0IiwgIi5wbmciXSwgZXJyKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJl
ZF9zdHJlYW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9t
ZXRlcmVkX3N0cmVhbS5weQppbmRleCBlYzczYTkzYWM5MGQ2NTgwMTc0ZjYyYjA1NWE2YTg5OTVk
ODExOWI3Li40YzFkMmY1ZmI2YTRmMWY1MDk1YTFjNTFmYTk5Y2Q5NGM2MTlmMjM1IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0
cmVhbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9t
ZXRlcmVkX3N0cmVhbS5weQpAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBNZXRlcmVkU3RyZWFtKG9i
amVjdCk6CiAgICAgZGVmIF9lbnN1cmVfbmV3bGluZSh0eHQpOgogICAgICAgICByZXR1cm4gdHh0
IGlmIHR4dC5lbmRzd2l0aCgnXG4nKSBlbHNlIHR4dCArICdcbicKIAotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBzdHJlYW09Tm9uZSwgdmVyYm9zZT1GYWxzZSwgbG9nZ2VyPU5vbmUsIHRpbWVfZm49
Tm9uZSwgcGlkPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdHJlYW09Tm9uZSwgdmVy
Ym9zZT1GYWxzZSwgbG9nZ2VyPU5vbmUsIHRpbWVfZm49Tm9uZSwgcGlkPU5vbmUsIGxvZ19sZXZl
bD1sb2dnaW5nLklORk8pOgogICAgICAgICBzZWxmLl9zdHJlYW0gPSBzdHJlYW0gb3Igc3lzLnN0
ZGVycgogICAgICAgICBzZWxmLl92ZXJib3NlID0gdmVyYm9zZQogICAgICAgICBzZWxmLl90aW1l
X2ZuID0gdGltZV9mbiBvciB0aW1lLnRpbWUKQEAgLTY3LDcgKzY3LDYgQEAgY2xhc3MgTWV0ZXJl
ZFN0cmVhbShvYmplY3QpOgogICAgICAgICBzZWxmLl9sb2dnZXIgPSBsb2dnZXIKICAgICAgICAg
c2VsZi5fbG9nX2hhbmRsZXIgPSBOb25lCiAgICAgICAgIGlmIHNlbGYuX2xvZ2dlcjoKLSAgICAg
ICAgICAgIGxvZ19sZXZlbCA9IGxvZ2dpbmcuREVCVUcgaWYgdmVyYm9zZSBlbHNlIGxvZ2dpbmcu
SU5GTwogICAgICAgICAgICAgc2VsZi5fbG9nX2hhbmRsZXIgPSBfTG9nSGFuZGxlcihzZWxmKQog
ICAgICAgICAgICAgc2VsZi5fbG9nX2hhbmRsZXIuc2V0TGV2ZWwobG9nX2xldmVsKQogICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmFkZEhhbmRsZXIoc2VsZi5fbG9nX2hhbmRsZXIpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5
CmluZGV4IDhiYzg5YjI1ZmFkOTI5NzgwODRlZDdlMTkyZGE5ODRlZjc3NjRiZTMuLjlmZmM2MDg1
YzE1NmEyNmEwZTM0ZWE0M2E0MzAwZjI1NTcwNzQzZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CkBAIC0yNyw4ICsy
Nyw5IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0iIiJQYWNrYWdlIHRoYXQg
aGFuZGxlcyBub24tZGVidWcsIG5vbi1maWxlIG91dHB1dCBmb3IgcnVuLXdlYmtpdC10ZXN0cy4i
IiIKKyIiIk1vZHVsZSB0aGF0IGhhbmRsZXMgYWxsIG91dHB1dCBmb3IgbmV3LXJ1bi13ZWJraXQt
dGVzdHMuIiIiCiAKK2ltcG9ydCBsb2dnaW5nCiBpbXBvcnQgbWF0aAogaW1wb3J0IG9wdHBhcnNl
CiAKQEAgLTM4LDExNSArMzksMjAgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxz
IGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9k
ZWxzLnRlc3RfZXhwZWN0YXRpb25zIGltcG9ydCBUZXN0RXhwZWN0YXRpb25zCiBmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy52aWV3cy5tZXRlcmVkX3N0cmVhbSBpbXBvcnQgTWV0ZXJlZFN0cmVh
bQogCi1OVU1fU0xPV19URVNUU19UT19MT0cgPSAxMAogCi1QUklOVF9ERUZBVUxUID0gIm1pc2Ms
b25lLWxpbmUtcHJvZ3Jlc3Msb25lLWxpbmUtc3VtbWFyeSx1bmV4cGVjdGVkLHVuZXhwZWN0ZWQt
cmVzdWx0cyx1cGRhdGVzIgotUFJJTlRfRVZFUllUSElORyA9ICJhY3R1YWwsY29uZmlnLGV4cGVj
dGVkLG1pc2Msb25lLWxpbmUtcHJvZ3Jlc3Msb25lLWxpbmUtc3VtbWFyeSxzbG93ZXN0LHRpbWlu
Zyx1bmV4cGVjdGVkLHVuZXhwZWN0ZWQtcmVzdWx0cyx1cGRhdGVzIgotCi1IRUxQX1BSSU5USU5H
ID0gIiIiCi1PdXRwdXQgZm9yIHJ1bi13ZWJraXQtdGVzdHMgaXMgY29udHJvbGxlZCBieSBhIGNv
bW1hLXNlcGFyYXRlZCBsaXN0IG9mCi12YWx1ZXMgcGFzc2VkIHRvIC0tcHJpbnQuICBWYWx1ZXMg
ZWl0aGVyIGluZmx1ZW5jZSB0aGUgb3ZlcmFsbCBvdXRwdXQsIG9yCi10aGUgb3V0cHV0IGF0IHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIHJ1biwgZHVyaW5nIHRoZSBydW4sIG9yIGF0IHRoZSBlbmQ6Ci0K
LU92ZXJhbGwgb3B0aW9uczoKLSAgICBub3RoaW5nICAgICAgICAgICAgIGRvbid0IHByaW50IGFu
eXRoaW5nLiBUaGlzIG92ZXJyaWRlcyBldmVyeSBvdGhlciBvcHRpb24KLSAgICBkZWZhdWx0ICAg
ICAgICAgICAgIGluY2x1ZGUgdGhlIGRlZmF1bHQgb3B0aW9ucy4gVGhpcyBpcyB1c2VmdWwgZm9y
IGxvZ2dpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBkZWZhdWx0IG9wdGlvbnMgcGx1
cyBhZGRpdGlvbmFsIHNldHRpbmdzLgotICAgIGV2ZXJ5dGhpbmcgICAgICAgICAgcHJpbnQgKGFs
bW9zdCkgZXZlcnl0aGluZyAoZXhjZXB0IHRoZSB0cmFjZS0qIG9wdGlvbnMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBzZWUgYmVsb3cgZm9yIHRoZSBmdWxsIGxpc3QgKQotICAgIG1pc2MgICAg
ICAgICAgICAgICAgcHJpbnQgbWlzY2VsbGFuZW91cyB0aGluZ3MgbGlrZSBibGFuayBsaW5lcwot
Ci1BdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBydW46Ci0gICAgY29uZmlnICAgICAgICAgICAgICBw
cmludCB0aGUgdGVzdCBydW4gY29uZmlndXJhdGlvbgotICAgIGV4cGVjdGVkICAgICAgICAgICAg
cHJpbnQgYSBzdW1tYXJ5IG9mIHdoYXQgaXMgZXhwZWN0ZWQgdG8gaGFwcGVuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAoIyBwYXNzZXMsICMgZmFpbHVyZXMsIGV0Yy4pCi0KLUR1cmluZyB0aGUg
cnVuOgotICAgIG9uZS1saW5lLXByb2dyZXNzICAgcHJpbnQgYSBvbmUtbGluZSBwcm9ncmVzcyBt
ZXNzYWdlIG9yIGJhcgotICAgIHVuZXhwZWN0ZWQgICAgICAgICAgcHJpbnQgYW55IHVuZXhwZWN0
ZWQgcmVzdWx0cyBhcyB0aGV5IG9jY3VyCi0gICAgdXBkYXRlcyAgICAgICAgICAgICBwcmludCB1
cGRhdGVzIG9uIHdoaWNoIHN0YWdlIGlzIGV4ZWN1dGluZwotICAgIHRyYWNlLWV2ZXJ5dGhpbmcg
ICAgcHJpbnQgZGV0YWlsZWQgaW5mbyBvbiBldmVyeSB0ZXN0J3MgcmVzdWx0cwotICAgICAgICAg
ICAgICAgICAgICAgICAgKGJhc2VsaW5lcywgZXhwZWN0YXRpb24sIHRpbWUgaXQgdG9vayB0byBy
dW4pLiBJZgotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBpcyBzcGVjaWZpZWQgaXQgd2ls
bCBvdmVycmlkZSB0aGUgJyotcHJvZ3Jlc3MnCi0gICAgICAgICAgICAgICAgICAgICAgICBvcHRp
b25zLCB0aGUgJ3RyYWNlLXVuZXhwZWN0ZWQnIG9wdGlvbiwgYW5kIHRoZQotICAgICAgICAgICAg
ICAgICAgICAgICAgJ3VuZXhwZWN0ZWQnIG9wdGlvbi4KLSAgICB0cmFjZS11bmV4cGVjdGVkICAg
IGxpa2UgJ3RyYWNlLWV2ZXJ5dGhpbmcnLCBidXQgb25seSBmb3IgdGVzdHMgd2l0aAotICAgICAg
ICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZCByZXN1bHRzLiBJZiB0aGlzIG9wdGlvbiBpcyBz
cGVjaWZpZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBpdCB3aWxsIG92ZXJyaWRlIHRoZSAn
dW5leHBlY3RlZCcgb3B0aW9uLgotCi1BdCB0aGUgZW5kIG9mIHRoZSBydW46Ci0gICAgYWN0dWFs
ICAgICAgICAgICAgICBwcmludCBhIHN1bW1hcnkgb2YgdGhlIGFjdHVhbCByZXN1bHRzCi0gICAg
c2xvd2VzdCAgICAgICAgICAgICBwcmludCAlKHNsb3dlc3QpZCBzbG93ZXN0IHRlc3RzIGFuZCB0
aGUgdGltZSB0aGV5IHRvb2sKLSAgICB0aW1pbmcgICAgICAgICAgICAgIHByaW50IHRpbWluZyBz
dGF0aXN0aWNzCi0gICAgdW5leHBlY3RlZC1yZXN1bHRzICBwcmludCBhIGxpc3Qgb2YgdGhlIHRl
c3RzIHdpdGggdW5leHBlY3RlZCByZXN1bHRzCi0gICAgb25lLWxpbmUtc3VtbWFyeSAgICBwcmlu
dCBhIG9uZS1saW5lIHN1bW1hcnkgb2YgdGhlIHJ1bgotCi1Ob3RlczoKLSAgICAtIElmICdub3Ro
aW5nJyBpcyBzcGVjaWZpZWQsIGl0IG92ZXJyaWRlcyBhbGwgb2YgdGhlIG90aGVyIG9wdGlvbnMu
Ci0gICAgLSBTcGVjaWZ5aW5nIC0tdmVyYm9zZSBpcyBlcXVpdmFsZW50IHRvIC0tcHJpbnQgZXZl
cnl0aGluZyBwbHVzIGl0Ci0gICAgICBjaGFuZ2VzIHRoZSBmb3JtYXQgb2YgdGhlIGxvZyBtZXNz
YWdlcyB0byBhZGQgdGltZXN0YW1wcyBhbmQgb3RoZXIKLSAgICAgIGluZm9ybWF0aW9uLiBJZiB5
b3Ugc3BlY2lmeSAtLXZlcmJvc2UgYW5kIC0tcHJpbnQgWCwgdGhlbiBYIG92ZXJyaWRlcwotICAg
ICAgdGhlIC0tcHJpbnQgZXZlcnl0aGluZyBpbXBsaWVkIGJ5IC0tdmVyYm9zZS4KLQotLS1wcmlu
dCAnZXZlcnl0aGluZycgaXMgZXF1aXZhbGVudCB0byAtLXByaW50ICclKGV2ZXJ5dGhpbmcpcycu
Ci0KLVRoZSBkZWZhdWx0ICgtLXByaW50IGRlZmF1bHQpIGlzIGVxdWl2YWxlbnQgdG8gLS1wcmlu
dCAnJShkZWZhdWx0KXMnLgotIiIiICUgeydzbG93ZXN0JzogTlVNX1NMT1dfVEVTVFNfVE9fTE9H
LCAnZXZlcnl0aGluZyc6IFBSSU5UX0VWRVJZVEhJTkcsCi0gICAgICAgJ2RlZmF1bHQnOiBQUklO
VF9ERUZBVUxUfQorX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCiAKK05VTV9T
TE9XX1RFU1RTX1RPX0xPRyA9IDEwCiAKIGRlZiBwcmludF9vcHRpb25zKCk6CiAgICAgcmV0dXJu
IFsKLSAgICAgICAgIyBOb3RlOiBXZSB1c2UgcHJpbnRfb3B0aW9ucyByYXRoZXIgdGhhbiBqdXN0
ICdwcmludCcgYmVjYXVzZSBwcmludAotICAgICAgICAjIGlzIGEgcmVzZXJ2ZWQgd29yZC4KLSAg
ICAgICAgIyBOb3RlOiBBbHNvLCB3ZSBkb24ndCBzcGVjaWZ5IGEgZGVmYXVsdCB2YWx1ZSBzbyB3
ZSBjYW4gZGV0ZWN0IHdoZW4KLSAgICAgICAgIyBubyBmbGFnIGlzIHNwZWNpZmllZCBvbiB0aGUg
Y29tbWFuZCBsaW5lIGFuZCB1c2UgZGlmZmVyZW50IGRlZmF1bHRzCi0gICAgICAgICMgYmFzZWQg
b24gd2hldGhlciBvciBub3QgLS12ZXJib3NlIGlzIHNwZWNpZmllZCAoc2luY2UgLS1wcmludAot
ICAgICAgICAjIG92ZXJyaWRlcyAtLXZlcmJvc2UpLgotICAgICAgICBvcHRwYXJzZS5tYWtlX29w
dGlvbigiLS1wcmludCIsIGRlc3Q9InByaW50X29wdGlvbnMiLAotICAgICAgICAgICAgaGVscD0o
ImNvbnRyb2xzIHByaW50IG91dHB1dCBvZiB0ZXN0IHJ1bi4gIgotICAgICAgICAgICAgICAgICAg
IlVzZSAtLWhlbHAtcHJpbnRpbmcgZm9yIG1vcmUuIikpLAotICAgICAgICBvcHRwYXJzZS5tYWtl
X29wdGlvbigiLS1oZWxwLXByaW50aW5nIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAg
ICAgIGhlbHA9InNob3cgZGV0YWlsZWQgaGVscCBvbiBjb250cm9sbGluZyBwcmludCBvdXRwdXQi
KSwKLSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJpbmNsdWRl
IGRlYnVnLWxldmVsIGxvZ2dpbmciKSwKLSAgIF0KLQotCi1kZWYgcGFyc2VfcHJpbnRfb3B0aW9u
cyhwcmludF9vcHRpb25zLCB2ZXJib3NlKToKLSAgICAiIiJQYXJzZSB0aGUgb3B0aW9ucyBwcm92
aWRlZCB0byAtLXByaW50IGFuZCBkZWR1cCBhbmQgcmFuayB0aGVtLgotCi0gICAgUmV0dXJucwot
ICAgICAgICBhIHNldCgpIG9mIHN3aXRjaGVzIHRoYXQgZ292ZXJuIGhvdyBsb2dnaW5nIGlzIGRv
bmUKLQotICAgICIiIgotICAgIGlmIHByaW50X29wdGlvbnM6Ci0gICAgICAgIHN3aXRjaGVzID0g
c2V0KHByaW50X29wdGlvbnMuc3BsaXQoJywnKSkKLSAgICBlbGlmIHZlcmJvc2U6Ci0gICAgICAg
IHN3aXRjaGVzID0gc2V0KFBSSU5UX0VWRVJZVEhJTkcuc3BsaXQoJywnKSkKLSAgICBlbHNlOgot
ICAgICAgICBzd2l0Y2hlcyA9IHNldChQUklOVF9ERUZBVUxULnNwbGl0KCcsJykpCi0KLSAgICBp
ZiAnbm90aGluZycgaW4gc3dpdGNoZXM6Ci0gICAgICAgIHJldHVybiBzZXQoKQotCi0gICAgaWYg
J2V2ZXJ5dGhpbmcnIGluIHN3aXRjaGVzOgotICAgICAgICBzd2l0Y2hlcy5kaXNjYXJkKCdldmVy
eXRoaW5nJykKLSAgICAgICAgc3dpdGNoZXMudXBkYXRlKHNldChQUklOVF9FVkVSWVRISU5HLnNw
bGl0KCcsJykpKQotCi0gICAgaWYgJ2RlZmF1bHQnIGluIHN3aXRjaGVzOgotICAgICAgICBzd2l0
Y2hlcy5kaXNjYXJkKCdkZWZhdWx0JykKLSAgICAgICAgc3dpdGNoZXMudXBkYXRlKHNldChQUklO
VF9ERUZBVUxULnNwbGl0KCcsJykpKQotCi0gICAgaWYgJ3RyYWNlLWV2ZXJ5dGhpbmcnIGluIHN3
aXRjaGVzOgotICAgICAgICBzd2l0Y2hlcy5kaXNjYXJkKCdvbmUtbGluZS1wcm9ncmVzcycpCi0g
ICAgICAgIHN3aXRjaGVzLmRpc2NhcmQoJ3RyYWNlLXVuZXhwZWN0ZWQnKQotICAgICAgICBzd2l0
Y2hlcy5kaXNjYXJkKCd1bmV4cGVjdGVkJykKLQotICAgIGlmICd0cmFjZS11bmV4cGVjdGVkJyBp
biBzd2l0Y2hlczoKLSAgICAgICAgc3dpdGNoZXMuZGlzY2FyZCgndW5leHBlY3RlZCcpCi0KLSAg
ICByZXR1cm4gc3dpdGNoZXMKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy1xJywgJy0t
cXVpZXQnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSdydW4gcXVpZXRseSAoZXJyb3JzLCB3YXJuaW5ncywgYW5k
IHByb2dyZXNzIG9ubHkpJyksCisgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctdicsICct
LXZlcmJvc2UnLCBhY3Rpb249J2NvdW50JywgZGVmYXVsdD0wLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSd2ZXJib3NlIG91dHB1dCAoc3BlY2lmeSBvbmNlIGZvciBpbmRpdmlk
dWFsIHRlc3QgcmVzdWx0cywgdHdpY2UgZm9yIGRlYnVnIG1lc3NhZ2VzKScpLAorICAgICAgICBv
cHRwYXJzZS5tYWtlX29wdGlvbignLS1kZXRhaWxzJywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVm
YXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncHJpbnQgZGV0
YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCB0ZXN0JyldCiAKIAogY2xhc3MgUHJpbnRlcihv
YmplY3QpOgpAQCAtMTYyLDIxICs2OCwxNiBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAg
QnkgZGVmYXVsdCB0aGUgYnVpbGRib3QtcGFyc2VkIGNvZGUgZ2V0cyBsb2dnZWQgdG8gc3Rkb3V0
LCBhbmQgcmVndWxhcgogICAgIG91dHB1dCBnZXRzIGxvZ2dlZCB0byBzdGRlcnIuIiIiCiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0LCBidWlsZGJv
dF9vdXRwdXQsIGxvZ2dlcj1Ob25lKToKLSAgICAgICAgIiIiCi0gICAgICAgIEFyZ3MKLSAgICAg
ICAgICBwb3J0ICAgICAgICAgICAgICAgaW50ZXJmYWNlIHRvIHBvcnQtc3BlY2lmaWMgcm91dGlu
ZXMKLSAgICAgICAgICBvcHRpb25zICAgICAgICAgICAgT3B0aW9uUGFyc2VyIG9iamVjdCB3aXRo
IGNvbW1hbmQgbGluZSBzZXR0aW5ncwotICAgICAgICAgIHJlZ3VsYXJfb3V0cHV0ICAgICBzdHJl
YW0gdG8gd2hpY2ggb3V0cHV0IGludGVuZGVkIG9ubHkgZm9yIGh1bWFucwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaG91bGQgYmUgd3JpdHRlbgotICAgICAgICAgIGJ1aWxkYm90X291
dHB1dCAgICBzdHJlYW0gdG8gd2hpY2ggb3V0cHV0IGludGVuZGVkIHRvIGJlIHJlYWQgYnkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGJ1aWxkYm90cyAoYW5kIGh1bWFucykgc2hv
dWxkIGJlIHdyaXR0ZW4KLSAgICAgICAgICBsb2dnZXIgICAgICAgICAgICAgb3B0aW9uYWwgbG9n
Z2VyIHRvIGludGVncmF0ZSBpbnRvIHRoZSBzdHJlYW0uCi0gICAgICAgICIiIgogICAgICAgICBz
ZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogICAgICAg
ICBzZWxmLl9idWlsZGJvdF9zdHJlYW0gPSBidWlsZGJvdF9vdXRwdXQKLSAgICAgICAgc2VsZi5f
bWV0ZXIgPSBNZXRlcmVkU3RyZWFtKHJlZ3VsYXJfb3V0cHV0LCBvcHRpb25zLnZlcmJvc2UsIGxv
Z2dlcj1sb2dnZXIpCi0gICAgICAgIHNlbGYuc3dpdGNoZXMgPSBwYXJzZV9wcmludF9vcHRpb25z
KG9wdGlvbnMucHJpbnRfb3B0aW9ucywgb3B0aW9ucy52ZXJib3NlKQorCisgICAgICAgIGxvZ19s
ZXZlbCA9IGxvZ2dpbmcuSU5GTworICAgICAgICBpZiBvcHRpb25zLnF1aWV0OgorICAgICAgICAg
ICAgbG9nX2xldmVsID0gbG9nZ2luZy5XQVJOSU5HCisgICAgICAgIGVsaWYgb3B0aW9ucy52ZXJi
b3NlID4gMToKKyAgICAgICAgICAgIGxvZ19sZXZlbCA9IGxvZ2dpbmcuREVCVUcKKyAgICAgICAg
c2VsZi5fbWV0ZXIgPSBNZXRlcmVkU3RyZWFtKHJlZ3VsYXJfb3V0cHV0LCBvcHRpb25zLnZlcmJv
c2UgPiAxLCBsb2dnZXI9bG9nZ2VyLCBsb2dfbGV2ZWw9bG9nX2xldmVsKQogCiAgICAgZGVmIGNs
ZWFudXAoc2VsZik6CiAgICAgICAgIHNlbGYuX21ldGVyLmNsZWFudXAoKQpAQCAtMTg0LDc1ICs4
NSw1MyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgZGVmIF9fZGVsX18oc2VsZik6CiAg
ICAgICAgIHNlbGYuY2xlYW51cCgpCiAKLSAgICAjIFRoZXNlIHR3byByb3V0aW5lcyBqdXN0IGhp
ZGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzd2l0Y2hlcy4KLSAgICBkZWYgZGlzYWJsZWQo
c2VsZiwgb3B0aW9uKToKLSAgICAgICAgcmV0dXJuIG5vdCBvcHRpb24gaW4gc2VsZi5zd2l0Y2hl
cwotCi0gICAgZGVmIGVuYWJsZWQoc2VsZiwgb3B0aW9uKToKLSAgICAgICAgcmV0dXJuIG9wdGlv
biBpbiBzZWxmLnN3aXRjaGVzCi0KLSAgICBkZWYgaGVscF9wcmludGluZyhzZWxmKToKLSAgICAg
ICAgc2VsZi5fd3JpdGUoSEVMUF9QUklOVElORykKLQogICAgIGRlZiBwcmludF9jb25maWcoc2Vs
Zik6Ci0gICAgICAgICIiIlByaW50cyB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRlc3QgcnVu
LiIiIgotICAgICAgICBzZWxmLl9wcmludF9jb25maWcoIlVzaW5nIHBvcnQgJyVzJyIgJSBzZWxm
Ll9wb3J0Lm5hbWUoKSkKLSAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJUZXN0IGNvbmZpZ3Vy
YXRpb246ICVzIiAlIHNlbGYuX3BvcnQudGVzdF9jb25maWd1cmF0aW9uKCkpCi0gICAgICAgIHNl
bGYuX3ByaW50X2NvbmZpZygiUGxhY2luZyB0ZXN0IHJlc3VsdHMgaW4gJXMiICUgc2VsZi5fb3B0
aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSkKKyAgICAgICAgX2xvZy5pbmZvKCJVc2luZyBwb3J0ICcl
cyciICUgc2VsZi5fcG9ydC5uYW1lKCkpCisgICAgICAgIF9sb2cuaW5mbygiVGVzdCBjb25maWd1
cmF0aW9uOiAlcyIgJSBzZWxmLl9wb3J0LnRlc3RfY29uZmlndXJhdGlvbigpKQorICAgICAgICBf
bG9nLmluZm8oIlBsYWNpbmcgdGVzdCByZXN1bHRzIGluICVzIiAlIHNlbGYuX29wdGlvbnMucmVz
dWx0c19kaXJlY3RvcnkpCiAKICAgICAgICAgIyBGSVhNRTogc2hvdWxkIHRoZXNlIG9wdGlvbnMg
YmUgaW4gcHJpbnRpbmdfb3B0aW9ucz8KICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5uZXdfYmFz
ZWxpbmU6Ci0gICAgICAgICAgICBzZWxmLl9wcmludF9jb25maWcoIlBsYWNpbmcgbmV3IGJhc2Vs
aW5lcyBpbiAlcyIgJSBzZWxmLl9wb3J0LmJhc2VsaW5lX3BhdGgoKSkKKyAgICAgICAgICAgIF9s
b2cuaW5mbygiUGxhY2luZyBuZXcgYmFzZWxpbmVzIGluICVzIiAlIHNlbGYuX3BvcnQuYmFzZWxp
bmVfcGF0aCgpKQogCiAgICAgICAgIGZzID0gc2VsZi5fcG9ydC5ob3N0LmZpbGVzeXN0ZW0KICAg
ICAgICAgZmFsbGJhY2tfcGF0aCA9IFtmcy5zcGxpdCh4KVsxXSBmb3IgeCBpbiBzZWxmLl9wb3J0
LmJhc2VsaW5lX3NlYXJjaF9wYXRoKCldCi0gICAgICAgIHNlbGYuX3ByaW50X2NvbmZpZygiQmFz
ZWxpbmUgc2VhcmNoIHBhdGg6ICVzIC0+IGdlbmVyaWMiICUgIiAtPiAiLmpvaW4oZmFsbGJhY2tf
cGF0aCkpCisgICAgICAgIF9sb2cuaW5mbygiQmFzZWxpbmUgc2VhcmNoIHBhdGg6ICVzIC0+IGdl
bmVyaWMiICUgIiAtPiAiLmpvaW4oZmFsbGJhY2tfcGF0aCkpCiAKLSAgICAgICAgc2VsZi5fcHJp
bnRfY29uZmlnKCJVc2luZyAlcyBidWlsZCIgJSBzZWxmLl9vcHRpb25zLmNvbmZpZ3VyYXRpb24p
CisgICAgICAgIF9sb2cuaW5mbygiVXNpbmcgJXMgYnVpbGQiICUgc2VsZi5fb3B0aW9ucy5jb25m
aWd1cmF0aW9uKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzOgotICAgICAg
ICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJQaXhlbCB0ZXN0cyBlbmFibGVkIikKKyAgICAgICAg
ICAgIF9sb2cuaW5mbygiUGl4ZWwgdGVzdHMgZW5hYmxlZCIpCiAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBzZWxmLl9wcmludF9jb25maWcoIlBpeGVsIHRlc3RzIGRpc2FibGVkIikKKyAgICAg
ICAgICAgIF9sb2cuaW5mbygiUGl4ZWwgdGVzdHMgZGlzYWJsZWQiKQogCi0gICAgICAgIHNlbGYu
X3ByaW50X2NvbmZpZygiUmVndWxhciB0aW1lb3V0OiAlcywgc2xvdyB0ZXN0IHRpbWVvdXQ6ICVz
IiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9ucy50aW1lX291dF9t
cywgc2VsZi5fb3B0aW9ucy5zbG93X3RpbWVfb3V0X21zKSkKKyAgICAgICAgX2xvZy5pbmZvKCJS
ZWd1bGFyIHRpbWVvdXQ6ICVzLCBzbG93IHRlc3QgdGltZW91dDogJXMiICUKKyAgICAgICAgICAg
ICAgICAgIChzZWxmLl9vcHRpb25zLnRpbWVfb3V0X21zLCBzZWxmLl9vcHRpb25zLnNsb3dfdGlt
ZV9vdXRfbXMpKQogCi0gICAgICAgIHNlbGYuX3ByaW50X2NvbmZpZygnQ29tbWFuZCBsaW5lOiAn
ICsgJyAnLmpvaW4oc2VsZi5fcG9ydC5kcml2ZXJfY21kX2xpbmUoKSkpCi0gICAgICAgIHNlbGYu
X3ByaW50X2NvbmZpZygnJykKKyAgICAgICAgX2xvZy5pbmZvKCdDb21tYW5kIGxpbmU6ICcgKyAn
ICcuam9pbihzZWxmLl9wb3J0LmRyaXZlcl9jbWRfbGluZSgpKSkKKyAgICAgICAgX2xvZy5pbmZv
KCcnKQogCiAgICAgZGVmIHByaW50X2ZvdW5kKHNlbGYsIG51bV9hbGxfdGVzdF9maWxlcywgbnVt
X3RvX3J1biwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpOgogICAgICAgICBmb3VuZF9zdHIgPSAn
Rm91bmQgJXM7IHJ1bm5pbmcgJWQnICUgKGdyYW1tYXIucGx1cmFsaXplKCd0ZXN0JywgbnVtX2Fs
bF90ZXN0X2ZpbGVzKSwgbnVtX3RvX3J1bikKICAgICAgICAgaWYgcmVwZWF0X2VhY2ggKiBpdGVy
YXRpb25zID4gMToKICAgICAgICAgICAgIGZvdW5kX3N0ciArPSAnICglZCB0aW1lcyBlYWNoOiAt
LXJlcGVhdC1lYWNoPSVkIC0taXRlcmF0aW9ucz0lZCknICUgKHJlcGVhdF9lYWNoICogaXRlcmF0
aW9ucywgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpCiAgICAgICAgIGZvdW5kX3N0ciArPSAnLCBz
a2lwcGluZyAlZCcgJSAobnVtX2FsbF90ZXN0X2ZpbGVzIC0gbnVtX3RvX3J1bikKLSAgICAgICAg
c2VsZi5fcHJpbnRfZXhwZWN0ZWQoZm91bmRfc3RyICsgJy4nKQorICAgICAgICBfbG9nLmluZm8o
Zm91bmRfc3RyICsgJy4nKQogCiAgICAgZGVmIHByaW50X2V4cGVjdGVkKHNlbGYsIHJlc3VsdF9z
dW1tYXJ5LCB0ZXN0c193aXRoX3Jlc3VsdF90eXBlX2NhbGxiYWNrKToKICAgICAgICAgc2VsZi5f
cHJpbnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4cGVj
dGF0aW9ucy5QQVNTLCAicGFzc2VzIiwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjaykK
ICAgICAgICAgc2VsZi5fcHJpbnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKHJlc3VsdF9zdW1t
YXJ5LCB0ZXN0X2V4cGVjdGF0aW9ucy5GQUlMLCAiZmFpbHVyZXMiLCB0ZXN0c193aXRoX3Jlc3Vs
dF90eXBlX2NhbGxiYWNrKQogICAgICAgICBzZWxmLl9wcmludF9leHBlY3RlZF9yZXN1bHRzX29m
X3R5cGUocmVzdWx0X3N1bW1hcnksIHRlc3RfZXhwZWN0YXRpb25zLkZMQUtZLCAiZmxha3kiLCB0
ZXN0c193aXRoX3Jlc3VsdF90eXBlX2NhbGxiYWNrKQotICAgICAgICBzZWxmLl9wcmludF9leHBl
Y3RlZCgnJykKKyAgICAgICAgX2xvZy5kZWJ1ZygnJykKIAogICAgIGRlZiBwcmludF93b3JrZXJz
X2FuZF9zaGFyZHMoc2VsZiwgbnVtX3dvcmtlcnMsIG51bV9zaGFyZHMsIG51bV9sb2NrZWRfc2hh
cmRzKToKICAgICAgICAgZHJpdmVyX25hbWUgPSBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkKICAg
ICAgICAgaWYgbnVtX3dvcmtlcnMgPT0gMToKLSAgICAgICAgICAgIHNlbGYuX3ByaW50X2NvbmZp
ZygiUnVubmluZyAxICVzIG92ZXIgJXMuIiAlCi0gICAgICAgICAgICAgICAgKGRyaXZlcl9uYW1l
LCBncmFtbWFyLnBsdXJhbGl6ZSgnc2hhcmQnLCBudW1fc2hhcmRzKSkpCisgICAgICAgICAgICBf
bG9nLmluZm8oIlJ1bm5pbmcgMSAlcyBvdmVyICVzLiIgJSAoZHJpdmVyX25hbWUsIGdyYW1tYXIu
cGx1cmFsaXplKCdzaGFyZCcsIG51bV9zaGFyZHMpKSkKICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHNlbGYuX3ByaW50X2NvbmZpZygiUnVubmluZyAlZCAlc3MgaW4gcGFyYWxsZWwgb3ZlciAl
ZCBzaGFyZHMgKCVkIGxvY2tlZCkuIiAlCi0gICAgICAgICAgICAgICAgKG51bV93b3JrZXJzLCBk
cml2ZXJfbmFtZSwgbnVtX3NoYXJkcywgbnVtX2xvY2tlZF9zaGFyZHMpKQotICAgICAgICBzZWxm
Ll9wcmludF9jb25maWcoJycpCi0KLSAgICBkZWYgX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNfb2Zf
dHlwZShzZWxmLCByZXN1bHRfc3VtbWFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHRfdHlwZSwgcmVzdWx0X3R5cGVfc3RyLCB0ZXN0c193aXRoX3Jlc3Vs
dF90eXBlX2NhbGxiYWNrKToKLSAgICAgICAgIiIiUHJpbnQgdGhlIG51bWJlciBvZiB0aGUgdGVz
dHMgaW4gYSBnaXZlbiByZXN1bHQgY2xhc3MuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICBy
ZXN1bHRfc3VtbWFyeSAtIHRoZSBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIHJlc3VsdHMgdG8g
cmVwb3J0IG9uCi0gICAgICAgICAgcmVzdWx0X3R5cGUgLSB0aGUgcGFydGljdWxhciByZXN1bHQg
dHlwZSB0byByZXBvcnQgaW4gdGhlIHN1bW1hcnkuCi0gICAgICAgICAgcmVzdWx0X3R5cGVfc3Ry
IC0gYSBzdHJpbmcgZGVzY3JpcHRpb24gb2YgdGhlIHJlc3VsdF90eXBlLgotICAgICAgICAgIGV4
cGVjdGF0aW9ucyAtIHBvcHVsYXRlZCBUZXN0RXhwZWN0YXRpb25zIG9iamVjdCBmb3Igc3RhdHMK
LSAgICAgICAgIiIiCisgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgJWQgJXNzIGluIHBh
cmFsbGVsIG92ZXIgJWQgc2hhcmRzICglZCBsb2NrZWQpLiIgJSAobnVtX3dvcmtlcnMsIGRyaXZl
cl9uYW1lLCBudW1fc2hhcmRzLCBudW1fbG9ja2VkX3NoYXJkcykpCisgICAgICAgIF9sb2cuaW5m
bygnJykKKworICAgIGRlZiBfcHJpbnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKHNlbGYsIHJl
c3VsdF9zdW1tYXJ5LCByZXN1bHRfdHlwZSwgcmVzdWx0X3R5cGVfc3RyLCB0ZXN0c193aXRoX3Jl
c3VsdF90eXBlX2NhbGxiYWNrKToKICAgICAgICAgdGVzdHMgPSB0ZXN0c193aXRoX3Jlc3VsdF90
eXBlX2NhbGxiYWNrKHJlc3VsdF90eXBlKQogICAgICAgICBub3cgPSByZXN1bHRfc3VtbWFyeS50
ZXN0c19ieV90aW1lbGluZVt0ZXN0X2V4cGVjdGF0aW9ucy5OT1ddCiAgICAgICAgIHdvbnRmaXgg
PSByZXN1bHRfc3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0ZXN0X2V4cGVjdGF0aW9ucy5XT05U
RklYXQpAQCAtMjYxLDEyICsxNDAsMTAgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAg
ICAjIG5pY2VseS1hbGlnbmVkIHRhYmxlLgogICAgICAgICBmbXRzdHIgPSAoIkV4cGVjdDogJSU1
ZCAlJS04cyAoJSUlZGQgbm93LCAlJSVkZCB3b250Zml4KSIKICAgICAgICAgICAgICAgICAgICUg
KHNlbGYuX251bV9kaWdpdHMobm93KSwgc2VsZi5fbnVtX2RpZ2l0cyh3b250Zml4KSkpCi0gICAg
ICAgIHNlbGYuX3ByaW50X2V4cGVjdGVkKGZtdHN0ciAlCisgICAgICAgIF9sb2cuZGVidWcoZm10
c3RyICUKICAgICAgICAgICAgIChsZW4odGVzdHMpLCByZXN1bHRfdHlwZV9zdHIsIGxlbih0ZXN0
cyAmIG5vdyksIGxlbih0ZXN0cyAmIHdvbnRmaXgpKSkKIAogICAgIGRlZiBfbnVtX2RpZ2l0cyhz
ZWxmLCBudW0pOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGlnaXRzIG5lZWRl
ZCB0byByZXByZXNlbnQgdGhlIGxlbmd0aCBvZiBhCi0gICAgICAgIHNlcXVlbmNlLiIiIgogICAg
ICAgICBuZGlnaXRzID0gMQogICAgICAgICBpZiBsZW4obnVtKToKICAgICAgICAgICAgIG5kaWdp
dHMgPSBpbnQobWF0aC5sb2cxMChsZW4obnVtKSkpICsgMQpAQCAtMjc0LDYxICsxNTEsNDAgQEAg
Y2xhc3MgUHJpbnRlcihvYmplY3QpOgogCiAgICAgZGVmIHByaW50X3Jlc3VsdHMoc2VsZiwgcnVu
X3RpbWUsIHRocmVhZF90aW1pbmdzLCB0ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1p
bmdzLCByZXN1bHRfc3VtbWFyeSwgdW5leHBlY3RlZF9yZXN1bHRzKToKICAgICAgICAgc2VsZi5f
cHJpbnRfdGltaW5nX3N0YXRpc3RpY3MocnVuX3RpbWUsIHRocmVhZF90aW1pbmdzLCB0ZXN0X3Rp
bWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCByZXN1bHRfc3VtbWFyeSkKLSAgICAgICAg
c2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnkocmVzdWx0X3N1bW1hcnkpCiAKLSAgICAgICAgc2Vs
Zi5wcmludF9vbmVfbGluZV9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5LnRvdGFsIC0gcmVzdWx0X3N1
bW1hcnkuZXhwZWN0ZWRfc2tpcHMsIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkIC0gcmVzdWx0X3N1
bW1hcnkuZXhwZWN0ZWRfc2tpcHMsIHJlc3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWQpCisgICAgICAg
ICMgRklYTUU6IHdlIHNob3VsZCBwcm9iYWJseSBwYXNzIGluIGEgZmxhZyB0byBpbmRpY2F0ZSBp
ZiB3ZSB3YW50IHRoaXMgd3JpdHRlbiB0byBzdGRvdXQgb3Igbm90LgorICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLnZlcmJvc2UgPiAxOgorICAgICAgICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1
bW1hcnkocmVzdWx0X3N1bW1hcnkpCisKKyAgICAgICAgc2VsZi5fcHJpbnRfb25lX2xpbmVfc3Vt
bWFyeShyZXN1bHRfc3VtbWFyeS50b3RhbCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBz
LCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBz
LCByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkKQogCi0gICAgICAgIHNlbGYucHJpbnRfdW5leHBl
Y3RlZF9yZXN1bHRzKHVuZXhwZWN0ZWRfcmVzdWx0cykKKyAgICAgICAgc2VsZi5fcHJpbnRfdW5l
eHBlY3RlZF9yZXN1bHRzKHVuZXhwZWN0ZWRfcmVzdWx0cykKIAogICAgIGRlZiBfcHJpbnRfdGlt
aW5nX3N0YXRpc3RpY3Moc2VsZiwgdG90YWxfdGltZSwgdGhyZWFkX3RpbWluZ3MsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnlfdGVzdF90aW1pbmdzLCBpbmRpdmlk
dWFsX3Rlc3RfdGltaW5ncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dF9zdW1tYXJ5KToKLSAgICAgICAgIiIiUmVjb3JkIHRpbWluZy1zcGVjaWZpYyBpbmZvcm1hdGlv
biBmb3IgdGhlIHRlc3QgcnVuLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdG90YWxfdGlt
ZTogdG90YWwgZWxhcHNlZCB0aW1lIChpbiBzZWNvbmRzKSBmb3IgdGhlIHRlc3QgcnVuCi0gICAg
ICAgICAgdGhyZWFkX3RpbWluZ3M6IHdhbGwgY2xvY2sgdGltZSBlYWNoIHRocmVhZCByYW4gZm9y
Ci0gICAgICAgICAgZGlyZWN0b3J5X3Rlc3RfdGltaW5nczogdGltaW5nIGJ5IGRpcmVjdG9yeQot
ICAgICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzOiB0aW1pbmcgYnkgZmlsZQotICAgICAg
ICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5IG9iamVjdCBmb3IgdGhlIHRlc3QgcnVuCi0gICAg
ICAgICIiIgotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiVGVzdCB0aW1pbmc6IikKLSAgICAg
ICAgc2VsZi5wcmludF90aW1pbmcoIiAgJTYuMmYgdG90YWwgdGVzdGluZyB0aW1lIiAlIHRvdGFs
X3RpbWUpCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIiKQotICAgICAgICBzZWxmLnByaW50
X3RpbWluZygiVGhyZWFkIHRpbWluZzoiKQorICAgICAgICBfbG9nLmRlYnVnKCJUZXN0IHRpbWlu
ZzoiKQorICAgICAgICBfbG9nLmRlYnVnKCIgICU2LjJmIHRvdGFsIHRlc3RpbmcgdGltZSIgJSB0
b3RhbF90aW1lKQorICAgICAgICBfbG9nLmRlYnVnKCIiKQorICAgICAgICBfbG9nLmRlYnVnKCJU
aHJlYWQgdGltaW5nOiIpCiAgICAgICAgIGN1bWxfdGltZSA9IDAKICAgICAgICAgZm9yIHQgaW4g
dGhyZWFkX3RpbWluZ3M6Ci0gICAgICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICAgICUxMHM6
ICU1ZCB0ZXN0cywgJTYuMmYgc2VjcyIgJQotICAgICAgICAgICAgICAgICAgKHRbJ25hbWUnXSwg
dFsnbnVtX3Rlc3RzJ10sIHRbJ3RvdGFsX3RpbWUnXSkpCisgICAgICAgICAgICBfbG9nLmRlYnVn
KCIgICAgJTEwczogJTVkIHRlc3RzLCAlNi4yZiBzZWNzIiAlICh0WyduYW1lJ10sIHRbJ251bV90
ZXN0cyddLCB0Wyd0b3RhbF90aW1lJ10pKQogICAgICAgICAgICAgY3VtbF90aW1lICs9IHRbJ3Rv
dGFsX3RpbWUnXQotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICAgJTYuMmYgY3VtdWxhdGl2
ZSwgJTYuMmYgb3B0aW1hbCIgJQotICAgICAgICAgICAgICAoY3VtbF90aW1lLCBjdW1sX3RpbWUg
LyBpbnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpKSkKLSAgICAgICAgc2VsZi5wcmlu
dF90aW1pbmcoIiIpCisgICAgICAgIF9sb2cuZGVidWcoIiAgICU2LjJmIGN1bXVsYXRpdmUsICU2
LjJmIG9wdGltYWwiICUgKGN1bWxfdGltZSwgY3VtbF90aW1lIC8gaW50KHNlbGYuX29wdGlvbnMu
Y2hpbGRfcHJvY2Vzc2VzKSkpCisgICAgICAgIF9sb2cuZGVidWcoIiIpCiAKICAgICAgICAgc2Vs
Zi5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyhpbmRpdmlkdWFsX3Rlc3RfdGltaW5n
cykKLSAgICAgICAgc2VsZi5fcHJpbnRfaW5kaXZpZHVhbF90ZXN0X3RpbWVzKGluZGl2aWR1YWxf
dGVzdF90aW1pbmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0X3N1bW1hcnkpCisgICAgICAgIHNlbGYuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1l
cyhpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnkpCiAgICAgICAgIHNlbGYu
X3ByaW50X2RpcmVjdG9yeV90aW1pbmdzKGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MpCiAKICAgICBk
ZWYgX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3Moc2VsZiwgaW5kaXZpZHVhbF90ZXN0
X3RpbWluZ3MpOgotICAgICAgICAiIiJQcmludHMgYWdncmVnYXRlIHN0YXRpc3RpY3MgKGUuZy4g
bWVkaWFuLCBtZWFuLCBldGMuKSBmb3IgYWxsIHRlc3RzLgotICAgICAgICBBcmdzOgotICAgICAg
ICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzOiBMaXN0IG9mIFRlc3RSZXN1bHRzIGZvciBhbGwg
dGVzdHMuCi0gICAgICAgICIiIgogICAgICAgICB0aW1lc19mb3JfZHVtcF9yZW5kZXJfdHJlZSA9
IFt0ZXN0X3N0YXRzLnRlc3RfcnVuX3RpbWUgZm9yIHRlc3Rfc3RhdHMgaW4gaW5kaXZpZHVhbF90
ZXN0X3RpbWluZ3NdCi0gICAgICAgIHNlbGYuX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rlc3RfdGlt
aW5ncygiUEVSIFRFU1QgVElNRSBJTiBURVNUU0hFTEwgKHNlY29uZHMpOiIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc19mb3JfZHVtcF9yZW5k
ZXJfdHJlZSkKLQotICAgIGRlZiBfcHJpbnRfaW5kaXZpZHVhbF90ZXN0X3RpbWVzKHNlbGYsIGlu
ZGl2aWR1YWxfdGVzdF90aW1pbmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdF9zdW1tYXJ5KToKLSAgICAgICAgIiIiUHJpbnRzIHRoZSBydW4gdGltZXMgZm9y
IHNsb3csIHRpbWVvdXQgYW5kIGNyYXNoIHRlc3RzLgotICAgICAgICBBcmdzOgotICAgICAgICAg
IGluZGl2aWR1YWxfdGVzdF90aW1pbmdzOiBMaXN0IG9mIFRlc3RTdGF0cyBmb3IgYWxsIHRlc3Rz
LgotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5IG9iamVjdCBmb3IgdGVzdCBydW4K
LSAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rlc3RfdGlt
aW5ncygiUEVSIFRFU1QgVElNRSBJTiBURVNUU0hFTEwgKHNlY29uZHMpOiIsIHRpbWVzX2Zvcl9k
dW1wX3JlbmRlcl90cmVlKQorCisgICAgZGVmIF9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMo
c2VsZiwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAg
IyBSZXZlcnNlLXNvcnQgYnkgdGhlIHRpbWUgc3BlbnQgaW4gRHVtcFJlbmRlclRyZWUuCi0gICAg
ICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLnNvcnQobGFtYmRhIGEsIGI6Ci0gICAgICAgICAg
ICBjbXAoYi50ZXN0X3J1bl90aW1lLCBhLnRlc3RfcnVuX3RpbWUpKQorICAgICAgICBpbmRpdmlk
dWFsX3Rlc3RfdGltaW5ncy5zb3J0KGxhbWJkYSBhLCBiOiBjbXAoYi50ZXN0X3J1bl90aW1lLCBh
LnRlc3RfcnVuX3RpbWUpKQogCiAgICAgICAgIG51bV9wcmludGVkID0gMAogICAgICAgICBzbG93
X3Rlc3RzID0gW10KQEAgLTM1MiwzOCArMjA4LDIyIEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToK
ICAgICAgICAgICAgICAgICBudW1fcHJpbnRlZCA9IG51bV9wcmludGVkICsgMQogICAgICAgICAg
ICAgICAgIHVuZXhwZWN0ZWRfc2xvd190ZXN0cy5hcHBlbmQodGVzdF90dXBsZSkKIAotICAgICAg
ICBzZWxmLnByaW50X3RpbWluZygiIikKKyAgICAgICAgX2xvZy5kZWJ1ZygiIikKICAgICAgICAg
c2VsZi5fcHJpbnRfdGVzdF9saXN0X3RpbWluZygiJXMgc2xvd2VzdCB0ZXN0cyB0aGF0IGFyZSBu
b3QgIgogICAgICAgICAgICAgIm1hcmtlZCBhcyBTTE9XIGFuZCBkaWQgbm90IHRpbWVvdXQvY3Jh
c2g6IiAlIE5VTV9TTE9XX1RFU1RTX1RPX0xPRywgdW5leHBlY3RlZF9zbG93X3Rlc3RzKQotICAg
ICAgICBzZWxmLnByaW50X3RpbWluZygiIikKKyAgICAgICAgX2xvZy5kZWJ1ZygiIikKICAgICAg
ICAgc2VsZi5fcHJpbnRfdGVzdF9saXN0X3RpbWluZygiVGVzdHMgbWFya2VkIGFzIFNMT1c6Iiwg
c2xvd190ZXN0cykKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiIpCi0gICAgICAgIHNlbGYu
X3ByaW50X3Rlc3RfbGlzdF90aW1pbmcoIlRlc3RzIHRoYXQgdGltZWQgb3V0IG9yIGNyYXNoZWQ6
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X29yX2NyYXNo
X3Rlc3RzKQotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiIikKKyAgICAgICAgX2xvZy5kZWJ1
ZygiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF9saXN0X3RpbWluZygiVGVzdHMgdGhhdCB0
aW1lZCBvdXQgb3IgY3Jhc2hlZDoiLCB0aW1lb3V0X29yX2NyYXNoX3Rlc3RzKQorICAgICAgICBf
bG9nLmRlYnVnKCIiKQogCiAgICAgZGVmIF9wcmludF90ZXN0X2xpc3RfdGltaW5nKHNlbGYsIHRp
dGxlLCB0ZXN0X2xpc3QpOgotICAgICAgICAiIiJQcmludCB0aW1pbmcgaW5mbyBmb3IgZWFjaCB0
ZXN0LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdGl0bGU6IHNlY3Rpb24gaGVhZGluZwot
ICAgICAgICAgIHRlc3RfbGlzdDogdGVzdHMgdGhhdCBmYWxsIGluIHRoaXMgc2VjdGlvbgotICAg
ICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5kaXNhYmxlZCgnc2xvd2VzdCcpOgotICAgICAgICAg
ICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcodGl0bGUpCisgICAgICAgIF9s
b2cuZGVidWcodGl0bGUpCiAgICAgICAgIGZvciB0ZXN0X3R1cGxlIGluIHRlc3RfbGlzdDoKICAg
ICAgICAgICAgIHRlc3RfcnVuX3RpbWUgPSByb3VuZCh0ZXN0X3R1cGxlLnRlc3RfcnVuX3RpbWUs
IDEpCi0gICAgICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICAlcyB0b29rICVzIHNlY29uZHMi
ICUgKHRlc3RfdHVwbGUudGVzdF9uYW1lLCB0ZXN0X3J1bl90aW1lKSkKKyAgICAgICAgICAgIF9s
b2cuZGVidWcoIiAgJXMgdG9vayAlcyBzZWNvbmRzIiAlICh0ZXN0X3R1cGxlLnRlc3RfbmFtZSwg
dGVzdF9ydW5fdGltZSkpCiAKICAgICBkZWYgX3ByaW50X2RpcmVjdG9yeV90aW1pbmdzKHNlbGYs
IGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MpOgotICAgICAgICAiIiJQcmludCB0aW1pbmcgaW5mbyBi
eSBkaXJlY3RvcnkgZm9yIGFueSBkaXJlY3RvcmllcyB0aGF0Ci0gICAgICAgIHRha2UgPiAxMCBz
ZWNvbmRzIHRvIHJ1bi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIGRpcmVjdG9yeV90ZXN0
X3RpbWluZzogdGltZSBpbmZvIGZvciBlYWNoIGRpcmVjdG9yeQotICAgICAgICAiIiIKICAgICAg
ICAgdGltaW5ncyA9IFtdCiAgICAgICAgIGZvciBkaXJlY3RvcnkgaW4gZGlyZWN0b3J5X3Rlc3Rf
dGltaW5nczoKICAgICAgICAgICAgIG51bV90ZXN0cywgdGltZV9mb3JfZGlyZWN0b3J5ID0gZGly
ZWN0b3J5X3Rlc3RfdGltaW5nc1tkaXJlY3RvcnldCkBAIC0zOTEsMjQgKzIzMSwxNSBAQCBjbGFz
cyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtX3Rlc3Rz
KSkKICAgICAgICAgdGltaW5ncy5zb3J0KCkKIAotICAgICAgICBzZWxmLnByaW50X3RpbWluZygi
VGltZSB0byBwcm9jZXNzIHNsb3dlc3Qgc3ViZGlyZWN0b3JpZXM6IikKKyAgICAgICAgX2xvZy5k
ZWJ1ZygiVGltZSB0byBwcm9jZXNzIHNsb3dlc3Qgc3ViZGlyZWN0b3JpZXM6IikKICAgICAgICAg
bWluX3NlY29uZHNfdG9fcHJpbnQgPSAxMAogICAgICAgICBmb3IgdGltaW5nIGluIHRpbWluZ3M6
CiAgICAgICAgICAgICBpZiB0aW1pbmdbMF0gPiBtaW5fc2Vjb25kc190b19wcmludDoKLSAgICAg
ICAgICAgICAgICBzZWxmLnByaW50X3RpbWluZygKLSAgICAgICAgICAgICAgICAgICAgIiAgJXMg
dG9vayAlcyBzZWNvbmRzIHRvIHJ1biAlcyB0ZXN0cy4iICUgKHRpbWluZ1sxXSwKLSAgICAgICAg
ICAgICAgICAgICAgdGltaW5nWzBdLCB0aW1pbmdbMl0pKQotICAgICAgICBzZWxmLnByaW50X3Rp
bWluZygiIikKKyAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCIgICVzIHRvb2sgJXMgc2Vjb25k
cyB0byBydW4gJXMgdGVzdHMuIiAlICh0aW1pbmdbMV0sIHRpbWluZ1swXSwgdGltaW5nWzJdKSkK
KyAgICAgICAgX2xvZy5kZWJ1ZygiIikKIAogICAgIGRlZiBfcHJpbnRfc3RhdGlzdGljc19mb3Jf
dGVzdF90aW1pbmdzKHNlbGYsIHRpdGxlLCB0aW1pbmdzKToKLSAgICAgICAgIiIiUHJpbnRzIHRo
ZSBtZWRpYW4sIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiBvZiB0aGUgdmFsdWVzIGluCi0g
ICAgICAgIHRpbWluZ3MuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0aXRsZTogVGl0bGUg
Zm9yIHRoZXNlIHRpbWluZ3MuCi0gICAgICAgICAgdGltaW5nczogQSBsaXN0IG9mIGZsb2F0cyBy
ZXByZXNlbnRpbmcgdGltZXMuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLnByaW50X3RpbWlu
Zyh0aXRsZSkKKyAgICAgICAgX2xvZy5kZWJ1Zyh0aXRsZSkKICAgICAgICAgdGltaW5ncy5zb3J0
KCkKIAogICAgICAgICBudW1fdGVzdHMgPSBsZW4odGltaW5ncykKQEAgLTQzMCwxOSArMjYxLDE0
IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgICAgIHN1bV9vZl9kZXZpYXRpb25z
ID0gbWF0aC5wb3codGltaW5nIC0gbWVhbiwgMikKIAogICAgICAgICBzdGRfZGV2aWF0aW9uID0g
bWF0aC5zcXJ0KHN1bV9vZl9kZXZpYXRpb25zIC8gbnVtX3Rlc3RzKQotICAgICAgICBzZWxmLnBy
aW50X3RpbWluZygiICBNZWRpYW46ICAgICAgICAgICU2LjNmIiAlIG1lZGlhbikKLSAgICAgICAg
c2VsZi5wcmludF90aW1pbmcoIiAgTWVhbjogICAgICAgICAgICAlNi4zZiIgJSBtZWFuKQotICAg
ICAgICBzZWxmLnByaW50X3RpbWluZygiICA5MHRoIHBlcmNlbnRpbGU6ICU2LjNmIiAlIHBlcmNl
bnRpbGU5MCkKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgOTl0aCBwZXJjZW50aWxlOiAl
Ni4zZiIgJSBwZXJjZW50aWxlOTkpCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIFN0YW5k
YXJkIGRldjogICAgJTYuM2YiICUgc3RkX2RldmlhdGlvbikKLSAgICAgICAgc2VsZi5wcmludF90
aW1pbmcoIiIpCisgICAgICAgIF9sb2cuZGVidWcoIiAgTWVkaWFuOiAgICAgICAgICAlNi4zZiIg
JSBtZWRpYW4pCisgICAgICAgIF9sb2cuZGVidWcoIiAgTWVhbjogICAgICAgICAgICAlNi4zZiIg
JSBtZWFuKQorICAgICAgICBfbG9nLmRlYnVnKCIgIDkwdGggcGVyY2VudGlsZTogJTYuM2YiICUg
cGVyY2VudGlsZTkwKQorICAgICAgICBfbG9nLmRlYnVnKCIgIDk5dGggcGVyY2VudGlsZTogJTYu
M2YiICUgcGVyY2VudGlsZTk5KQorICAgICAgICBfbG9nLmRlYnVnKCIgIFN0YW5kYXJkIGRldjog
ICAgJTYuM2YiICUgc3RkX2RldmlhdGlvbikKKyAgICAgICAgX2xvZy5kZWJ1ZygiIikKIAogICAg
IGRlZiBfcHJpbnRfcmVzdWx0X3N1bW1hcnkoc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgotICAgICAg
ICAiIiJQcmludCBhIHNob3J0IHN1bW1hcnkgYWJvdXQgaG93IG1hbnkgdGVzdHMgcGFzc2VkLgot
Ci0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IGluZm9ybWF0aW9uIHRv
IGxvZwotICAgICAgICAiIiIKICAgICAgICAgZmFpbGVkID0gcmVzdWx0X3N1bW1hcnkudG90YWxf
ZmFpbHVyZXMKICAgICAgICAgdG90YWwgPSByZXN1bHRfc3VtbWFyeS50b3RhbCAtIHJlc3VsdF9z
dW1tYXJ5LmV4cGVjdGVkX3NraXBzCiAgICAgICAgIHBhc3NlZCA9IHRvdGFsIC0gZmFpbGVkIC0g
cmVzdWx0X3N1bW1hcnkucmVtYWluaW5nCkBAIC00NTAsMzQgKzI3NiwyMyBAQCBjbGFzcyBQcmlu
dGVyKG9iamVjdCk6CiAgICAgICAgIGlmIHRvdGFsID4gMDoKICAgICAgICAgICAgIHBjdF9wYXNz
ZWQgPSBmbG9hdChwYXNzZWQpICogMTAwIC8gdG90YWwKIAotICAgICAgICBzZWxmLnByaW50X2Fj
dHVhbCgiIikKLSAgICAgICAgc2VsZi5wcmludF9hY3R1YWwoIj0+IFJlc3VsdHM6ICVkLyVkIHRl
c3RzIHBhc3NlZCAoJS4xZiUlKSIgJQotICAgICAgICAgICAgICAgICAgICAgKHBhc3NlZCwgdG90
YWwsIHBjdF9wYXNzZWQpKQotICAgICAgICBzZWxmLnByaW50X2FjdHVhbCgiIikKLSAgICAgICAg
c2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkocmVzdWx0X3N1bW1hcnksCi0gICAgICAg
ICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5OT1csICJUZXN0cyB0byBiZSBmaXhlZCIpCisgICAgICAg
IHNlbGYuX3ByaW50X2FjdHVhbCgiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfYWN0dWFsKCI9PiBS
ZXN1bHRzOiAlZC8lZCB0ZXN0cyBwYXNzZWQgKCUuMWYlJSkiICUgKHBhc3NlZCwgdG90YWwsIHBj
dF9wYXNzZWQpKQorICAgICAgICBzZWxmLl9wcmludF9hY3R1YWwoIiIpCisgICAgICAgIHNlbGYu
X3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4cGVjdGF0
aW9ucy5OT1csICJUZXN0cyB0byBiZSBmaXhlZCIpCiAKLSAgICAgICAgc2VsZi5wcmludF9hY3R1
YWwoIiIpCisgICAgICAgIHNlbGYuX3ByaW50X2FjdHVhbCgiIikKICAgICAgICAgIyBGSVhNRTog
V2Ugc2hvdWxkIGJlIHNraXBwaW5nIGFueXRoaW5nIG1hcmtlZCBXT05URklYLCBzbyB3ZSBzaG91
bGRuJ3QgYm90aGVyIGxvZ2dpbmcgdGhlc2Ugc3RhdHMuCi0gICAgICAgIHNlbGYuX3ByaW50X3Jl
c3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LAotICAgICAgICAgICAgdGVzdF9leHBl
Y3RhdGlvbnMuV09OVEZJWCwKKyAgICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50
cnkocmVzdWx0X3N1bW1hcnksIHRlc3RfZXhwZWN0YXRpb25zLldPTlRGSVgsCiAgICAgICAgICAg
ICAiVGVzdHMgdGhhdCB3aWxsIG9ubHkgYmUgZml4ZWQgaWYgdGhleSBjcmFzaCAoV09OVEZJWCki
KQotICAgICAgICBzZWxmLnByaW50X2FjdHVhbCgiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfYWN0
dWFsKCIiKQogCi0gICAgZGVmIF9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShzZWxmLCByZXN1
bHRfc3VtbWFyeSwgdGltZWxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWFkaW5nKToKLSAgICAgICAgIiIiUHJpbnQgYSBzdW1tYXJ5IGJsb2NrIG9mIHJlc3VsdHMg
Zm9yIGEgcGFydGljdWxhciB0aW1lbGluZSBvZiB0ZXN0LgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgcmVzdWx0X3N1bW1hcnk6IHN1bW1hcnkgdG8gcHJpbnQgcmVzdWx0cyBmb3IKLSAgICAg
ICAgICB0aW1lbGluZTogdGhlIHRpbWVsaW5lIHRvIHByaW50IHJlc3VsdHMgZm9yIChOT1csIFdP
TlRGSVgsIGV0Yy4pCi0gICAgICAgICAgaGVhZGluZzogYSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9m
IHRoZSB0aW1lbGluZQotICAgICAgICAiIiIKKyAgICBkZWYgX3ByaW50X3Jlc3VsdF9zdW1tYXJ5
X2VudHJ5KHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCB0aW1lbGluZSwgaGVhZGluZyk6CiAgICAgICAg
IHRvdGFsID0gbGVuKHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkK
ICAgICAgICAgbm90X3Bhc3NpbmcgPSAodG90YWwgLQogICAgICAgICAgICBsZW4ocmVzdWx0X3N1
bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9leHBlY3RhdGlvbnMuUEFTU10gJgogICAg
ICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGltZWxpbmVdKSkK
LSAgICAgICAgc2VsZi5wcmludF9hY3R1YWwoIj0+ICVzICglZCk6IiAlIChoZWFkaW5nLCBub3Rf
cGFzc2luZykpCisgICAgICAgIHNlbGYuX3ByaW50X2FjdHVhbCgiPT4gJXMgKCVkKToiICUgKGhl
YWRpbmcsIG5vdF9wYXNzaW5nKSkKIAogICAgICAgICBmb3IgcmVzdWx0IGluIFRlc3RFeHBlY3Rh
dGlvbnMuRVhQRUNUQVRJT05fT1JERVI6CiAgICAgICAgICAgICBpZiByZXN1bHQgaW4gKHRlc3Rf
ZXhwZWN0YXRpb25zLlBBU1MsIHRlc3RfZXhwZWN0YXRpb25zLlNLSVApOgpAQCAtNDg3LDQxICsz
MDIsMjEgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAgZGVzYyA9IFRlc3RF
eHBlY3RhdGlvbnMuRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TW3Jlc3VsdF0KICAgICAgICAgICAg
IGlmIG5vdF9wYXNzaW5nIGFuZCBsZW4ocmVzdWx0cyk6CiAgICAgICAgICAgICAgICAgcGN0ID0g
bGVuKHJlc3VsdHMpICogMTAwLjAgLyBub3RfcGFzc2luZwotICAgICAgICAgICAgICAgIHNlbGYu
cHJpbnRfYWN0dWFsKCIgICU1ZCAlLTI0cyAoJTQuMWYlJSkiICUKLSAgICAgICAgICAgICAgICAg
ICAgKGxlbihyZXN1bHRzKSwgZGVzY1tsZW4ocmVzdWx0cykgIT0gMV0sIHBjdCkpCi0KKyAgICAg
ICAgICAgICAgICBzZWxmLl9wcmludF9hY3R1YWwoIiAgJTVkICUtMjRzICglNC4xZiUlKSIgJSAo
bGVuKHJlc3VsdHMpLCBkZXNjW2xlbihyZXN1bHRzKSAhPSAxXSwgcGN0KSkKIAotICAgIGRlZiBw
cmludF9hY3R1YWwoc2VsZiwgbXNnKToKLSAgICAgICAgaWYgc2VsZi5kaXNhYmxlZCgnYWN0dWFs
Jyk6Ci0gICAgICAgICAgICByZXR1cm4KKyAgICBkZWYgX3ByaW50X2FjdHVhbChzZWxmLCBtc2cp
OgogICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUoIiVzXG4iICUgbXNnKQogCi0g
ICAgZGVmIF9wcmludF9jb25maWcoc2VsZiwgbXNnKToKLSAgICAgICAgc2VsZi53cml0ZShtc2cs
ICdjb25maWcnKQotCi0gICAgZGVmIF9wcmludF9leHBlY3RlZChzZWxmLCBtc2cpOgotICAgICAg
ICBzZWxmLndyaXRlKG1zZywgJ2V4cGVjdGVkJykKLQotICAgIGRlZiBwcmludF90aW1pbmcoc2Vs
ZiwgbXNnKToKLSAgICAgICAgc2VsZi53cml0ZShtc2csICd0aW1pbmcnKQotCi0gICAgZGVmIHBy
aW50X29uZV9saW5lX3N1bW1hcnkoc2VsZiwgdG90YWwsIGV4cGVjdGVkLCB1bmV4cGVjdGVkKToK
LSAgICAgICAgIiIiUHJpbnQgYSBvbmUtbGluZSBzdW1tYXJ5IG9mIHRoZSB0ZXN0IHJ1biB0byBz
dGRvdXQuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0b3RhbDogdG90YWwgbnVtYmVyIG9m
IHRlc3RzIHJ1bgotICAgICAgICAgIGV4cGVjdGVkOiBudW1iZXIgb2YgZXhwZWN0ZWQgcmVzdWx0
cwotICAgICAgICAgIHVuZXhwZWN0ZWQ6IG51bWJlciBvZiB1bmV4cGVjdGVkIHJlc3VsdHMKLSAg
ICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ29uZS1saW5lLXN1bW1hcnknKToK
LSAgICAgICAgICAgIHJldHVybgotCisgICAgZGVmIF9wcmludF9vbmVfbGluZV9zdW1tYXJ5KHNl
bGYsIHRvdGFsLCBleHBlY3RlZCwgdW5leHBlY3RlZCk6CiAgICAgICAgIGluY29tcGxldGUgPSB0
b3RhbCAtIGV4cGVjdGVkIC0gdW5leHBlY3RlZAogICAgICAgICBpbmNvbXBsZXRlX3N0ciA9ICcn
CiAgICAgICAgIGlmIGluY29tcGxldGU6CiAgICAgICAgICAgICBzZWxmLl93cml0ZSgiIikKICAg
ICAgICAgICAgIGluY29tcGxldGVfc3RyID0gIiAoJWQgZGlkbid0IHJ1bikiICUgaW5jb21wbGV0
ZQogCisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyYm9zZToKKyAgICAgICAgICAgIHNlbGYu
X3dyaXRlKCIiKQorCiAgICAgICAgIGlmIHVuZXhwZWN0ZWQgPT0gMDoKICAgICAgICAgICAgIGlm
IGV4cGVjdGVkID09IHRvdGFsOgogICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVkID4gMToKQEAg
LTUzMiw0MSArMzI3LDE5IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgICAgICAg
ICBzZWxmLl93cml0ZSgiJXMgcmFuIGFzIGV4cGVjdGVkJXMuIiAlIChncmFtbWFyLnBsdXJhbGl6
ZSgndGVzdCcsIGV4cGVjdGVkKSwgaW5jb21wbGV0ZV9zdHIpKQogICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgc2VsZi5fd3JpdGUoIiVzIHJhbiBhcyBleHBlY3RlZCwgJWQgZGlkbid0JXM6IiAl
IChncmFtbWFyLnBsdXJhbGl6ZSgndGVzdCcsIGV4cGVjdGVkKSwgdW5leHBlY3RlZCwgaW5jb21w
bGV0ZV9zdHIpKQotICAgICAgICBzZWxmLl93cml0ZSgiIikKIAogICAgIGRlZiBwcmludF9maW5p
c2hlZF90ZXN0KHNlbGYsIHJlc3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIsIGdvdF9zdHIsIHJlc3Vs
dF9zdW1tYXJ5LCByZXRyeWluZywgdGVzdF9maWxlc19saXN0KToKICAgICAgICAgc2VsZi5wcmlu
dF90ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkLCBleHBfc3RyLCBnb3Rfc3RyKQogICAgICAg
ICBzZWxmLnByaW50X3Byb2dyZXNzKHJlc3VsdF9zdW1tYXJ5LCByZXRyeWluZywgdGVzdF9maWxl
c19saXN0KQogCiAgICAgZGVmIHByaW50X3Rlc3RfcmVzdWx0KHNlbGYsIHJlc3VsdCwgZXhwZWN0
ZWQsIGV4cF9zdHIsIGdvdF9zdHIpOgotICAgICAgICAiIiJQcmludCB0aGUgcmVzdWx0IG9mIHRo
ZSB0ZXN0IGFzIGRldGVybWluZWQgYnkgLS1wcmludC4KLQotICAgICAgICBUaGlzIHJvdXRpbmUg
aXMgdXNlZCB0byBwcmludCB0aGUgZGV0YWlscyBvZiBlYWNoIHRlc3QgYXMgaXQgY29tcGxldGVz
LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXN1bHQgICAtIFRoZSBhY3R1YWwgVGVz
dFJlc3VsdCBvYmplY3QKLSAgICAgICAgICAgIGV4cGVjdGVkIC0gV2hldGhlciB0aGUgcmVzdWx0
IHdlIGdvdCB3YXMgYW4gZXhwZWN0ZWQgcmVzdWx0Ci0gICAgICAgICAgICBleHBfc3RyICAtIFdo
YXQgd2UgZXhwZWN0ZWQgdG8gZ2V0ICh1c2VkIGZvciB0cmFjaW5nKQotICAgICAgICAgICAgZ290
X3N0ciAgLSBXaGF0IHdlIGFjdHVhbGx5IGdvdCAodXNlZCBmb3IgdHJhY2luZykKLQotICAgICAg
ICBOb3RlIHRoYXQgd2UgbmVlZCBhbGwgb2YgdGhlc2UgYXJndW1lbnRzIGV2ZW4gdGhvdWdoIHRo
ZXkgc2VlbQotICAgICAgICBzb21ld2hhdCByZWR1bmRhbnQsIGluIG9yZGVyIHRvIGtlZXAgdGhp
cyByb3V0aW5lIGZyb20gaGF2aW5nIHRvCi0gICAgICAgIGtub3duIGFueXRoaW5nIGFib3V0IHRo
ZSBzZXQgb2YgZXhwZWN0YXRpb25zLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgKHNlbGYuZW5h
YmxlZCgndHJhY2UtZXZlcnl0aGluZycpIG9yCi0gICAgICAgICAgICBzZWxmLmVuYWJsZWQoJ3Ry
YWNlLXVuZXhwZWN0ZWQnKSBhbmQgbm90IGV4cGVjdGVkKToKKyAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy5kZXRhaWxzOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF90cmFjZShyZXN1bHQs
IGV4cF9zdHIsIGdvdF9zdHIpCi0gICAgICAgIGVsaWYgbm90IGV4cGVjdGVkIGFuZCBzZWxmLmVu
YWJsZWQoJ3VuZXhwZWN0ZWQnKToKLSAgICAgICAgICAgIHNlbGYuX3ByaW50X3VuZXhwZWN0ZWRf
dGVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICBlbGlmIChzZWxmLl9vcHRpb25zLnZlcmJvc2Ug
PT0gMSkgb3Igbm90IGV4cGVjdGVkOgorICAgICAgICAgICAgZGVzYyA9IFRlc3RFeHBlY3RhdGlv
bnMuRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TW3Jlc3VsdC50eXBlXQorICAgICAgICAgICAgc2Vs
Zi5fd3JpdGUoIiVzICVzJXMlcyIgJSAocmVzdWx0LnRlc3RfbmFtZSwgZGVzY1sxXSwgIiIgaWYg
ZXhwZWN0ZWQgZWxzZSAiIHVuZXhwZWN0ZWRseSIsIGRlc2NbMl0pKQogCiAgICAgZGVmIF9wcmlu
dF90ZXN0X3RyYWNlKHNlbGYsIHJlc3VsdCwgZXhwX3N0ciwgZ290X3N0cik6Ci0gICAgICAgICIi
IlByaW50IGRldGFpbGVkIHJlc3VsdHMgb2YgYSB0ZXN0ICh0cmlnZ2VyZWQgYnkgLS1wcmludCB0
cmFjZS0qKS4KLSAgICAgICAgRm9yIGVhY2ggdGVzdCwgcHJpbnQ6Ci0gICAgICAgICAgIC0gbG9j
YXRpb24gb2YgdGhlIGV4cGVjdGVkIGJhc2VsaW5lcwotICAgICAgICAgICAtIGV4cGVjdGVkIHJl
c3VsdHMKLSAgICAgICAgICAgLSBhY3R1YWwgcmVzdWx0Ci0gICAgICAgICAgIC0gdGltaW5nIGlu
Zm8KLSAgICAgICAgIiIiCiAgICAgICAgIHRlc3RfbmFtZSA9IHJlc3VsdC50ZXN0X25hbWUKICAg
ICAgICAgc2VsZi5fd3JpdGUoJ3RyYWNlOiAlcycgJSB0ZXN0X25hbWUpCiAKQEAgLTU5MiwxNiAr
MzY1LDcgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAgcmVscGF0aCA9ICc8
bm9uZT4nCiAgICAgICAgIHNlbGYuX3dyaXRlKCcgICVzOiAlcycgJSAoZXh0ZW5zaW9uWzE6XSwg
cmVscGF0aCkpCiAKLSAgICBkZWYgX3ByaW50X3VuZXhwZWN0ZWRfdGVzdF9yZXN1bHQoc2VsZiwg
cmVzdWx0KToKLSAgICAgICAgIiIiUHJpbnRzIG9uZSB1bmV4cGVjdGVkIHRlc3QgcmVzdWx0IGxp
bmUuIiIiCi0gICAgICAgIGRlc2MgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OX0RFU0NS
SVBUSU9OU1tyZXN1bHQudHlwZV1bMF0KLSAgICAgICAgc2VsZi53cml0ZSgiICAlcyAtPiB1bmV4
cGVjdGVkICVzIiAlIChyZXN1bHQudGVzdF9uYW1lLCBkZXNjKSwgInVuZXhwZWN0ZWQiKQotCiAg
ICAgZGVmIHByaW50X3Byb2dyZXNzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeWluZywgdGVz
dF9saXN0KToKLSAgICAgICAgIiIiUHJpbnQgcHJvZ3Jlc3MgdGhyb3VnaCB0aGUgdGVzdHMgYXMg
ZGV0ZXJtaW5lZCBieSAtLXByaW50LiIiIgotICAgICAgICBpZiBzZWxmLmRpc2FibGVkKCdvbmUt
bGluZS1wcm9ncmVzcycpOgotICAgICAgICAgICAgcmV0dXJuCi0KICAgICAgICAgaWYgcmVzdWx0
X3N1bW1hcnkucmVtYWluaW5nID09IDA6CiAgICAgICAgICAgICBzZWxmLl9tZXRlci53cml0ZV91
cGRhdGUoJycpCiAgICAgICAgICAgICByZXR1cm4KQEAgLTYxNiwxMSArMzgwLDggQEAgY2xhc3Mg
UHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAgKGFjdGlvbiwgcGVyY2VudF9jb21wbGV0ZSwg
cmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQsCiAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkudW5l
eHBlY3RlZCwgcmVzdWx0X3N1bW1hcnkucmVtYWluaW5nKSkKIAotICAgIGRlZiBwcmludF91bmV4
cGVjdGVkX3Jlc3VsdHMoc2VsZiwgdW5leHBlY3RlZF9yZXN1bHRzKToKLSAgICAgICAgIiIiUHJp
bnRzIGEgbGlzdCBvZiB0aGUgdW5leHBlY3RlZCByZXN1bHRzIHRvIHRoZSBidWlsZGJvdCBzdHJl
YW0uIiIiCi0gICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ3VuZXhwZWN0ZWQtcmVzdWx0cycpOgot
ICAgICAgICAgICAgcmV0dXJuCi0KKyAgICBkZWYgX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyhz
ZWxmLCB1bmV4cGVjdGVkX3Jlc3VsdHMpOgorICAgICAgICAjIHByaW50cyB0byB0aGUgYnVpbGRi
b3Qgc3RyZWFtLgogICAgICAgICBwYXNzZXMgPSB7fQogICAgICAgICBmbGFreSA9IHt9CiAgICAg
ICAgIHJlZ3Jlc3Npb25zID0ge30KQEAgLTY4OSw3ICs0NTAsNyBAQCBjbGFzcyBQcmludGVyKG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RB
VElPTlNba2V5Lmxvd2VyKCldCiAgICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFt
LndyaXRlKAogICAgICAgICAgICAgICAgICAgICAiUmVncmVzc2lvbnM6IFVuZXhwZWN0ZWQgJXMg
OiAoJWQpXG4iICUgKAotICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNbcmVzdWx0XVsx
XSwgbGVuKHRlc3RzKSkpCisgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uc1tyZXN1bHRd
WzBdLCBsZW4odGVzdHMpKSkKICAgICAgICAgICAgICAgICB0ZXN0cy5zb3J0KCkKICAgICAgICAg
ICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fYnVp
bGRib3Rfc3RyZWFtLndyaXRlKCIgICVzID0gJXNcbiIgJSAodGVzdCwga2V5KSkKQEAgLTcwMCwx
MyArNDYxLDkgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fYnVp
bGRib3Rfc3RyZWFtLndyaXRlKCIlc1xuIiAlICgiLSIgKiA3OCkpCiAKICAgICBkZWYgd3JpdGVf
dXBkYXRlKHNlbGYsIG1zZyk6Ci0gICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ3VwZGF0ZXMnKToK
LSAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZWxmLl9tZXRlci53cml0ZV91cGRhdGUobXNn
KQogCi0gICAgZGVmIHdyaXRlKHNlbGYsIG1zZywgb3B0aW9uPSJtaXNjIik6Ci0gICAgICAgIGlm
IHNlbGYuZGlzYWJsZWQob3B0aW9uKToKLSAgICAgICAgICAgIHJldHVybgorICAgIGRlZiB3cml0
ZShzZWxmLCBtc2cpOgogICAgICAgICBzZWxmLl93cml0ZShtc2cpCiAKICAgICBkZWYgd3JpdGVs
bihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQppbmRl
eCA3NTA1ZDVjMDVhM2YyY2ZjNjQ5OWFiNDBhOGRkZDg2OGJlNzJiNzU5Li41NTE5YzYzYmQyZWQx
ZDU0OGE3NDM5ZGI0NjFkMjQxY2EyMDk3ZmU1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5w
eQpAQCAtMzEsMTIgKzMxLDEwIEBACiAKIGltcG9ydCBvcHRwYXJzZQogaW1wb3J0IFN0cmluZ0lP
Ci1pbXBvcnQgdGltZQogaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmhv
c3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGlt
cG9ydCBsb2d0ZXN0aW5nCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cyBpbXBvcnQgcG9ydAog
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMgaW1wb3J0IG1hbmFnZXIKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgcmVzdWx0X3N1bW1hcnkKQEAg
LTUyLDQzICs1MCwxMCBAQCBkZWYgZ2V0X29wdGlvbnMoYXJncyk6CiAgICAgcmV0dXJuIG9wdGlv
bl9wYXJzZXIucGFyc2VfYXJncyhhcmdzKQogCiAKLWNsYXNzIFRlc3RVdGlsaXR5RnVuY3Rpb25z
KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9wcmludF9vcHRpb25zKHNlbGYpOgot
ICAgICAgICBvcHRpb25zLCBhcmdzID0gZ2V0X29wdGlvbnMoW10pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShvcHRpb25zIGlzIG5vdCBOb25lKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfcHJpbnRf
b3B0aW9ucyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3Rfc3dpdGNoZXMoYXJncywgZXhwZWN0ZWRf
c3dpdGNoZXNfc3RyLCB2ZXJib3NlPUZhbHNlKToKLSAgICAgICAgICAgIG9wdGlvbnMsIGFyZ3Mg
PSBnZXRfb3B0aW9ucyhhcmdzKQotICAgICAgICAgICAgaWYgZXhwZWN0ZWRfc3dpdGNoZXNfc3Ry
OgotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3N3aXRjaGVzID0gc2V0KGV4cGVjdGVkX3N3aXRj
aGVzX3N0ci5zcGxpdCgnLCcpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBl
eHBlY3RlZF9zd2l0Y2hlcyA9IHNldCgpCi0gICAgICAgICAgICBzd2l0Y2hlcyA9IHByaW50aW5n
LnBhcnNlX3ByaW50X29wdGlvbnMob3B0aW9ucy5wcmludF9vcHRpb25zLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2UpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3N3aXRjaGVzLCBzd2l0Y2hlcykKLQotICAg
ICAgICAjIHRlc3QgdGhhdCB3ZSBkZWZhdWx0IHRvIHRoZSBkZWZhdWx0IHNldCBvZiBzd2l0Y2hl
cwotICAgICAgICB0ZXN0X3N3aXRjaGVzKFtdLCBwcmludGluZy5QUklOVF9ERUZBVUxUKQotCi0g
ICAgICAgICMgdGVzdCB0aGF0IHZlcmJvc2UgZGVmYXVsdHMgdG8gZXZlcnl0aGluZwotICAgICAg
ICB0ZXN0X3N3aXRjaGVzKFtdLCBwcmludGluZy5QUklOVF9FVkVSWVRISU5HLCB2ZXJib3NlPVRy
dWUpCi0KLSAgICAgICAgIyB0ZXN0IHRoYXQgLS1wcmludCBkZWZhdWx0IGRvZXMgd2hhdCBpdCdz
IHN1cHBvc2VkIHRvCi0gICAgICAgIHRlc3Rfc3dpdGNoZXMoWyctLXByaW50JywgJ2RlZmF1bHQn
XSwgcHJpbnRpbmcuUFJJTlRfREVGQVVMVCkKLQotICAgICAgICAjIHRlc3QgdGhhdCAtLXByaW50
IG5vdGhpbmcgZG9lcyB3aGF0IGl0J3Mgc3VwcG9zZWQgdG8KLSAgICAgICAgdGVzdF9zd2l0Y2hl
cyhbJy0tcHJpbnQnLCAnbm90aGluZyddLCBOb25lKQotCi0gICAgICAgICMgdGVzdCB0aGF0IC0t
cHJpbnQgZXZlcnl0aGluZyBkb2VzIHdoYXQgaXQncyBzdXBwb3NlZCB0bwotICAgICAgICB0ZXN0
X3N3aXRjaGVzKFsnLS1wcmludCcsICdldmVyeXRoaW5nJ10sIHByaW50aW5nLlBSSU5UX0VWRVJZ
VEhJTkcpCi0KLSAgICAgICAgIyB0aGlzIHRlc3RzIHRoYXQgJy0tcHJpbnQgWCcgb3ZlcnJpZGVz
ICctLXZlcmJvc2UnCi0gICAgICAgIHRlc3Rfc3dpdGNoZXMoWyctLXByaW50JywgJ2FjdHVhbCdd
LCAnYWN0dWFsJywgdmVyYm9zZT1UcnVlKQotCi0KLQogY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0
ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuX3BvcnQg
PSBOb25lCisKICAgICBkZWYgYXNzZXJ0RW1wdHkoc2VsZiwgc3RyZWFtKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShzdHJlYW0uZ2V0dmFsdWUoKSkKIApAQCAtMTA5LDggKzc0LDYgQEAgY2xh
c3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgb3B0aW9ucywgYXJn
cyA9IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJncyhhcmdzKQogICAgICAgICBob3N0ID0gTW9ja0hv
c3QoKQogICAgICAgICBzZWxmLl9wb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KCd0ZXN0Jywg
b3B0aW9ucykKLSAgICAgICAgbnByb2MgPSAyCi0KICAgICAgICAgcmVndWxhcl9vdXRwdXQgPSBT
dHJpbmdJTy5TdHJpbmdJTygpCiAgICAgICAgIHJlZ3VsYXJfb3V0cHV0LmlzYXR0eSA9IGxhbWJk
YTogdHR5CiAgICAgICAgIGJ1aWxkYm90X291dHB1dCA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKQEAg
LTEzMywyNjMgKzk2LDE0IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHJzID0gcmVzdWx0X3N1bW1hcnkuUmVzdWx0U3VtbWFyeShleHBlY3RhdGlvbnMs
IHRlc3RfbmFtZXMsIDEsIHNldCgpKQogICAgICAgICByZXR1cm4gdGVzdF9uYW1lcywgcnMsIGV4
cGVjdGF0aW9ucwogCi0gICAgZGVmIHRlc3RfaGVscF9wcmludGVyKHNlbGYpOgotICAgICAgICAj
IEhlcmUgYW5kIGJlbG93IHdlJ2xsIGNhbGwgdGhlICJyZWd1bGFyIiBwcmludGVyIGVyciBhbmQg
dGhlCi0gICAgICAgICMgYnVpbGRib3QgcHJpbnRlciBvdXQ7IHRoaXMgY29ycmVzcG9uZHMgdG8g
aG93IHRoaW5ncyBydW4gb24gdGhlCi0gICAgICAgICMgYm90cyB3aXRoIHN0ZGVyciBhbmQgc3Rk
b3V0LgotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQotCi0g
ICAgICAgICMgVGhpcyByb3V0aW5lIHNob3VsZCBwcmludCBzb21ldGhpbmcgdG8gc3Rkb3V0LiB0
ZXN0aW5nIHdoYXQgaXQgaXMKLSAgICAgICAgIyBpcyBraW5kIG9mIHBvaW50bGVzcy4KLSAgICAg
ICAgcHJpbnRlci5oZWxwX3ByaW50aW5nKCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShl
cnIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQotCi0gICAgZGVmIGRvX3N3aXRjaF90
ZXN0cyhzZWxmLCBtZXRob2RfbmFtZSwgc3dpdGNoLCB0b19idWlsZGJvdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2U9J2hlbGxvJywgZXhwX2Vycj1Ob25lLCBleHBfYm90PU5vbmUp
OgotICAgICAgICBkZWYgZG9faGVscGVyKG1ldGhvZF9uYW1lLCBzd2l0Y2gsIG1lc3NhZ2UsIGV4
cF9lcnIsIGV4cF9ib3QpOgotICAgICAgICAgICAgcHJpbnRlciwgZXJyLCBib3QgPSBzZWxmLmdl
dF9wcmludGVyKFsnLS1wcmludCcsIHN3aXRjaF0sIHR0eT1UcnVlKQotICAgICAgICAgICAgZ2V0
YXR0cihwcmludGVyLCBtZXRob2RfbmFtZSkobWVzc2FnZSkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXJyLmJ1Zmxpc3QsIGV4cF9lcnIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGJvdC5idWZsaXN0LCBleHBfYm90KQotCi0gICAgICAgIGlmIHRvX2J1aWxkYm90OgotICAg
ICAgICAgICAgaWYgZXhwX2VyciBpcyBOb25lOgotICAgICAgICAgICAgICAgIGV4cF9lcnIgPSBb
XQotICAgICAgICAgICAgaWYgZXhwX2JvdCBpcyBOb25lOgotICAgICAgICAgICAgICAgIGV4cF9i
b3QgPSBbbWVzc2FnZSArICJcbiJdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBleHBf
ZXJyIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgZXhwX2VyciA9IFttZXNzYWdlICsgIlxuIl0K
LSAgICAgICAgICAgIGlmIGV4cF9ib3QgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBleHBfYm90
ID0gW10KLSAgICAgICAgZG9faGVscGVyKG1ldGhvZF9uYW1lLCAnbm90aGluZycsICdoZWxsbycs
IFtdLCBbXSkKLSAgICAgICAgZG9faGVscGVyKG1ldGhvZF9uYW1lLCBzd2l0Y2gsICdoZWxsbycs
IGV4cF9lcnIsIGV4cF9ib3QpCi0gICAgICAgIGRvX2hlbHBlcihtZXRob2RfbmFtZSwgJ2V2ZXJ5
dGhpbmcnLCAnaGVsbG8nLCBleHBfZXJyLCBleHBfYm90KQotCiAgICAgZGVmIHRlc3RfY29uZmln
dXJlX2FuZF9jbGVhbnVwKHNlbGYpOgogICAgICAgICAjIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0
IGNhbGxpbmcgY2xlYW51cCByZXBlYXRlZGx5IGFuZCBkZWxldGluZwogICAgICAgICAjIHRoZSBv
YmplY3QgaXMgc2FmZS4KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmlu
dGVyKFsnLS1wcmludCcsICdldmVyeXRoaW5nJ10pCisgICAgICAgIHByaW50ZXIsIF8sIF8gPSBz
ZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgcHJpbnRlci5jbGVhbnVwKCkKICAgICAgICAgcHJp
bnRlci5jbGVhbnVwKCkKICAgICAgICAgcHJpbnRlciA9IE5vbmUKIAotICAgIGRlZiB0ZXN0X3By
aW50X2FjdHVhbChzZWxmKToKLSAgICAgICAgIyBBY3R1YWwgcmVzdWx0cyBuZWVkIHRvIGJlIGxv
Z2dlZCB0byB0aGUgYnVpbGRib3QncyBzdHJlYW0uCi0gICAgICAgIHNlbGYuZG9fc3dpdGNoX3Rl
c3RzKCdwcmludF9hY3R1YWwnLCAnYWN0dWFsJywgdG9fYnVpbGRib3Q9VHJ1ZSkKLQotICAgIGRl
ZiB0ZXN0X3ByaW50X2FjdHVhbF9idWlsZGJvdChzZWxmKToKLSAgICAgICAgIyBGSVhNRTogVGVz
dCB0aGF0IHRoZSBmb3JtYXQgb2YgdGhlIGFjdHVhbCByZXN1bHRzIG1hdGNoZXMgd2hhdCB0aGUK
LSAgICAgICAgIyBidWlsZGJvdCBpcyBleHBlY3RpbmcuCi0gICAgICAgIHBhc3MKLQotICAgIGRl
ZiB0ZXN0X2ZhbGxiYWNrX3BhdGhfaW5fY29uZmlnKHNlbGYpOgotICAgICAgICBwcmludGVyLCBl
cnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ2V2ZXJ5dGhpbmcnXSkKLSAg
ICAgICAgIyBGSVhNRTogaXQncyBsYW1lIHRoYXQgaSBoYXZlIHRvIHNldCB0aGVzZSBvcHRpb25z
IGRpcmVjdGx5LgotICAgICAgICBwcmludGVyLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5ID0g
Jy90bXAnCi0gICAgICAgIHByaW50ZXIuX29wdGlvbnMucGl4ZWxfdGVzdHMgPSBUcnVlCi0gICAg
ICAgIHByaW50ZXIuX29wdGlvbnMubmV3X2Jhc2VsaW5lID0gVHJ1ZQotICAgICAgICBwcmludGVy
Ll9vcHRpb25zLnRpbWVfb3V0X21zID0gNjAwMAotICAgICAgICBwcmludGVyLl9vcHRpb25zLnNs
b3dfdGltZV9vdXRfbXMgPSAxMjAwMAotICAgICAgICBwcmludGVyLnByaW50X2NvbmZpZygpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnQmFzZWxpbmUgc2VhcmNoIHBhdGg6IHRlc3QtbWFjLWxl
b3BhcmQgLT4gdGVzdC1tYWMtc25vd2xlb3BhcmQgLT4gZ2VuZXJpYycgaW4gZXJyLmdldHZhbHVl
KCkpCi0KLSAgICBkZWYgdGVzdF9wcmludF9jb25maWcoc2VsZik6Ci0gICAgICAgIHNlbGYuZG9f
c3dpdGNoX3Rlc3RzKCdfcHJpbnRfY29uZmlnJywgJ2NvbmZpZycsIHRvX2J1aWxkYm90PUZhbHNl
KQotCi0gICAgZGVmIHRlc3RfcHJpbnRfZXhwZWN0ZWQoc2VsZik6Ci0gICAgICAgIHNlbGYuZG9f
c3dpdGNoX3Rlc3RzKCdfcHJpbnRfZXhwZWN0ZWQnLCAnZXhwZWN0ZWQnLCB0b19idWlsZGJvdD1G
YWxzZSkKLQotICAgIGRlZiB0ZXN0X3ByaW50X3RpbWluZyhzZWxmKToKLSAgICAgICAgc2VsZi5k
b19zd2l0Y2hfdGVzdHMoJ3ByaW50X3RpbWluZycsICd0aW1pbmcnLCB0b19idWlsZGJvdD1GYWxz
ZSkKLQotICAgIGRlZiB0ZXN0X3dyaXRlX3VwZGF0ZShzZWxmKToKLSAgICAgICAgIyBOb3RlIHRo
YXQgdGhlcmUgc2hvdWxkbid0IGJlIGEgY2FycmlhZ2UgcmV0dXJuIGhlcmU7IHVwZGF0ZXMoKQot
ICAgICAgICAjIGFyZSBtZWFudCB0byBiZSBvdmVyd3JpdHRlbi4KLSAgICAgICAgc2VsZi5kb19z
d2l0Y2hfdGVzdHMoJ3dyaXRlX3VwZGF0ZScsICd1cGRhdGVzJywgdG9fYnVpbGRib3Q9RmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J2hlbGxvJywgZXhwX2Vycj1b
J2hlbGxvJ10pCi0KLSAgICBkZWYgdGVzdF9wcmludF9vbmVfbGluZV9zdW1tYXJ5KHNlbGYpOgot
ICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50Jywg
J25vdGhpbmcnXSkKLSAgICAgICAgcHJpbnRlci5wcmludF9vbmVfbGluZV9zdW1tYXJ5KDEsIDEs
IDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQotCi0gICAgICAgIHByaW50ZXIsIGVy
ciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnb25lLWxpbmUtc3VtbWFyeSdd
KQotICAgICAgICBwcmludGVyLnByaW50X29uZV9saW5lX3N1bW1hcnkoMSwgMSwgMCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWyJUaGUgdGVzdCByYW4gYXMgZXhwZWN0ZWQuXG4i
LCAiXG4iXSkKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIo
WyctLXByaW50JywgJ2V2ZXJ5dGhpbmcnXSkKLSAgICAgICAgcHJpbnRlci5wcmludF9vbmVfbGlu
ZV9zdW1tYXJ5KDEsIDEsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsiVGhl
IHRlc3QgcmFuIGFzIGV4cGVjdGVkLlxuIiwgIlxuIl0pCi0KLSAgICAgICAgcHJpbnRlciwgZXJy
LCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdldmVyeXRoaW5nJ10pCi0gICAg
ICAgIHByaW50ZXIucHJpbnRfb25lX2xpbmVfc3VtbWFyeSgyLCAxLCAxKQotICAgICAgICBzZWxm
LmFzc2VydFdyaXR0ZW4oZXJyLCBbIjEgdGVzdCByYW4gYXMgZXhwZWN0ZWQsIDEgZGlkbid0Olxu
IiwgIlxuIl0pCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVy
KFsnLS1wcmludCcsICdldmVyeXRoaW5nJ10pCi0gICAgICAgIHByaW50ZXIucHJpbnRfb25lX2xp
bmVfc3VtbWFyeSgzLCAyLCAxKQotICAgICAgICBzZWxmLmFzc2VydFdyaXR0ZW4oZXJyLCBbIjIg
dGVzdHMgcmFuIGFzIGV4cGVjdGVkLCAxIGRpZG4ndDpcbiIsICJcbiJdKQotCi0gICAgICAgIHBy
aW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnZXZlcnl0aGlu
ZyddKQotICAgICAgICBwcmludGVyLnByaW50X29uZV9saW5lX3N1bW1hcnkoMywgMiwgMCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWydcbicsICIyIHRlc3RzIHJhbiBhcyBleHBl
Y3RlZCAoMSBkaWRuJ3QgcnVuKS5cbiIsICdcbiddKQotCi0KLSAgICBkZWYgdGVzdF9wcmludF90
ZXN0X3Jlc3VsdChzZWxmKToKLSAgICAgICAgIyBOb3RlIGhlcmUgdGhhdCB3ZSBkb24ndCB1c2Ug
bWVhbmluZ2Z1bCBleHBfc3RyIGFuZCBnb3Rfc3RyIHZhbHVlczsKLSAgICAgICAgIyB0aGUgYWN0
dWFsIGNvbnRlbnRzIG9mIHRoZSBzdHJpbmcgYXJlIHRyZWF0ZWQgb3BhcXVlbHkgYnkKLSAgICAg
ICAgIyBwcmludF90ZXN0X3Jlc3VsdCgpIHdoZW4gdHJhY2luZywgYW5kIHVzdWFsbHkgd2UgZG9u
J3Qgd2FudAotICAgICAgICAjIHRvIHRlc3Qgd2hhdCBleGFjdGx5IGlzIHByaW50ZWQsIGp1c3Qg
dGhhdCBzb21ldGhpbmcKLSAgICAgICAgIyB3YXMgcHJpbnRlZCAob3IgdGhhdCBub3RoaW5nIHdh
cyBwcmludGVkKS4KLSAgICAgICAgIwotICAgICAgICAjIEZJWE1FOiB0aGlzIGlzIGFjdHVhbGx5
IHNvbWUgZ29vZnkgbGF5ZXJpbmc7IGl0IHdvdWxkIGJlIG5pY2UKLSAgICAgICAgIyB3ZSBjb3Vs
ZCByZWZhY3RvciBpdCBzbyB0aGF0IHRoZSBhcmdzIHdlcmVuJ3QgcmVkdW5kYW50LiBNYXliZQot
ICAgICAgICAjIHRoZSBUZXN0UmVzdWx0IHNob3VsZCBjb250YWluIHdoYXQgd2FzIGV4cGVjdGVk
LCBhbmQgdGhlCi0gICAgICAgICMgc3RyaW5ncyBjb3VsZCBiZSBkZXJpdmVkIGZyb20gdGhlIFRl
c3RSZXN1bHQ/Ci0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihb
Jy0tcHJpbnQnLCAnbm90aGluZyddKQotICAgICAgICByZXN1bHQgPSBzZWxmLmdldF9yZXN1bHQo
J3Bhc3Nlcy9pbWFnZS5odG1sJykKLSAgICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChy
ZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBleHBfc3RyPScnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdvdF9zdHI9JycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQot
Ci0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQn
LCAndW5leHBlY3RlZCddKQotICAgICAgICBwcmludGVyLnByaW50X3Rlc3RfcmVzdWx0KHJlc3Vs
dCwgZXhwZWN0ZWQ9VHJ1ZSwgZXhwX3N0cj0nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnb3Rfc3RyPScnKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLSAgICAg
ICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBleHBf
c3RyPScnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdF9zdHI9JycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsnICBwYXNzZXMvaW1hZ2UuaHRtbCAtPiB1
bmV4cGVjdGVkIHBhc3NcbiddKQotCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5n
ZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnZXZlcnl0aGluZyddKQotICAgICAgICBwcmludGVyLnBy
aW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9VHJ1ZSwgZXhwX3N0cj0nJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3RyPScnKQotICAgICAgICBzZWxmLmFz
c2VydEVtcHR5KGVycikKLQotICAgICAgICBwcmludGVyLnByaW50X3Rlc3RfcmVzdWx0KHJlc3Vs
dCwgZXhwZWN0ZWQ9RmFsc2UsIGV4cF9zdHI9JycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ290X3N0cj0nJykKLSAgICAgICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWycg
IHBhc3Nlcy9pbWFnZS5odG1sIC0+IHVuZXhwZWN0ZWQgcGFzc1xuJ10pCi0KLSAgICAgICAgcHJp
bnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdub3RoaW5nJ10p
Ci0gICAgICAgIHByaW50ZXIucHJpbnRfdGVzdF9yZXN1bHQocmVzdWx0LCBleHBlY3RlZD1GYWxz
ZSwgZXhwX3N0cj0nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3Ry
PScnKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLQotICAgICAgICBwcmludGVyLCBl
cnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhY2UtdW5leHBlY3RlZCddKQotICAgICAg
ICBwcmludGVyLnByaW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9VHJ1ZSwgZXhwX3N0
cj0nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3RyPScnKQotICAg
ICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9
IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAndHJhY2UtdW5leHBlY3RlZCddKQotICAgICAgICBwcmludGVy
LnByaW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9RmFsc2UsIGV4cF9zdHI9JycsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290X3N0cj0nJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnROb3RFbXB0eShlcnIpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxm
LmdldF9wcmludGVyKFsnLS1wcmludCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3RyYWNlLXVuZXhwZWN0ZWQnXSkKLSAgICAgICAgcmVzdWx0ID0gc2Vs
Zi5nZXRfcmVzdWx0KCJwYXNzZXMvdGV4dC5odG1sIikKLSAgICAgICAgcHJpbnRlci5wcmludF90
ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBleHBfc3RyPScnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdF9zdHI9JycpCi0gICAgICAgIHNlbGYuYXNzZXJ0
Tm90RW1wdHkoZXJyKQotCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJp
bnRlcihbJy0tcHJpbnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICd0cmFjZS11bmV4cGVjdGVkJ10pCi0gICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0X3Jl
c3VsdCgicGFzc2VzL3RleHQuaHRtbCIpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdGVzdF9yZXN1
bHQocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgZXhwX3N0cj0nJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnb3Rfc3RyPScnKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5
KGVycikKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyct
LXByaW50JywgJ3RyYWNlLWV2ZXJ5dGhpbmcnXSkKLSAgICAgICAgcmVzdWx0ID0gc2VsZi5nZXRf
cmVzdWx0KCdwYXNzZXMvaW1hZ2UuaHRtbCcpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdGVzdF9y
ZXN1bHQocmVzdWx0LCBleHBlY3RlZD1UcnVlLCBleHBfc3RyPScnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdvdF9zdHI9JycpCi0gICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0
X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ190ZXh0Lmh0bWwnKQotICAgICAgICBw
cmludGVyLnByaW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9VHJ1ZSwgZXhwX3N0cj0n
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3RyPScnKQotICAgICAg
ICByZXN1bHQgPSBzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfY2hl
Y2suaHRtbCcpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdGVzdF9yZXN1bHQocmVzdWx0LCBleHBl
Y3RlZD1UcnVlLCBleHBfc3RyPScnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdvdF9zdHI9JycpCi0gICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1sJykKLSAgICAgICAgcHJpbnRlci5wcmludF90ZXN0
X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPVRydWUsIGV4cF9zdHI9JycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ290X3N0cj0nJykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RF
bXB0eShlcnIpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVy
KFsnLS1wcmludCcsICd0cmFjZS1ldmVyeXRoaW5nJ10pCi0gICAgICAgIHJlc3VsdCA9IHNlbGYu
Z2V0X3Jlc3VsdCgncGFzc2VzL2ltYWdlLmh0bWwnKQotICAgICAgICBwcmludGVyLnByaW50X3Rl
c3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9RmFsc2UsIGV4cF9zdHI9JycsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ290X3N0cj0nJykKLQotICAgIGRlZiB0ZXN0X3ByaW50
X3Byb2dyZXNzKHNlbGYpOgotICAgICAgICBleHBlY3RhdGlvbnMgPSAnJwotCi0gICAgICAgIHBy
aW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnbm90aGluZydd
KQotICAgICAgICB0ZXN0cyA9IFsncGFzc2VzL3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3Rl
ZC90aW1lb3V0Lmh0bWwnLAotICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jh
c2guaHRtbCddCi0gICAgICAgIHBhdGhzLCBycywgZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1h
cnkodGVzdHMsIGV4cGVjdGF0aW9ucykKLQotICAgICAgICAjIEZpcnN0LCB0ZXN0IHRoYXQgd2Ug
cHJpbnQgbm90aGluZyB3aGVuIHdlIHNob3VsZG4ndCBwcmludCBhbnl0aGluZy4KLSAgICAgICAg
cHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgRmFsc2UsIHBhdGhzKQotICAgICAgICBzZWxmLmFz
c2VydEVtcHR5KG91dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0KLSAgICAgICAg
cHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgVHJ1ZSwgcGF0aHMpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RW1wdHkob3V0KQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLQotICAgICAgICAj
IE5vdyB0ZXN0IHRoYXQgd2UgZG8gcHJpbnQgdGhpbmdzLgotICAgICAgICBwcmludGVyLCBlcnIs
IG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ29uZS1saW5lLXByb2dyZXNzJ10p
Ci0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIEZhbHNlLCBwYXRocykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJy
KQotCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJp
bnQnLCAnb25lLWxpbmUtcHJvZ3Jlc3MnXSkKLSAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVz
cyhycywgVHJ1ZSwgcGF0aHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQotICAgICAg
ICBzZWxmLmFzc2VydE5vdEVtcHR5KGVycikKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9
IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ29uZS1saW5lLXByb2dyZXNzJ10pCi0gICAg
ICAgIHJzLnJlbWFpbmluZyA9IDAKLSAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywg
RmFsc2UsIHBhdGhzKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnROb3RFbXB0eShlcnIpCi0KLSAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhy
cywgVHJ1ZSwgcGF0aHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQotICAgICAgICBz
ZWxmLmFzc2VydE5vdEVtcHR5KGVycikKLQotCi0KLSAgICBkZWYgdGVzdF93cml0ZV9ub3RoaW5n
KHNlbGYpOgotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyct
LXByaW50JywgJ25vdGhpbmcnXSkKLSAgICAgICAgcHJpbnRlci53cml0ZSgiZm9vIikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0KLSAgICBkZWYgdGVzdF93cml0ZV9taXNjKHNlbGYp
OgotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50
JywgJ21pc2MnXSkKLSAgICAgICAgcHJpbnRlci53cml0ZSgiZm9vIikKLSAgICAgICAgc2VsZi5h
c3NlcnROb3RFbXB0eShlcnIpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdl
dF9wcmludGVyKFsnLS1wcmludCcsICdtaXNjJ10pCi0gICAgICAgIHByaW50ZXIud3JpdGUoImZv
byIsICJjb25maWciKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLQotICAgIGRlZiB0
ZXN0X3dyaXRlX2V2ZXJ5dGhpbmcoc2VsZik6Ci0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0g
c2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnZXZlcnl0aGluZyddKQotICAgICAgICBwcmlu
dGVyLndyaXRlKCJmb28iKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KGVycikKLQotICAg
ICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ2V2
ZXJ5dGhpbmcnXSkKLSAgICAgICAgcHJpbnRlci53cml0ZSgiZm9vIiwgImNvbmZpZyIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQotCi0gICAgZGVmIHRlc3Rfd3JpdGVfdmVyYm9z
ZShzZWxmKToKLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsn
LS12ZXJib3NlJ10pCi0gICAgICAgIHByaW50ZXIud3JpdGUoImZvbyIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgiZm9vIiBpbiBlcnIuYnVmbGlzdFswXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
bXB0eShvdXQpCi0KICAgICBkZWYgdGVzdF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMoc2VsZik6
CiAgICAgICAgICMgVGhpcyByb3V0aW5lIGlzIHRoZSBvbmx5IG9uZSB0aGF0IHByaW50cyBzdHVm
ZiB0aGF0IHRoZSBib3RzCiAgICAgICAgICMgY2FyZSBhYm91dC4KQEAgLTQxNyw3ICsxMzEsNyBA
QCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgICAgICAi
IiIKICAgICAgICAgICAgIHRlc3RfaXNfc2xvdyA9IEZhbHNlCi0gICAgICAgICAgICBwYXRocywg
cnMsIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3RzLCBleHBlY3RhdGlvbnMpCisg
ICAgICAgICAgICBfLCBycywgZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1hcnkodGVzdHMsIGV4
cGVjdGF0aW9ucykKICAgICAgICAgICAgIGlmIGV4cGVjdGVkOgogICAgICAgICAgICAgICAgIHJz
LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9u
cy5QQVNTKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgICAgICAgICBycy5hZGQo
c2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4
cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKQEAgLTQzMiw3ICsx
NDYsNyBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAg
ICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0
bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykK
ICAgICAgICAgICAgIHJldHJ5ID0gcnMKICAgICAgICAgICAgIGlmIGZsYWt5OgotICAgICAgICAg
ICAgICAgIHBhdGhzLCByZXRyeSwgZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1hcnkodGVzdHMs
IGV4cGVjdGF0aW9ucykKKyAgICAgICAgICAgICAgICBfLCByZXRyeSwgZXhwID0gc2VsZi5nZXRf
cmVzdWx0X3N1bW1hcnkodGVzdHMsIGV4cGVjdGF0aW9ucykKICAgICAgICAgICAgICAgICByZXRy
eS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJyksIFRydWUsIHRlc3RfaXNf
c2xvdykKICAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJl
cy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQogICAgICAgICAg
ICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNo
Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQpAQCAtNDQyLDM3ICsxNTYsMzAgQEAgY2xhc3Mg
IFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdGVzdHMgPSBbJ3Bhc3Nl
cy90ZXh0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgJ2ZhaWx1cmVz
L2V4cGVjdGVkL2NyYXNoLmh0bWwnXQogICAgICAgICBleHBlY3RhdGlvbnMgPSAnJwogCi0gICAg
ICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnbm90
aGluZyddKQotICAgICAgICB1ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFs
c2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZhbHNlKQotICAgICAgICBwcmludGVyLnByaW50X3Vu
ZXhwZWN0ZWRfcmVzdWx0cyh1cikKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQotCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0g
c2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAndW5leHBlY3RlZC1yZXN1bHRzJ10pCi0KICAg
ICAgICAgIyB0ZXN0IGV2ZXJ5dGhpbmcgcnVubmluZyBhcyBleHBlY3RlZAorICAgICAgICBwcmlu
dGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICB1ciA9IGdldF91bmV4
cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9VHJ1ZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9RmFsc2Up
Ci0gICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQorICAgICAgICBw
cmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RW1wdHkoZXJyKQogICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKIAogICAgICAgICAjIHRl
c3QgZmFpbHVyZXMKLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVy
KFsnLS1wcmludCcsICd1bmV4cGVjdGVkLXJlc3VsdHMnXSkKKyAgICAgICAgcHJpbnRlciwgZXJy
LCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9y
ZXN1bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKLSAgICAg
ICAgcHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHByaW50ZXIu
X3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShl
cnIpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQogCiAgICAgICAgICMgdGVzdCB1
bmV4cGVjdGVkIGZsYWt5Ci0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJp
bnRlcihbJy0tcHJpbnQnLCAndW5leHBlY3RlZC1yZXN1bHRzJ10pCisgICAgICAgIHByaW50ZXIs
IGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0
ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxzZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9VHJ1ZSkKLSAg
ICAgICAgcHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHByaW50
ZXIuX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0
eShlcnIpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQogCi0gICAgICAgIHByaW50
ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnZXZlcnl0aGluZydd
KQorICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAg
ICB1ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFs
c2UsIGZsYWt5PUZhbHNlKQotICAgICAgICBwcmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0
cyh1cikKKyAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQogICAg
ICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShv
dXQpCiAKQEAgLTQ4MCwyMiArMTg3LDIyIEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5U
ZXN0Q2FzZSk6CiBCVUdYIDogZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCA9IENSQVNICiBC
VUdYIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sID0gVElNRU9VVAogIiIiCi0gICAg
ICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAndW5l
eHBlY3RlZC1yZXN1bHRzJ10pCisgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRf
cHJpbnRlcigpCiAgICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1G
YWxzZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCi0gICAgICAgIHByaW50ZXIucHJpbnRf
dW5leHBlY3RlZF9yZXN1bHRzKHVyKQorICAgICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVk
X3Jlc3VsdHModXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQogICAgICAgICBzZWxm
LmFzc2VydE5vdEVtcHR5KG91dCkKIAotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYu
Z2V0X3ByaW50ZXIoWyctLXByaW50JywgJ3VuZXhwZWN0ZWQtcmVzdWx0cyddKQorICAgICAgICBw
cmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICB1ciA9IGdldF91
bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9VHJ1ZSwgZmxha3k9RmFs
c2UpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQorICAgICAg
ICBwcmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RW1wdHkoZXJyKQogICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKIAogICAgICAg
ICAjIFRlc3QgaGFuZGxpbmcgb2YgLS12ZXJib3NlIGFzIHdlbGwuCiAgICAgICAgIHByaW50ZXIs
IGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tdmVyYm9zZSddKQogICAgICAgICB1ciA9
IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZs
YWt5PUZhbHNlKQotICAgICAgICBwcmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikK
KyAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQogICAgICAgICAj
IEZJWE1FOiBkZWJ1ZyBvdXRwdXQgZnJvbSB0aGUgcG9ydCBhbmQgc2NtIG9iamVjdHMgbWF5IG9y
IG1heSBub3QgZ28KICAgICAgICAgIyB0byBzdGRlcnIsIHNvIHRoZXJlJ3Mgbm8gcG9pbnQgaW4g
dGVzdGluZyBpdHMgY29udGVudHMgaGVyZS4KICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShv
dXQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155936</attachid>
            <date>2012-08-01 17:52:32 -0700</date>
            <delta_ts>2012-08-02 12:40:08 -0700</delta_ts>
            <desc>rename -vv to --debug-rwt-logging</desc>
            <filename>bug-92432-20120801175214.patch</filename>
            <type>text/plain</type>
            <size>72374</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjY3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzc4MzE4YmM5NjY5ZGY0ZmQyYTZmNDg0MTY1NTQxY2M2
NmVmYzBiZC4uOWQxMmYwMmMwNjI4Mjc2MzYzYjA3ZWVkMzVkYmZiNGYwZTNlM2NmNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEw
MiBAQAogMjAxMi0wNy0zMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAor
ICAgICAgICBucnd0OiBjbGVhbiB1cCAtLXByaW50IG9wdGlvbnMsIGxvZ2dpbmcgbW9kZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNDMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBk
ZWxldGVzIGEgYnVuY2ggb2YgY29tcGxleGl0eSBpbiB0aGUgcHJpbnRpbmcgY29kZQorICAgICAg
ICBmb3IgbmV3LXJ1bi13ZWJraXQtdGVzdHMuCisKKyAgICAgICAgRmlyc3QsIHdlIHJlbW92ZSBh
bGwgb2YgdGhlIC0tcHJpbnQgb3B0aW9ucyAoYW5kIC0taGVscC1wcmludGluZykuCisKKyAgICAg
ICAgVGhpcyBpcyByZXBsYWNlZCBieSBmaXZlIHByaW50aW5nIG1vZGVzL29wdGlvbnM6CisgICAg
ICAgIDEpIGJ5IGRlZmF1bHQsIHdlIHByaW50IHNvbWUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlv
biwgZXJyb3JzLAorICAgICAgICB3YXJuaW5ncywgYW5kIGEgcHJvZ3Jlc3MgYmFyCisgICAgICAg
IDIpIGlmIC0tcXVpZXQgaXMgcGFzc2VkLCB3ZSBkb24ndCBwcmludCB0aGUgY29uZmlndXJhdGlv
biBpbmZvcm1hdGlvbgorICAgICAgICAodGhpcyB3YXMgdGhlIGRlZmF1bHQgYmVmb3JlKQorICAg
ICAgICAzKSBpZiAtLXZlcmJvc2UgaXMgc3BlY2lmaWVkIHlvdSB3aWxsIGdldCBhIG9uZS1saW5l
LXBlcgorICAgICAgICB0ZXN0IHN1bW1hcnkgaW4gYWRkaXRpb24gdG8gdGhlIGRlZmF1bHQgb3V0
cHV0IG9mICgxKQorICAgICAgICA0KSBpZiAtLWRlYnVnLXJ3dC1sb2dnaW5nLCB5b3UgZ2V0IHRo
ZSBvbGQtc3R5bGUgZGVidWcgbG9nIG91dHB1dAorICAgICAgICA1KSBpZiAtLWRldGFpbHMgaXMg
c3BlY2lmaWVkLCB5b3UgZ2V0IHRoZSBwZXItdGVzdCBkZXRhaWxzIHlvdQorICAgICAgICB1c2Vk
IHRvIGdldCB3aXRoIC0tcHJpbnQgdHJhY2UtZXZlcnl0aGluZyBvciAtLXByaW50IHRyYWNlLXVu
ZXhwZWN0ZWQKKworICAgICAgICAtLWRldGFpbHMgaGFuZGxpbmcgaXMgbGFyZ2VseSBpbmRlcGVu
ZGVuZGVudCBvZgorICAgICAgICAtLXF1aWV0Ly0tdmVyYm9zZS8tLWRlYnVnLXJ3dC1sb2dnaW5n
LgorCisgICAgICAgIEFsc28sIHRoaXMgcGF0Y2ggcmVtb3ZlcyBhIGxvdCBvZiB0aGUgdW5pdCB0
ZXN0cyBmcm9tIHByaW50aW5nX3VuaXR0ZXN0OworICAgICAgICBzaW5jZSB0aGUgbW9kdWxlIGlz
IHNvIG11Y2ggc2ltcGxlciBub3csIGEgbG90IG9mIHRoZW0gd2VyZW4ndAorICAgICAgICBuZWNl
c3NhcnkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGFkanVzdHMgc29tZSBvZiB0aGUgdGV4
dCBzdHJpbmdzIHByaW50ZWQgZm9yCisgICAgICAgIGVhY2ggZmFpbHVyZSB0eXBlIHRvIHJlYWQg
YmV0dGVyIHdpdGggdGhlIG5ldyBzdHlsZSBvZiBvdXRwdXQsCisgICAgICAgIGFuZCBhZGp1c3Rz
IG1hbnkgb2YgdGhlIGludGVncmF0aW9uIHRlc3RzIGFjY29yZGluZ2x5LgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVz
dC5weToKKyAgICAgICAgKE1hbmFnZXJUZXN0LnRlc3RfaHR0cF9sb2NraW5nKToKKyAgICAgICAg
KE1hbmFnZXJUZXN0LnRlc3RfcGVyZl9sb2NraW5nKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHk6CisgICAgICAgIChU
ZXN0RXhwZWN0YXRpb25zKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzLnB5OgorICAgICAgICAocnVuKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5w
eToKKyAgICAgICAgKHBhcnNlX2FyZ3MpOgorICAgICAgICAocGFzc2luZ19ydW4pOgorICAgICAg
ICAobG9nZ2luZ19ydW4pOgorICAgICAgICAoU3RyZWFtVGVzdGluZ01peGluLmFzc2VydENvbnRh
aW5zTGluZSk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X2NoaWxkX3Byb2Nlc3Nlc18yKToKKyAg
ICAgICAgKE1haW5UZXN0LnRlc3RfY2hpbGRfcHJvY2Vzc2VzX21pbik6CisgICAgICAgIChNYWlu
VGVzdC50ZXN0X2Z1bGxfcmVzdWx0c19odG1sKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfaHVu
Z190aHJlYWQpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9yZXBlYXRfZWFjaF9pdGVyYXRpb25z
X251bV90ZXN0cyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3Rlc3RfbGlzdCk6CisgICAgICAg
IChNYWluVGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXMpOgorICAgICAgICAoTWFpblRlc3Qu
dGVzdF9taXNzaW5nX2FuZF91bmV4cGVjdGVkX3Jlc3VsdHMpOgorICAgICAgICAoTWFpblRlc3Qu
dGVzdF92ZXJib3NlKToKKyAgICAgICAgKEVuZFRvRW5kVGVzdC50ZXN0X2VuZF90b19lbmQpOgor
ICAgICAgICAoRW5kVG9FbmRUZXN0LnRlc3RfcmVmdGVzdF93aXRoX3R3b19ub3RyZWZzKToKKyAg
ICAgICAgKFJlYmFzZWxpbmVUZXN0LnRlc3RfcmVzZXRfcmVzdWx0cyk6CisgICAgICAgIChSZWJh
c2VsaW5lVGVzdC50ZXN0X21pc3NpbmdfcmVzdWx0cyk6CisgICAgICAgIChSZWJhc2VsaW5lVGVz
dC50ZXN0X25ld19iYXNlbGluZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW0ucHk6CisgICAgICAgIChNZXRlcmVkU3RyZWFtLl9f
aW5pdF9fKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9w
cmludGluZy5weToKKyAgICAgICAgKHByaW50X29wdGlvbnMpOgorICAgICAgICAoUHJpbnRlci5f
X2luaXRfXyk6CisgICAgICAgIChQcmludGVyLl9fZGVsX18pOgorICAgICAgICAoUHJpbnRlci5w
cmludF9jb25maWcpOgorICAgICAgICAoUHJpbnRlci5wcmludF9mb3VuZCk6CisgICAgICAgIChQ
cmludGVyLnByaW50X2V4cGVjdGVkKToKKyAgICAgICAgKFByaW50ZXIucHJpbnRfd29ya2Vyc19h
bmRfc2hhcmRzKToKKyAgICAgICAgKFByaW50ZXIpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRf
ZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKToKKyAgICAgICAgKFByaW50ZXIucHJpbnRfcmVzdWx0
cyk6CisgICAgICAgIChQcmludGVyLl9wcmludF90aW1pbmdfc3RhdGlzdGljcyk6CisgICAgICAg
IChQcmludGVyLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKToKKyAgICAgICAgKFBy
aW50ZXIuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyk6CisgICAgICAgIChQcmludGVyLl9w
cmludF90ZXN0X2xpc3RfdGltaW5nKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2RpcmVjdG9y
eV90aW1pbmdzKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rlc3Rf
dGltaW5ncyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeSk6CisgICAg
ICAgIChQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeSk6CisgICAgICAgIChQcmlu
dGVyLl9wcmludF9hY3R1YWwpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfb25lX2xpbmVfc3Vt
bWFyeSk6CisgICAgICAgIChQcmludGVyLnByaW50X3Rlc3RfcmVzdWx0KToKKyAgICAgICAgKFBy
aW50ZXIuX3ByaW50X2Jhc2VsaW5lKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X3VuZXhwZWN0
ZWRfcmVzdWx0cyk6CisgICAgICAgIChQcmludGVyLndyaXRlKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weToKKyAgICAg
ICAgKGdldF9vcHRpb25zKToKKyAgICAgICAgKFRlc3RwcmludGVyLnNldFVwKToKKyAgICAgICAg
KFRlc3RwcmludGVyLmdldF9wcmludGVyKToKKyAgICAgICAgKFRlc3RwcmludGVyLmdldF9yZXN1
bHRfc3VtbWFyeSk6CisgICAgICAgIChUZXN0cHJpbnRlci50ZXN0X2NvbmZpZ3VyZV9hbmRfY2xl
YW51cCk6CisgICAgICAgIChUZXN0cHJpbnRlci50ZXN0X3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0
cy5nZXRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKFRlc3RwcmludGVyKToKKyAgICAg
ICAgKFRlc3RwcmludGVyLnRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKworMjAxMi0w
Ny0zMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICBucnd0
OiByZW5hbWUgd29ya2VyLnB5IHRvIGxheW91dF90ZXN0X3J1bm5lci5weQogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI4MDQKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKaW5kZXggNmIyMTRhMjhjYTc2OGY1ODllZTBiZTFjMGQ2
NDY5YTMyYzA3NTU2Yi4uYmFhZDM5MTcxMjFmMWZhZGJkYTEwNGU0YmM3OTcxN2Y0MDlmYjM3OSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvbWFuYWdlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CkBAIC0yNTQsNyArMjU0LDcg
QEAgY2xhc3MgTWFuYWdlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICByZXR1cm4g
TW9ja09wdGlvbnMocGl4ZWxfdGVzdHM9RmFsc2UsIG5ld19iYXNlbGluZT1GYWxzZSwgdGltZV9v
dXRfbXM9NjAwMCwgc2xvd190aW1lX291dF9tcz0zMDAwMCwgd29ya2VyX21vZGVsPSdpbmxpbmUn
KQogCiAgICAgZGVmIHRlc3RfaHR0cF9sb2NraW5nKHRlc3Rlcik6Ci0gICAgICAgIG9wdGlvbnMs
IGFyZ3MgPSBydW5fd2Via2l0X3Rlc3RzLnBhcnNlX2FyZ3MoWyctLXBsYXRmb3JtPXRlc3QnLCAn
LS1wcmludD1ub3RoaW5nJywgJ2h0dHAvdGVzdHMvcGFzc2VzJywgJ3Bhc3NlcyddKQorICAgICAg
ICBvcHRpb25zLCBhcmdzID0gcnVuX3dlYmtpdF90ZXN0cy5wYXJzZV9hcmdzKFsnLS1wbGF0Zm9y
bT10ZXN0JywgJ2h0dHAvdGVzdHMvcGFzc2VzJywgJ3Bhc3NlcyddKQogICAgICAgICBob3N0ID0g
TW9ja0hvc3QoKQogICAgICAgICBwb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFt
ZT1vcHRpb25zLnBsYXRmb3JtLCBvcHRpb25zPW9wdGlvbnMpCiAgICAgICAgIHJ1bl93ZWJraXRf
dGVzdHMuX3NldF91cF9kZXJpdmVkX29wdGlvbnMocG9ydCwgb3B0aW9ucykKQEAgLTI2NSw3ICsy
NjUsNyBAQCBjbGFzcyBNYW5hZ2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRl
c3Rlci5hc3NlcnRFcXVhbHMobnVtX3VuZXhwZWN0ZWRfcmVzdWx0cywgMCkKIAogICAgIGRlZiB0
ZXN0X3BlcmZfbG9ja2luZyh0ZXN0ZXIpOgotICAgICAgICBvcHRpb25zLCBhcmdzID0gcnVuX3dl
YmtpdF90ZXN0cy5wYXJzZV9hcmdzKFsnLS1wbGF0Zm9ybT10ZXN0JywgJy0tcHJpbnQ9bm90aGlu
ZycsICctLW5vLWh0dHAnLCAncGFzc2VzJywgJ3BlcmYvJ10pCisgICAgICAgIG9wdGlvbnMsIGFy
Z3MgPSBydW5fd2Via2l0X3Rlc3RzLnBhcnNlX2FyZ3MoWyctLXBsYXRmb3JtPXRlc3QnLCAnLS1u
by1odHRwJywgJ3Bhc3NlcycsICdwZXJmLyddKQogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQog
ICAgICAgICBwb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT1vcHRpb25zLnBs
YXRmb3JtLCBvcHRpb25zPW9wdGlvbnMpCiAgICAgICAgIHJ1bl93ZWJraXRfdGVzdHMuX3NldF91
cF9kZXJpdmVkX29wdGlvbnMocG9ydCwgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9u
cy5weQppbmRleCA4ZWU4N2IzYzdkMDhkNTI5NTJlMDIwYTQ5M2ZjNzQxMzY3ZjVmMDhiLi4wNTk1
N2FmODBmNDAyMDY1NWU0Yzk4ZTZkMGQ5YjQ2MTVjOWYzN2Y3IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhw
ZWN0YXRpb25zLnB5CkBAIC02OTAsMTggKzY5MCwxNiBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25z
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICdjcmFzaCc6IENSQVNILAogICAgICAgICAg
ICAgICAgICAgICAnbWlzc2luZyc6IE1JU1NJTkd9CiAKLSAgICBFWFBFQ1RBVElPTl9ERVNDUklQ
VElPTlMgPSB7U0tJUDogKCdza2lwcGVkJywgJ3NraXBwZWQnKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUEFTUzogKCdwYXNzJywgJ3Bhc3NlcycpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBURVhUOiAoJ3RleHQgZGlmZiBtaXNtYXRjaCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dCBkaWZmIG1pc21hdGNoJyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNQUdFOiAoJ2ltYWdlIG1pc21hdGNoJywgJ2lt
YWdlIG1pc21hdGNoJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNQUdFX1BM
VVNfVEVYVDogKCdpbWFnZSBhbmQgdGV4dCBtaXNtYXRjaCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbWFnZSBhbmQgdGV4dCBtaXNtYXRjaCcp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVURJTzogKCdhdWRpbyBtaXNtYXRj
aCcsICdhdWRpbyBtaXNtYXRjaCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
UkFTSDogKCdjcmFzaCcsICdjcmFzaGVzJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRJTUVPVVQ6ICgndGVzdCB0aW1lZCBvdXQnLCAndGVzdHMgdGltZWQgb3V0JyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JU1NJTkc6ICgnbm8gZXhwZWN0ZWQgcmVzdWx0
IGZvdW5kJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdubyBl
eHBlY3RlZCByZXN1bHRzIGZvdW5kJyl9CisgICAgIyAoYWdncmVnYXRlZCBieSBjYXRlZ29yeSwg
cGFzcy9mYWlsL3NraXAsIHR5cGUpCisgICAgRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TID0ge1NL
SVA6ICgnc2tpcHBlZCcsICdza2lwcGVkJywgJycpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQQVNTOiAoJ3Bhc3MnLCAncGFzc2VkJywgJycpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBURVhUOiAoJ3RleHQgZGlmZiBtaXNtYXRjaCcsICdmYWlsZWQnLCAnICh0
ZXh0IGRpZmYpJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNQUdFOiAoJ2lt
YWdlIG1pc21hdGNoJywgJ2ZhaWxlZCcsICcgKGltYWdlIGRpZmYpJyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElNQUdFX1BMVVNfVEVYVDogKCdpbWFnZSBhbmQgdGV4dCBtaXNt
YXRjaCcsICdmYWlsZWQnLCAnIChib3RoIGltYWdlIGFuZCB0ZXh0IGRpZmZzJyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFVRElPOiAoJ2F1ZGlvIG1pc21hdGNoJywgJ2ZhaWxl
ZCcsICcgKGF1ZGlvIGRpZmYpJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENS
QVNIOiAoJ2NyYXNoJywgJ2NyYXNoZWQnLCAnJyksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRJTUVPVVQ6ICgndGVzdCB0aW1lZCBvdXQnLCAndGltZWQgb3V0JywgJycpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSVNTSU5HOiAoJ25vIGV4cGVjdGVkIHJlc3Vs
dCBmb3VuZCcsICdpcyBtaXNzaW5nIGFuIGV4cGVjdGVkIHJlc3VsdCcsICcnKX0KIAogICAgIEVY
UEVDVEFUSU9OX09SREVSID0gKFBBU1MsIENSQVNILCBUSU1FT1VULCBNSVNTSU5HLCBJTUFHRV9Q
TFVTX1RFWFQsIFRFWFQsIElNQUdFLCBBVURJTywgU0tJUCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXgg
YzRmNGYyNDA0OTI3ZDA3OGRjYTcwZGE5NzQ1ZWQ1ZmM2NjVkZDE2NC4uZDgxNmIwNDE4NjQxNzY2
ZjQ5NzYyOGI4MmE3NzRjYjhmYzVjZDAzOSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC05NywxMSArOTcs
NiBAQCBkZWYgcnVuKHBvcnQsIG9wdGlvbnMsIGFyZ3MsIHJlZ3VsYXJfb3V0cHV0PXN5cy5zdGRl
cnIsIGJ1aWxkYm90X291dHB1dD1zeXMuc3RkbwogICAgICAgICBmb3Igd2FybmluZyBpbiB3YXJu
aW5nczoKICAgICAgICAgICAgIF9sb2cud2FybmluZyh3YXJuaW5nKQogCi0gICAgICAgIGlmIG9w
dGlvbnMuaGVscF9wcmludGluZzoKLSAgICAgICAgICAgIHByaW50ZXIuaGVscF9wcmludGluZygp
Ci0gICAgICAgICAgICBwcmludGVyLmNsZWFudXAoKQotICAgICAgICAgICAgcmV0dXJuIDAKLQog
ICAgICAgICBpZiBvcHRpb25zLmxpbnRfdGVzdF9maWxlczoKICAgICAgICAgICAgIHJldHVybiBs
aW50KHBvcnQsIG9wdGlvbnMpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlv
bnRlc3QucHkKaW5kZXggNmQ0OTE0ZWFmYWFjYTQzN2ZlYWY4MTZiZGJmYjI2YzcwYmRlZTU3NC4u
NzNjNzM5YjNjZWYzOTNiYjNlM2EyOWNiZTE2OTU2M2I2Y2IxNTQ5ZiAxMDA3NTUKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3Jh
dGlvbnRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKQEAgLTU4LDEyICs1OCw5IEBAIGZyb20g
d2Via2l0cHkudGVzdC5za2lwIGltcG9ydCBza2lwX2lmCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9j
a3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiAKIAotZGVmIHBhcnNlX2FyZ3MoZXh0cmFfYXJncz1O
b25lLCByZWNvcmRfcmVzdWx0cz1GYWxzZSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2UsIG5ld19yZXN1
bHRzPUZhbHNlLCBwcmludF9ub3RoaW5nPVRydWUpOgorZGVmIHBhcnNlX2FyZ3MoZXh0cmFfYXJn
cz1Ob25lLCByZWNvcmRfcmVzdWx0cz1GYWxzZSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2UsIG5ld19y
ZXN1bHRzPUZhbHNlKToKICAgICBleHRyYV9hcmdzID0gZXh0cmFfYXJncyBvciBbXQotICAgIGlm
IHByaW50X25vdGhpbmc6Ci0gICAgICAgIGFyZ3MgPSBbJy0tcHJpbnQnLCAnbm90aGluZyddCi0g
ICAgZWxzZToKLSAgICAgICAgYXJncyA9IFtdCisgICAgYXJncyA9IFtdCiAgICAgaWYgbm90ICct
LXBsYXRmb3JtJyBpbiBleHRyYV9hcmdzOgogICAgICAgICBhcmdzLmV4dGVuZChbJy0tcGxhdGZv
cm0nLCAndGVzdCddKQogICAgIGlmIG5vdCByZWNvcmRfcmVzdWx0czoKQEAgLTk1LDE0ICs5Miwx
NCBAQCBkZWYgcGFzc2luZ19ydW4oZXh0cmFfYXJncz1Ob25lLCBwb3J0X29iaj1Ob25lLCByZWNv
cmRfcmVzdWx0cz1GYWxzZSwgdGVzdHNfaW5jbAogICAgIGJ1aWxkYm90X291dHB1dCA9IFN0cmlu
Z0lPLlN0cmluZ0lPKCkKICAgICByZWd1bGFyX291dHB1dCA9IFN0cmluZ0lPLlN0cmluZ0lPKCkK
ICAgICByZXMgPSBydW5fd2Via2l0X3Rlc3RzLnJ1bihwb3J0X29iaiwgb3B0aW9ucywgcGFyc2Vk
X2FyZ3MsIGJ1aWxkYm90X291dHB1dD1idWlsZGJvdF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0PXJl
Z3VsYXJfb3V0cHV0KQotICAgIHJldHVybiByZXMgPT0gMCBhbmQgbm90IHJlZ3VsYXJfb3V0cHV0
LmdldHZhbHVlKCkgYW5kIG5vdCBidWlsZGJvdF9vdXRwdXQuZ2V0dmFsdWUoKQorICAgIHJldHVy
biByZXMgPT0gMAogCiAKIGRlZiBsb2dnaW5nX3J1bihleHRyYV9hcmdzPU5vbmUsIHBvcnRfb2Jq
PU5vbmUsIHJlY29yZF9yZXN1bHRzPUZhbHNlLCB0ZXN0c19pbmNsdWRlZD1GYWxzZSwgaG9zdD1O
b25lLCBuZXdfcmVzdWx0cz1GYWxzZSwgc2hhcmVkX3BvcnQ9VHJ1ZSk6CiAgICAgb3B0aW9ucywg
cGFyc2VkX2FyZ3MgPSBwYXJzZV9hcmdzKGV4dHJhX2FyZ3M9ZXh0cmFfYXJncywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkX3Jlc3VsdHM9cmVjb3JkX3Jlc3Vs
dHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVk
PXRlc3RzX2luY2x1ZGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmludF9ub3RoaW5nPUZhbHNlLCBuZXdfcmVzdWx0cz1uZXdfcmVzdWx0cykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3Jlc3VsdHM9bmV3X3Jlc3VsdHMpCiAgICAg
aG9zdCA9IGhvc3Qgb3IgTW9ja0hvc3QoKQogICAgIGlmIG5vdCBwb3J0X29iajoKICAgICAgICAg
cG9ydF9vYmogPSBob3N0LnBvcnRfZmFjdG9yeS5nZXQocG9ydF9uYW1lPW9wdGlvbnMucGxhdGZv
cm0sIG9wdGlvbnM9b3B0aW9ucykKQEAgLTE4Nyw3ICsxODQsNyBAQCBjbGFzcyBTdHJlYW1UZXN0
aW5nTWl4aW4ob2JqZWN0KToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN0cmluZyBpbiBzdHJl
YW0uZ2V0dmFsdWUoKSkKIAogICAgIGRlZiBhc3NlcnRDb250YWluc0xpbmUoc2VsZiwgc3RyZWFt
LCBzdHJpbmcpOgotICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RyaW5nIGluIHN0cmVhbS5idWZs
aXN0KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55KHN0cmluZyBpbiBidWYgZm9yIGJ1ZiBp
biBzdHJlYW0uYnVmbGlzdCkpCiAKICAgICBkZWYgYXNzZXJ0RW1wdHkoc2VsZiwgc3RyZWFtKToK
ICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzdHJlYW0uZ2V0dmFsdWUoKSkKQEAgLTMwOSwxNSAr
MzA2LDEyIEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5n
TWl4aW4pOgogCiAgICAgZGVmIHRlc3RfY2hpbGRfcHJvY2Vzc2VzXzIoc2VsZik6CiAgICAgICAg
IGlmIHNlbGYuc2hvdWxkX3Rlc3RfcHJvY2Vzc2VzOgotICAgICAgICAgICAgXywgXywgcmVndWxh
cl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bigKLSAgICAgICAgICAgICAgICBbJy0tcHJpbnQnLCAn
Y29uZmlnJywgJy0tY2hpbGQtcHJvY2Vzc2VzJywgJzInXSwgc2hhcmVkX3BvcnQ9RmFsc2UpCisg
ICAgICAgICAgICBfLCBfLCByZWd1bGFyX291dHB1dCwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1jaGls
ZC1wcm9jZXNzZXMnLCAnMiddLCBzaGFyZWRfcG9ydD1GYWxzZSkKICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShhbnkoWydSdW5uaW5nIDIgJyBpbiBsaW5lIGZvciBsaW5lIGluIHJlZ3VsYXJf
b3V0cHV0LmJ1Zmxpc3RdKSkKIAogICAgIGRlZiB0ZXN0X2NoaWxkX3Byb2Nlc3Nlc19taW4oc2Vs
Zik6CiAgICAgICAgIGlmIHNlbGYuc2hvdWxkX3Rlc3RfcHJvY2Vzc2VzOgotICAgICAgICAgICAg
XywgXywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bigKLSAgICAgICAgICAgICAgICBb
Jy0tcHJpbnQnLCAnY29uZmlnJywgJy0tY2hpbGQtcHJvY2Vzc2VzJywgJzInLCAncGFzc2VzJ10s
Ci0gICAgICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgc2hhcmVkX3BvcnQ9RmFsc2Up
CisgICAgICAgICAgICBfLCBfLCByZWd1bGFyX291dHB1dCwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1j
aGlsZC1wcm9jZXNzZXMnLCAnMicsICdwYXNzZXMnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgc2hh
cmVkX3BvcnQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55KFsnUnVubmlu
ZyAxICcgaW4gbGluZSBmb3IgbGluZSBpbiByZWd1bGFyX291dHB1dC5idWZsaXN0XSkpCiAKICAg
ICBkZWYgdGVzdF9kcnlydW4oc2VsZik6CkBAIC0zNDYsMjEgKzM0MCwxMyBAQCBjbGFzcyBNYWlu
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKIAogICAgIGRlZiB0
ZXN0X2Z1bGxfcmVzdWx0c19odG1sKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiB2ZXJpZnkgaHRt
bD8KLSAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnLS1mdWxsLXJl
c3VsdHMtaHRtbCddKQorICAgICAgICByZXMsIF8sIF8sIF8gPSBsb2dnaW5nX3J1bihbJy0tZnVs
bC1yZXN1bHRzLWh0bWwnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIDApCiAKLSAg
ICBkZWYgdGVzdF9oZWxwX3ByaW50aW5nKHNlbGYpOgotICAgICAgICByZXMsIG91dCwgZXJyLCB1
c2VyID0gbG9nZ2luZ19ydW4oWyctLWhlbHAtcHJpbnRpbmcnXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZXMsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQotICAgICAgICBz
ZWxmLmFzc2VydE5vdEVtcHR5KGVycikKLQogICAgIGRlZiB0ZXN0X2h1bmdfdGhyZWFkKHNlbGYp
OgotICAgICAgICByZXMsIG91dCwgZXJyLCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXJ1bi1zaW5n
bHknLCAnLS10aW1lLW91dC1tcz01MCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvaGFuZy5odG1sJ10sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlKQorICAgICAg
ICByZXMsIF8sIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1ydW4tc2luZ2x5JywgJy0tdGltZS1v
dXQtbXM9NTAnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvaGFuZy5odG1sJ10sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChyZXMsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQog
ICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KGVycikKIAogICAgIGRlZiB0ZXN0X2tleWJvYXJk
X2ludGVycnVwdChzZWxmKToKQEAgLTQzOSw3ICs0MjUsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgaG9zdCA9IE1vY2tI
b3N0KCkKICAgICAgICAgcmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1pdGVyYXRp
b25zJywgJzInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXJl
cGVhdC1lYWNoJywgJzQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICctLXByaW50JywgJ2V2ZXJ5dGhpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICctLWRlYnVnLXJ3dC1sb2dnaW5nJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAncGFzc2VzL3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC90
ZXh0Lmh0bWwnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rz
X2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCwgcmVjb3JkX3Jlc3VsdHM9VHJ1ZSkKICAgICAgICAg
c2VsZi5hc3NlcnRDb250YWluc0xpbmUob3V0LCAiPT4gUmVzdWx0czogOC8xNiB0ZXN0cyBwYXNz
ZWQgKDUwLjAlKVxuIikKQEAgLTUyNyw4ICs1MTMsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgdGVzdHNfcnVuID0gZ2V0
X3Rlc3RzX3J1bihbJy0tdGVzdC1saXN0PSVzJyAlIGZpbGVuYW1lXSwgdGVzdHNfaW5jbHVkZWQ9
VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUsIGhvc3Q9aG9zdCkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoWydwYXNzZXMvdGV4dC5odG1sJ10sIHRlc3RzX3J1bikKICAgICAgICAgaG9zdC5m
aWxlc3lzdGVtLnJlbW92ZShmaWxlbmFtZSkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9
IGxvZ2dpbmdfcnVuKFsnLS10ZXN0LWxpc3Q9JXMnICUgZmlsZW5hbWVdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1o
b3N0KQorICAgICAgICByZXMsIF8sIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS10ZXN0LWxpc3Q9
JXMnICUgZmlsZW5hbWVdLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAtMSkKICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShl
cnIpCiAKQEAgLTU0MiwxMCArNTI3LDggQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENh
c2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgZGVmIHRlc3RfdW5leHBlY3RlZF9mYWlsdXJl
cyhzZWxmKToKICAgICAgICAgIyBSdW4gdGVzdHMgaW5jbHVkaW5nIHRoZSB1bmV4cGVjdGVkIGZh
aWx1cmVzLgogICAgICAgICBzZWxmLl91cmxfb3BlbmVkID0gTm9uZQotICAgICAgICByZXMsIG91
dCwgZXJyLCB1c2VyID0gbG9nZ2luZ19ydW4odGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKLQorICAgICAg
ICByZXMsIF8sIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKHRlc3RzX2luY2x1ZGVkPVRydWUpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCB1bmV4cGVjdGVkX3Rlc3RzX2NvdW50KQotICAg
ICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0
eShlcnIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXNlci5vcGVuZWRfdXJscywgW3BhdGgu
YWJzcGF0aF90b191cmkoTW9ja0hvc3QoKS5wbGF0Zm9ybSwgJy90bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9yZXN1bHRzLmh0bWwnKV0pCiAKQEAgLTU1Myw3ICs1MzYsNyBAQCBjbGFzcyBNYWluVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgIyBUZXN0
IHRoYXQgd2UgdXBkYXRlIGV4cGVjdGF0aW9ucyBpbiBwbGFjZS4gSWYgdGhlIGV4cGVjdGF0aW9u
CiAgICAgICAgICMgaXMgbWlzc2luZywgdXBkYXRlIHRoZSBleHBlY3RlZCBnZW5lcmljIGxvY2F0
aW9uLgogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQotICAgICAgICByZXMsIG91dCwgZXJyLCBf
ID0gbG9nZ2luZ19ydW4oWyctLW5vLXNob3ctcmVzdWx0cycsCisgICAgICAgIHJlcywgXywgXywg
XyA9IGxvZ2dpbmdfcnVuKFsnLS1uby1zaG93LXJlc3VsdHMnLAogICAgICAgICAgICAgJ2ZhaWx1
cmVzL2V4cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRtbCcsCiAgICAgICAgICAgICAnZmFpbHVyZXMv
dW5leHBlY3RlZC9taXNzaW5nX3RleHQuaHRtbCcsCiAgICAgICAgICAgICAnZmFpbHVyZXMvdW5l
eHBlY3RlZC90ZXh0LWltYWdlLWNoZWNrc3VtLmh0bWwnXSwKQEAgLTkzMSw5ICs5MTQsOSBAQCBj
bGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAg
ICBkZWYgdGVzdF92ZXJib3NlKHNlbGYpOgogICAgICAgICAjIE5vdGUgdGhhdCB0aGUgdGVzdHMg
ZmFpbCBiZWNhdXNlIHdlIGNhbid0IHBhc3MgYSBtb2NrIGhvc3QgdG8gdGhlIHdvcmtlciBwcm9j
ZXNzZXMgKmFuZCoKICAgICAgICAgIyB1c2Ugb3V0cHV0Y2FwdHVyZSB0byBjYXB0dXJlIHRoZSBv
dXRwdXQgKGRvaW5nIHRoZSBsYXR0ZXIgcmVzdWx0cyBpbiBhIG5vbnBpY2tsYWJsZSBob3N0KS4K
LSAgICAgICAgXywgXywgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLXZlcmJvc2UnLCAnLS1mdWxs
eS1wYXJhbGxlbCcsICctLWNoaWxkLXByb2Nlc3NlcycsICcyJywgJ3Bhc3Nlcy90ZXh0Lmh0bWwn
LCAncGFzc2VzL2ltYWdlLmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKCd0ZXh0Lmh0bWwgZmFpbGVkJyBpbiBlcnIuZ2V0dmFsdWUoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKCdpbWFnZS5odG1sIGZhaWxlZCcgaW4gZXJyLmdldHZhbHVlKCkp
CisgICAgICAgIF8sIF8sIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS12ZXJib3NlJywgJy0tdmVy
Ym9zZScsICctLWZ1bGx5LXBhcmFsbGVsJywgJy0tY2hpbGQtcHJvY2Vzc2VzJywgJzInLCAncGFz
c2VzL3RleHQuaHRtbCcsICdwYXNzZXMvaW1hZ2UuaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVl
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3RleHQuaHRtbCBpcyBtaXNzaW5nIGFuIGV4cGVj
dGVkIHJlc3VsdCcgaW4gZXJyLmdldHZhbHVlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
aW1hZ2UuaHRtbCBpcyBtaXNzaW5nIGFuIGV4cGVjdGVkIHJlc3VsdCcgaW4gZXJyLmdldHZhbHVl
KCkpCiAKIAogY2xhc3MgRW5kVG9FbmRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTk0NCw3
ICs5MjcsNyBAQCBjbGFzcyBFbmRUb0VuZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAg
ZGVmIHRlc3RfZW5kX3RvX2VuZChzZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAg
ICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKHJlY29yZF9yZXN1bHRzPVRy
dWUsIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgcmVzLCBfLCBfLCB1
c2VyID0gbG9nZ2luZ19ydW4ocmVjb3JkX3Jlc3VsdHM9VHJ1ZSwgdGVzdHNfaW5jbHVkZWQ9VHJ1
ZSwgaG9zdD1ob3N0KQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgdW5leHBlY3Rl
ZF90ZXN0c19jb3VudCkKICAgICAgICAgcmVzdWx0cyA9IHNlbGYucGFyc2VfZnVsbF9yZXN1bHRz
KGhvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2Z1bGxfcmVzdWx0cy5qc29uJykpCkBAIC05NTksNyArOTQyLDcgQEAgY2xhc3MgRW5kVG9FbmRU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBUZXN0IHRoYXQgd2UgdXBkYXRlIGV4
cGVjdGF0aW9ucyBpbiBwbGFjZS4gSWYgdGhlIGV4cGVjdGF0aW9uCiAgICAgICAgICMgaXMgbWlz
c2luZywgdXBkYXRlIHRoZSBleHBlY3RlZCBnZW5lcmljIGxvY2F0aW9uLgogICAgICAgICBob3N0
ID0gTW9ja0hvc3QoKQotICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyct
LW5vLXNob3ctcmVzdWx0cycsICdyZWZ0ZXN0cy9mb28vJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUs
IGhvc3Q9aG9zdCwgcmVjb3JkX3Jlc3VsdHM9VHJ1ZSkKKyAgICAgICAgcmVzLCBfLCBlcnIsIF8g
PSBsb2dnaW5nX3J1bihbJy0tbm8tc2hvdy1yZXN1bHRzJywgJ3JlZnRlc3RzL2Zvby8nXSwgdGVz
dHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0LCByZWNvcmRfcmVzdWx0cz1UcnVlKQogICAgICAg
ICBmaWxlX2xpc3QgPSBob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcy5rZXlzKCkKICAgICAg
ICAgZmlsZV9saXN0LnJlbW92ZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjAu
dHh0JykKICAgICAgICAganNvbl9zdHJpbmcgPSBob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2Zp
bGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mdWxsX3Jlc3VsdHMuanNvbicpCkBAIC05OTEs
MTUgKzk3NCwxMSBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3Ry
ZWFtVGVzdGluZ01peGluKToKICAgICAgICAgIyBUZXN0IHRoYXQgd2UgdXBkYXRlIGV4cGVjdGF0
aW9ucyBpbiBwbGFjZS4gSWYgdGhlIGV4cGVjdGF0aW9uCiAgICAgICAgICMgaXMgbWlzc2luZywg
dXBkYXRlIHRoZSBleHBlY3RlZCBnZW5lcmljIGxvY2F0aW9uLgogICAgICAgICBob3N0ID0gTW9j
a0hvc3QoKQotICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLXBpeGVs
LXRlc3RzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICctLXJlc2V0LXJlc3VsdHMnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgJ3Bhc3Nlcy9pbWFnZS5odG1sJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX2ltYWdlLmh0bWwnXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCwgbmV3X3Jl
c3VsdHM9VHJ1ZSkKKyAgICAgICAgcmVzLCBfLCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tcGl4
ZWwtdGVzdHMnLCAnLS1yZXNldC1yZXN1bHRzJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJywgJ2ZhaWx1
cmVzL2V4cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRtbCddLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCwgbmV3X3Jlc3Vs
dHM9VHJ1ZSkKICAgICAgICAgZmlsZV9saXN0ID0gaG9zdC5maWxlc3lzdGVtLndyaXR0ZW5fZmls
ZXMua2V5cygpCiAgICAgICAgIGZpbGVfbGlzdC5yZW1vdmUoJy90bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy90ZXN0c19ydW4wLnR4dCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgMCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGZpbGVfbGlzdCksIDQpCiAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlz
dCwgInBhc3Nlcy9pbWFnZSIsIFsiLnR4dCIsICIucG5nIl0sIGVycikKICAgICAgICAgc2VsZi5h
c3NlcnRCYXNlbGluZXMoZmlsZV9saXN0LCAiZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFn
ZSIsIFsiLnR4dCIsICIucG5nIl0sIGVycikKQEAgLTEwMDksMTUgKzk4OCwxNCBAQCBjbGFzcyBS
ZWJhc2VsaW5lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAg
ICAgICAgIyBpcyBtaXNzaW5nLCB1cGRhdGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9jYXRpb24u
CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBs
b2dnaW5nX3J1bihbJy0tbm8tc2hvdy1yZXN1bHRzJywKLSAgICAgICAgICAgICAgICAgICAgICdm
YWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfdGV4dC5odG1sJywKLSAgICAgICAgICAgICAgICAg
ICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRtbCcsCi0gICAgICAgICAg
ICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNzaW5nX2F1ZGlvLmh0bWwnLAotICAg
ICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvbWlzc2luZ19yZW5kZXJfdHJl
ZV9kdW1wLmh0bWwnXSwKLSAgICAgICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUs
IGhvc3Q9aG9zdCwgbmV3X3Jlc3VsdHM9VHJ1ZSkKKyAgICAgICAgICAgICdmYWlsdXJlcy91bmV4
cGVjdGVkL21pc3NpbmdfdGV4dC5odG1sJywKKyAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVj
dGVkL21pc3NpbmdfaW1hZ2UuaHRtbCcsCisgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3Rl
ZC9taXNzaW5nX2F1ZGlvLmh0bWwnLAorICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQv
bWlzc2luZ19yZW5kZXJfdHJlZV9kdW1wLmh0bWwnXSwKKyAgICAgICAgICAgIHRlc3RzX2luY2x1
ZGVkPVRydWUsIGhvc3Q9aG9zdCwgbmV3X3Jlc3VsdHM9VHJ1ZSkKICAgICAgICAgZmlsZV9saXN0
ID0gaG9zdC5maWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMua2V5cygpCiAgICAgICAgIGZpbGVfbGlz
dC5yZW1vdmUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4wLnR4dCcpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgMCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0
eShvdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDYpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwgImZhaWx1cmVzL3VuZXhwZWN0ZWQv
bWlzc2luZ190ZXh0IiwgWyIudHh0Il0sIGVycikKICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGlu
ZXMoZmlsZV9saXN0LCAicGxhdGZvcm0vdGVzdC9mYWlsdXJlcy91bmV4cGVjdGVkL21pc3Npbmdf
aW1hZ2UiLCBbIi5wbmciXSwgZXJyKQpAQCAtMTAzNSw3ICsxMDEzLDYgQEAgY2xhc3MgUmViYXNl
bGluZVRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAg
IGZpbGVfbGlzdCA9IGhvc3QuZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzLmtleXMoKQogICAgICAg
ICBmaWxlX2xpc3QucmVtb3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50
eHQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXMsIDApCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RW1wdHkob3V0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xpc3QpLCA0
KQogICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCiAgICAgICAgICAgICAi
cGxhdGZvcm0vdGVzdC1tYWMtbGVvcGFyZC9wYXNzZXMvaW1hZ2UiLCBbIi50eHQiLCAiLnBuZyJd
LCBlcnIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92
aWV3cy9tZXRlcmVkX3N0cmVhbS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5CmluZGV4IGVjNzNhOTNhYzkwZDY1ODAxNzRmNjJi
MDU1YTZhODk5NWQ4MTE5YjcuLjRjMWQyZjVmYjZhNGYxZjUwOTVhMWM1MWZhOTljZDk0YzYxOWYy
MzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L21ldGVyZWRfc3RyZWFtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5CkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIE1ldGVy
ZWRTdHJlYW0ob2JqZWN0KToKICAgICBkZWYgX2Vuc3VyZV9uZXdsaW5lKHR4dCk6CiAgICAgICAg
IHJldHVybiB0eHQgaWYgdHh0LmVuZHN3aXRoKCdcbicpIGVsc2UgdHh0ICsgJ1xuJwogCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHN0cmVhbT1Ob25lLCB2ZXJib3NlPUZhbHNlLCBsb2dnZXI9Tm9u
ZSwgdGltZV9mbj1Ob25lLCBwaWQ9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmVh
bT1Ob25lLCB2ZXJib3NlPUZhbHNlLCBsb2dnZXI9Tm9uZSwgdGltZV9mbj1Ob25lLCBwaWQ9Tm9u
ZSwgbG9nX2xldmVsPWxvZ2dpbmcuSU5GTyk6CiAgICAgICAgIHNlbGYuX3N0cmVhbSA9IHN0cmVh
bSBvciBzeXMuc3RkZXJyCiAgICAgICAgIHNlbGYuX3ZlcmJvc2UgPSB2ZXJib3NlCiAgICAgICAg
IHNlbGYuX3RpbWVfZm4gPSB0aW1lX2ZuIG9yIHRpbWUudGltZQpAQCAtNjcsNyArNjcsNiBAQCBj
bGFzcyBNZXRlcmVkU3RyZWFtKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2xvZ2dlciA9IGxvZ2dl
cgogICAgICAgICBzZWxmLl9sb2dfaGFuZGxlciA9IE5vbmUKICAgICAgICAgaWYgc2VsZi5fbG9n
Z2VyOgotICAgICAgICAgICAgbG9nX2xldmVsID0gbG9nZ2luZy5ERUJVRyBpZiB2ZXJib3NlIGVs
c2UgbG9nZ2luZy5JTkZPCiAgICAgICAgICAgICBzZWxmLl9sb2dfaGFuZGxlciA9IF9Mb2dIYW5k
bGVyKHNlbGYpCiAgICAgICAgICAgICBzZWxmLl9sb2dfaGFuZGxlci5zZXRMZXZlbChsb2dfbGV2
ZWwpCiAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuYWRkSGFuZGxlcihzZWxmLl9sb2dfaGFuZGxl
cikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L3ByaW50aW5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3Mv
cHJpbnRpbmcucHkKaW5kZXggOGJjODliMjVmYWQ5Mjk3ODA4NGVkN2UxOTJkYTk4NGVmNzc2NGJl
My4uMmEwZDVhYzdjZWE4MzZiMTViZTcwN2E5MTM3ZDFhMDBmN2Q2ZDVmMCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkK
QEAgLTI3LDggKzI3LDkgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIiIlBh
Y2thZ2UgdGhhdCBoYW5kbGVzIG5vbi1kZWJ1Zywgbm9uLWZpbGUgb3V0cHV0IGZvciBydW4td2Vi
a2l0LXRlc3RzLiIiIgorIiIiTW9kdWxlIHRoYXQgaGFuZGxlcyBhbGwgb3V0cHV0IGZvciBuZXct
cnVuLXdlYmtpdC10ZXN0cy4iIiIKIAoraW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBtYXRoCiBpbXBv
cnQgb3B0cGFyc2UKIApAQCAtMzgsMTE1ICszOSwyMiBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5tb2RlbHMudGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBlY3RhdGlvbnMK
IGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZpZXdzLm1ldGVyZWRfc3RyZWFtIGltcG9ydCBN
ZXRlcmVkU3RyZWFtCiAKLU5VTV9TTE9XX1RFU1RTX1RPX0xPRyA9IDEwCiAKLVBSSU5UX0RFRkFV
TFQgPSAibWlzYyxvbmUtbGluZS1wcm9ncmVzcyxvbmUtbGluZS1zdW1tYXJ5LHVuZXhwZWN0ZWQs
dW5leHBlY3RlZC1yZXN1bHRzLHVwZGF0ZXMiCi1QUklOVF9FVkVSWVRISU5HID0gImFjdHVhbCxj
b25maWcsZXhwZWN0ZWQsbWlzYyxvbmUtbGluZS1wcm9ncmVzcyxvbmUtbGluZS1zdW1tYXJ5LHNs
b3dlc3QsdGltaW5nLHVuZXhwZWN0ZWQsdW5leHBlY3RlZC1yZXN1bHRzLHVwZGF0ZXMiCi0KLUhF
TFBfUFJJTlRJTkcgPSAiIiIKLU91dHB1dCBmb3IgcnVuLXdlYmtpdC10ZXN0cyBpcyBjb250cm9s
bGVkIGJ5IGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YKLXZhbHVlcyBwYXNzZWQgdG8gLS1wcmlu
dC4gIFZhbHVlcyBlaXRoZXIgaW5mbHVlbmNlIHRoZSBvdmVyYWxsIG91dHB1dCwgb3IKLXRoZSBv
dXRwdXQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcnVuLCBkdXJpbmcgdGhlIHJ1biwgb3IgYXQg
dGhlIGVuZDoKLQotT3ZlcmFsbCBvcHRpb25zOgotICAgIG5vdGhpbmcgICAgICAgICAgICAgZG9u
J3QgcHJpbnQgYW55dGhpbmcuIFRoaXMgb3ZlcnJpZGVzIGV2ZXJ5IG90aGVyIG9wdGlvbgotICAg
IGRlZmF1bHQgICAgICAgICAgICAgaW5jbHVkZSB0aGUgZGVmYXVsdCBvcHRpb25zLiBUaGlzIGlz
IHVzZWZ1bCBmb3IgbG9nZ2luZwotICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRlZmF1bHQg
b3B0aW9ucyBwbHVzIGFkZGl0aW9uYWwgc2V0dGluZ3MuCi0gICAgZXZlcnl0aGluZyAgICAgICAg
ICBwcmludCAoYWxtb3N0KSBldmVyeXRoaW5nIChleGNlcHQgdGhlIHRyYWNlLSogb3B0aW9ucywK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNlZSBiZWxvdyBmb3IgdGhlIGZ1bGwgbGlzdCApCi0g
ICAgbWlzYyAgICAgICAgICAgICAgICBwcmludCBtaXNjZWxsYW5lb3VzIHRoaW5ncyBsaWtlIGJs
YW5rIGxpbmVzCi0KLUF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJ1bjoKLSAgICBjb25maWcgICAg
ICAgICAgICAgIHByaW50IHRoZSB0ZXN0IHJ1biBjb25maWd1cmF0aW9uCi0gICAgZXhwZWN0ZWQg
ICAgICAgICAgICBwcmludCBhIHN1bW1hcnkgb2Ygd2hhdCBpcyBleHBlY3RlZCB0byBoYXBwZW4K
LSAgICAgICAgICAgICAgICAgICAgICAgICgjIHBhc3NlcywgIyBmYWlsdXJlcywgZXRjLikKLQot
RHVyaW5nIHRoZSBydW46Ci0gICAgb25lLWxpbmUtcHJvZ3Jlc3MgICBwcmludCBhIG9uZS1saW5l
IHByb2dyZXNzIG1lc3NhZ2Ugb3IgYmFyCi0gICAgdW5leHBlY3RlZCAgICAgICAgICBwcmludCBh
bnkgdW5leHBlY3RlZCByZXN1bHRzIGFzIHRoZXkgb2NjdXIKLSAgICB1cGRhdGVzICAgICAgICAg
ICAgIHByaW50IHVwZGF0ZXMgb24gd2hpY2ggc3RhZ2UgaXMgZXhlY3V0aW5nCi0gICAgdHJhY2Ut
ZXZlcnl0aGluZyAgICBwcmludCBkZXRhaWxlZCBpbmZvIG9uIGV2ZXJ5IHRlc3QncyByZXN1bHRz
Ci0gICAgICAgICAgICAgICAgICAgICAgICAoYmFzZWxpbmVzLCBleHBlY3RhdGlvbiwgdGltZSBp
dCB0b29rIHRvIHJ1bikuIElmCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzIGlzIHNwZWNp
ZmllZCBpdCB3aWxsIG92ZXJyaWRlIHRoZSAnKi1wcm9ncmVzcycKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG9wdGlvbnMsIHRoZSAndHJhY2UtdW5leHBlY3RlZCcgb3B0aW9uLCBhbmQgdGhlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAndW5leHBlY3RlZCcgb3B0aW9uLgotICAgIHRyYWNlLXVu
ZXhwZWN0ZWQgICAgbGlrZSAndHJhY2UtZXZlcnl0aGluZycsIGJ1dCBvbmx5IGZvciB0ZXN0cyB3
aXRoCi0gICAgICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkIHJlc3VsdHMuIElmIHRoaXMg
b3B0aW9uIGlzIHNwZWNpZmllZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGl0IHdpbGwgb3Zl
cnJpZGUgdGhlICd1bmV4cGVjdGVkJyBvcHRpb24uCi0KLUF0IHRoZSBlbmQgb2YgdGhlIHJ1bjoK
LSAgICBhY3R1YWwgICAgICAgICAgICAgIHByaW50IGEgc3VtbWFyeSBvZiB0aGUgYWN0dWFsIHJl
c3VsdHMKLSAgICBzbG93ZXN0ICAgICAgICAgICAgIHByaW50ICUoc2xvd2VzdClkIHNsb3dlc3Qg
dGVzdHMgYW5kIHRoZSB0aW1lIHRoZXkgdG9vawotICAgIHRpbWluZyAgICAgICAgICAgICAgcHJp
bnQgdGltaW5nIHN0YXRpc3RpY3MKLSAgICB1bmV4cGVjdGVkLXJlc3VsdHMgIHByaW50IGEgbGlz
dCBvZiB0aGUgdGVzdHMgd2l0aCB1bmV4cGVjdGVkIHJlc3VsdHMKLSAgICBvbmUtbGluZS1zdW1t
YXJ5ICAgIHByaW50IGEgb25lLWxpbmUgc3VtbWFyeSBvZiB0aGUgcnVuCi0KLU5vdGVzOgotICAg
IC0gSWYgJ25vdGhpbmcnIGlzIHNwZWNpZmllZCwgaXQgb3ZlcnJpZGVzIGFsbCBvZiB0aGUgb3Ro
ZXIgb3B0aW9ucy4KLSAgICAtIFNwZWNpZnlpbmcgLS12ZXJib3NlIGlzIGVxdWl2YWxlbnQgdG8g
LS1wcmludCBldmVyeXRoaW5nIHBsdXMgaXQKLSAgICAgIGNoYW5nZXMgdGhlIGZvcm1hdCBvZiB0
aGUgbG9nIG1lc3NhZ2VzIHRvIGFkZCB0aW1lc3RhbXBzIGFuZCBvdGhlcgotICAgICAgaW5mb3Jt
YXRpb24uIElmIHlvdSBzcGVjaWZ5IC0tdmVyYm9zZSBhbmQgLS1wcmludCBYLCB0aGVuIFggb3Zl
cnJpZGVzCi0gICAgICB0aGUgLS1wcmludCBldmVyeXRoaW5nIGltcGxpZWQgYnkgLS12ZXJib3Nl
LgotCi0tLXByaW50ICdldmVyeXRoaW5nJyBpcyBlcXVpdmFsZW50IHRvIC0tcHJpbnQgJyUoZXZl
cnl0aGluZylzJy4KLQotVGhlIGRlZmF1bHQgKC0tcHJpbnQgZGVmYXVsdCkgaXMgZXF1aXZhbGVu
dCB0byAtLXByaW50ICclKGRlZmF1bHQpcycuCi0iIiIgJSB7J3Nsb3dlc3QnOiBOVU1fU0xPV19U
RVNUU19UT19MT0csICdldmVyeXRoaW5nJzogUFJJTlRfRVZFUllUSElORywKLSAgICAgICAnZGVm
YXVsdCc6IFBSSU5UX0RFRkFVTFR9CitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p
CisKIAorTlVNX1NMT1dfVEVTVFNfVE9fTE9HID0gMTAKIAogZGVmIHByaW50X29wdGlvbnMoKToK
ICAgICByZXR1cm4gWwotICAgICAgICAjIE5vdGU6IFdlIHVzZSBwcmludF9vcHRpb25zIHJhdGhl
ciB0aGFuIGp1c3QgJ3ByaW50JyBiZWNhdXNlIHByaW50Ci0gICAgICAgICMgaXMgYSByZXNlcnZl
ZCB3b3JkLgotICAgICAgICAjIE5vdGU6IEFsc28sIHdlIGRvbid0IHNwZWNpZnkgYSBkZWZhdWx0
IHZhbHVlIHNvIHdlIGNhbiBkZXRlY3Qgd2hlbgotICAgICAgICAjIG5vIGZsYWcgaXMgc3BlY2lm
aWVkIG9uIHRoZSBjb21tYW5kIGxpbmUgYW5kIHVzZSBkaWZmZXJlbnQgZGVmYXVsdHMKLSAgICAg
ICAgIyBiYXNlZCBvbiB3aGV0aGVyIG9yIG5vdCAtLXZlcmJvc2UgaXMgc3BlY2lmaWVkIChzaW5j
ZSAtLXByaW50Ci0gICAgICAgICMgb3ZlcnJpZGVzIC0tdmVyYm9zZSkuCi0gICAgICAgIG9wdHBh
cnNlLm1ha2Vfb3B0aW9uKCItLXByaW50IiwgZGVzdD0icHJpbnRfb3B0aW9ucyIsCi0gICAgICAg
ICAgICBoZWxwPSgiY29udHJvbHMgcHJpbnQgb3V0cHV0IG9mIHRlc3QgcnVuLiAiCi0gICAgICAg
ICAgICAgICAgICAiVXNlIC0taGVscC1wcmludGluZyBmb3IgbW9yZS4iKSksCi0gICAgICAgIG9w
dHBhcnNlLm1ha2Vfb3B0aW9uKCItLWhlbHAtcHJpbnRpbmciLCBhY3Rpb249InN0b3JlX3RydWUi
LAotICAgICAgICAgICAgaGVscD0ic2hvdyBkZXRhaWxlZCBoZWxwIG9uIGNvbnRyb2xsaW5nIHBy
aW50IG91dHB1dCIpLAotICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLXYiLCAiLS12ZXJi
b3NlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhl
bHA9ImluY2x1ZGUgZGVidWctbGV2ZWwgbG9nZ2luZyIpLAotICAgXQotCi0KLWRlZiBwYXJzZV9w
cmludF9vcHRpb25zKHByaW50X29wdGlvbnMsIHZlcmJvc2UpOgotICAgICIiIlBhcnNlIHRoZSBv
cHRpb25zIHByb3ZpZGVkIHRvIC0tcHJpbnQgYW5kIGRlZHVwIGFuZCByYW5rIHRoZW0uCi0KLSAg
ICBSZXR1cm5zCi0gICAgICAgIGEgc2V0KCkgb2Ygc3dpdGNoZXMgdGhhdCBnb3Zlcm4gaG93IGxv
Z2dpbmcgaXMgZG9uZQotCi0gICAgIiIiCi0gICAgaWYgcHJpbnRfb3B0aW9uczoKLSAgICAgICAg
c3dpdGNoZXMgPSBzZXQocHJpbnRfb3B0aW9ucy5zcGxpdCgnLCcpKQotICAgIGVsaWYgdmVyYm9z
ZToKLSAgICAgICAgc3dpdGNoZXMgPSBzZXQoUFJJTlRfRVZFUllUSElORy5zcGxpdCgnLCcpKQot
ICAgIGVsc2U6Ci0gICAgICAgIHN3aXRjaGVzID0gc2V0KFBSSU5UX0RFRkFVTFQuc3BsaXQoJywn
KSkKLQotICAgIGlmICdub3RoaW5nJyBpbiBzd2l0Y2hlczoKLSAgICAgICAgcmV0dXJuIHNldCgp
Ci0KLSAgICBpZiAnZXZlcnl0aGluZycgaW4gc3dpdGNoZXM6Ci0gICAgICAgIHN3aXRjaGVzLmRp
c2NhcmQoJ2V2ZXJ5dGhpbmcnKQotICAgICAgICBzd2l0Y2hlcy51cGRhdGUoc2V0KFBSSU5UX0VW
RVJZVEhJTkcuc3BsaXQoJywnKSkpCi0KLSAgICBpZiAnZGVmYXVsdCcgaW4gc3dpdGNoZXM6Ci0g
ICAgICAgIHN3aXRjaGVzLmRpc2NhcmQoJ2RlZmF1bHQnKQotICAgICAgICBzd2l0Y2hlcy51cGRh
dGUoc2V0KFBSSU5UX0RFRkFVTFQuc3BsaXQoJywnKSkpCi0KLSAgICBpZiAndHJhY2UtZXZlcnl0
aGluZycgaW4gc3dpdGNoZXM6Ci0gICAgICAgIHN3aXRjaGVzLmRpc2NhcmQoJ29uZS1saW5lLXBy
b2dyZXNzJykKLSAgICAgICAgc3dpdGNoZXMuZGlzY2FyZCgndHJhY2UtdW5leHBlY3RlZCcpCi0g
ICAgICAgIHN3aXRjaGVzLmRpc2NhcmQoJ3VuZXhwZWN0ZWQnKQotCi0gICAgaWYgJ3RyYWNlLXVu
ZXhwZWN0ZWQnIGluIHN3aXRjaGVzOgotICAgICAgICBzd2l0Y2hlcy5kaXNjYXJkKCd1bmV4cGVj
dGVkJykKLQotICAgIHJldHVybiBzd2l0Y2hlcworICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlv
bignLXEnLCAnLS1xdWlldCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3J1biBxdWlldGx5IChlcnJvcnMsIHdh
cm5pbmdzLCBhbmQgcHJvZ3Jlc3Mgb25seSknKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRp
b24oJy12JywgJy0tdmVyYm9zZScsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3ZlcmJvc2Ugb3V0cHV0IChvbmUg
bGluZSBwZXIgdGVzdCknKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZGV0YWls
cycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J3ByaW50IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGVhY2gg
dGVzdCcpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1kZWJ1Zy1yd3QtbG9nZ2lu
ZycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J3ByaW50IHRpbWVzdGFtcHMgYW5kIGRlYnVnIGluZm9ybWF0aW9u
IGZvciBydW4td2Via2l0LXRlc3RzIGl0c2VsZicpXQogCiAKIGNsYXNzIFByaW50ZXIob2JqZWN0
KToKQEAgLTE2MiwyMSArNzAsMTYgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgIEJ5IGRl
ZmF1bHQgdGhlIGJ1aWxkYm90LXBhcnNlZCBjb2RlIGdldHMgbG9nZ2VkIHRvIHN0ZG91dCwgYW5k
IHJlZ3VsYXIKICAgICBvdXRwdXQgZ2V0cyBsb2dnZWQgdG8gc3RkZXJyLiIiIgogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCByZWd1bGFyX291dHB1dCwgYnVpbGRib3Rfb3V0
cHV0LCBsb2dnZXI9Tm9uZSk6Ci0gICAgICAgICIiIgotICAgICAgICBBcmdzCi0gICAgICAgICAg
cG9ydCAgICAgICAgICAgICAgIGludGVyZmFjZSB0byBwb3J0LXNwZWNpZmljIHJvdXRpbmVzCi0g
ICAgICAgICAgb3B0aW9ucyAgICAgICAgICAgIE9wdGlvblBhcnNlciBvYmplY3Qgd2l0aCBjb21t
YW5kIGxpbmUgc2V0dGluZ3MKLSAgICAgICAgICByZWd1bGFyX291dHB1dCAgICAgc3RyZWFtIHRv
IHdoaWNoIG91dHB1dCBpbnRlbmRlZCBvbmx5IGZvciBodW1hbnMKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkIGJlIHdyaXR0ZW4KLSAgICAgICAgICBidWlsZGJvdF9vdXRwdXQg
ICAgc3RyZWFtIHRvIHdoaWNoIG91dHB1dCBpbnRlbmRlZCB0byBiZSByZWFkIGJ5Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoZSBidWlsZGJvdHMgKGFuZCBodW1hbnMpIHNob3VsZCBi
ZSB3cml0dGVuCi0gICAgICAgICAgbG9nZ2VyICAgICAgICAgICAgIG9wdGlvbmFsIGxvZ2dlciB0
byBpbnRlZ3JhdGUgaW50byB0aGUgc3RyZWFtLgotICAgICAgICAiIiIKICAgICAgICAgc2VsZi5f
cG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2Vs
Zi5fYnVpbGRib3Rfc3RyZWFtID0gYnVpbGRib3Rfb3V0cHV0Ci0gICAgICAgIHNlbGYuX21ldGVy
ID0gTWV0ZXJlZFN0cmVhbShyZWd1bGFyX291dHB1dCwgb3B0aW9ucy52ZXJib3NlLCBsb2dnZXI9
bG9nZ2VyKQotICAgICAgICBzZWxmLnN3aXRjaGVzID0gcGFyc2VfcHJpbnRfb3B0aW9ucyhvcHRp
b25zLnByaW50X29wdGlvbnMsIG9wdGlvbnMudmVyYm9zZSkKKworICAgICAgICBsb2dfbGV2ZWwg
PSBsb2dnaW5nLklORk8KKyAgICAgICAgaWYgb3B0aW9ucy5xdWlldDoKKyAgICAgICAgICAgIGxv
Z19sZXZlbCA9IGxvZ2dpbmcuV0FSTklORworICAgICAgICBlbGlmIG9wdGlvbnMuZGVidWdfcnd0
X2xvZ2dpbmc6CisgICAgICAgICAgICBsb2dfbGV2ZWwgPSBsb2dnaW5nLkRFQlVHCisgICAgICAg
IHNlbGYuX21ldGVyID0gTWV0ZXJlZFN0cmVhbShyZWd1bGFyX291dHB1dCwgb3B0aW9ucy5kZWJ1
Z19yd3RfbG9nZ2luZywgbG9nZ2VyPWxvZ2dlciwgbG9nX2xldmVsPWxvZ19sZXZlbCkKIAogICAg
IGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLl9tZXRlci5jbGVhbnVwKCkKQEAgLTE4
NCw3NSArODcsNTMgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgIGRlZiBfX2RlbF9fKHNl
bGYpOgogICAgICAgICBzZWxmLmNsZWFudXAoKQogCi0gICAgIyBUaGVzZSB0d28gcm91dGluZXMg
anVzdCBoaWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3dpdGNoZXMuCi0gICAgZGVmIGRp
c2FibGVkKHNlbGYsIG9wdGlvbik6Ci0gICAgICAgIHJldHVybiBub3Qgb3B0aW9uIGluIHNlbGYu
c3dpdGNoZXMKLQotICAgIGRlZiBlbmFibGVkKHNlbGYsIG9wdGlvbik6Ci0gICAgICAgIHJldHVy
biBvcHRpb24gaW4gc2VsZi5zd2l0Y2hlcwotCi0gICAgZGVmIGhlbHBfcHJpbnRpbmcoc2VsZik6
Ci0gICAgICAgIHNlbGYuX3dyaXRlKEhFTFBfUFJJTlRJTkcpCi0KICAgICBkZWYgcHJpbnRfY29u
ZmlnKHNlbGYpOgotICAgICAgICAiIiJQcmludHMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0
ZXN0IHJ1bi4iIiIKLSAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJVc2luZyBwb3J0ICclcyci
ICUgc2VsZi5fcG9ydC5uYW1lKCkpCi0gICAgICAgIHNlbGYuX3ByaW50X2NvbmZpZygiVGVzdCBj
b25maWd1cmF0aW9uOiAlcyIgJSBzZWxmLl9wb3J0LnRlc3RfY29uZmlndXJhdGlvbigpKQotICAg
ICAgICBzZWxmLl9wcmludF9jb25maWcoIlBsYWNpbmcgdGVzdCByZXN1bHRzIGluICVzIiAlIHNl
bGYuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnkpCisgICAgICAgIF9sb2cuaW5mbygiVXNpbmcg
cG9ydCAnJXMnIiAlIHNlbGYuX3BvcnQubmFtZSgpKQorICAgICAgICBfbG9nLmluZm8oIlRlc3Qg
Y29uZmlndXJhdGlvbjogJXMiICUgc2VsZi5fcG9ydC50ZXN0X2NvbmZpZ3VyYXRpb24oKSkKKyAg
ICAgICAgX2xvZy5pbmZvKCJQbGFjaW5nIHRlc3QgcmVzdWx0cyBpbiAlcyIgJSBzZWxmLl9vcHRp
b25zLnJlc3VsdHNfZGlyZWN0b3J5KQogCiAgICAgICAgICMgRklYTUU6IHNob3VsZCB0aGVzZSBv
cHRpb25zIGJlIGluIHByaW50aW5nX29wdGlvbnM/CiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
bmV3X2Jhc2VsaW5lOgotICAgICAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJQbGFjaW5nIG5l
dyBiYXNlbGluZXMgaW4gJXMiICUgc2VsZi5fcG9ydC5iYXNlbGluZV9wYXRoKCkpCisgICAgICAg
ICAgICBfbG9nLmluZm8oIlBsYWNpbmcgbmV3IGJhc2VsaW5lcyBpbiAlcyIgJSBzZWxmLl9wb3J0
LmJhc2VsaW5lX3BhdGgoKSkKIAogICAgICAgICBmcyA9IHNlbGYuX3BvcnQuaG9zdC5maWxlc3lz
dGVtCiAgICAgICAgIGZhbGxiYWNrX3BhdGggPSBbZnMuc3BsaXQoeClbMV0gZm9yIHggaW4gc2Vs
Zi5fcG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpXQotICAgICAgICBzZWxmLl9wcmludF9jb25m
aWcoIkJhc2VsaW5lIHNlYXJjaCBwYXRoOiAlcyAtPiBnZW5lcmljIiAlICIgLT4gIi5qb2luKGZh
bGxiYWNrX3BhdGgpKQorICAgICAgICBfbG9nLmluZm8oIkJhc2VsaW5lIHNlYXJjaCBwYXRoOiAl
cyAtPiBnZW5lcmljIiAlICIgLT4gIi5qb2luKGZhbGxiYWNrX3BhdGgpKQogCi0gICAgICAgIHNl
bGYuX3ByaW50X2NvbmZpZygiVXNpbmcgJXMgYnVpbGQiICUgc2VsZi5fb3B0aW9ucy5jb25maWd1
cmF0aW9uKQorICAgICAgICBfbG9nLmluZm8oIlVzaW5nICVzIGJ1aWxkIiAlIHNlbGYuX29wdGlv
bnMuY29uZmlndXJhdGlvbikKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0czoK
LSAgICAgICAgICAgIHNlbGYuX3ByaW50X2NvbmZpZygiUGl4ZWwgdGVzdHMgZW5hYmxlZCIpCisg
ICAgICAgICAgICBfbG9nLmluZm8oIlBpeGVsIHRlc3RzIGVuYWJsZWQiKQogICAgICAgICBlbHNl
OgotICAgICAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJQaXhlbCB0ZXN0cyBkaXNhYmxlZCIp
CisgICAgICAgICAgICBfbG9nLmluZm8oIlBpeGVsIHRlc3RzIGRpc2FibGVkIikKIAotICAgICAg
ICBzZWxmLl9wcmludF9jb25maWcoIlJlZ3VsYXIgdGltZW91dDogJXMsIHNsb3cgdGVzdCB0aW1l
b3V0OiAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX29wdGlvbnMudGlt
ZV9vdXRfbXMsIHNlbGYuX29wdGlvbnMuc2xvd190aW1lX291dF9tcykpCisgICAgICAgIF9sb2cu
aW5mbygiUmVndWxhciB0aW1lb3V0OiAlcywgc2xvdyB0ZXN0IHRpbWVvdXQ6ICVzIiAlCisgICAg
ICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcywgc2VsZi5fb3B0aW9ucy5z
bG93X3RpbWVfb3V0X21zKSkKIAotICAgICAgICBzZWxmLl9wcmludF9jb25maWcoJ0NvbW1hbmQg
bGluZTogJyArICcgJy5qb2luKHNlbGYuX3BvcnQuZHJpdmVyX2NtZF9saW5lKCkpKQotICAgICAg
ICBzZWxmLl9wcmludF9jb25maWcoJycpCisgICAgICAgIF9sb2cuaW5mbygnQ29tbWFuZCBsaW5l
OiAnICsgJyAnLmpvaW4oc2VsZi5fcG9ydC5kcml2ZXJfY21kX2xpbmUoKSkpCisgICAgICAgIF9s
b2cuaW5mbygnJykKIAogICAgIGRlZiBwcmludF9mb3VuZChzZWxmLCBudW1fYWxsX3Rlc3RfZmls
ZXMsIG51bV90b19ydW4sIHJlcGVhdF9lYWNoLCBpdGVyYXRpb25zKToKICAgICAgICAgZm91bmRf
c3RyID0gJ0ZvdW5kICVzOyBydW5uaW5nICVkJyAlIChncmFtbWFyLnBsdXJhbGl6ZSgndGVzdCcs
IG51bV9hbGxfdGVzdF9maWxlcyksIG51bV90b19ydW4pCiAgICAgICAgIGlmIHJlcGVhdF9lYWNo
ICogaXRlcmF0aW9ucyA+IDE6CiAgICAgICAgICAgICBmb3VuZF9zdHIgKz0gJyAoJWQgdGltZXMg
ZWFjaDogLS1yZXBlYXQtZWFjaD0lZCAtLWl0ZXJhdGlvbnM9JWQpJyAlIChyZXBlYXRfZWFjaCAq
IGl0ZXJhdGlvbnMsIHJlcGVhdF9lYWNoLCBpdGVyYXRpb25zKQogICAgICAgICBmb3VuZF9zdHIg
Kz0gJywgc2tpcHBpbmcgJWQnICUgKG51bV9hbGxfdGVzdF9maWxlcyAtIG51bV90b19ydW4pCi0g
ICAgICAgIHNlbGYuX3ByaW50X2V4cGVjdGVkKGZvdW5kX3N0ciArICcuJykKKyAgICAgICAgX2xv
Zy5pbmZvKGZvdW5kX3N0ciArICcuJykKIAogICAgIGRlZiBwcmludF9leHBlY3RlZChzZWxmLCBy
ZXN1bHRfc3VtbWFyeSwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjayk6CiAgICAgICAg
IHNlbGYuX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNfb2ZfdHlwZShyZXN1bHRfc3VtbWFyeSwgdGVz
dF9leHBlY3RhdGlvbnMuUEFTUywgInBhc3NlcyIsIHRlc3RzX3dpdGhfcmVzdWx0X3R5cGVfY2Fs
bGJhY2spCiAgICAgICAgIHNlbGYuX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNfb2ZfdHlwZShyZXN1
bHRfc3VtbWFyeSwgdGVzdF9leHBlY3RhdGlvbnMuRkFJTCwgImZhaWx1cmVzIiwgdGVzdHNfd2l0
aF9yZXN1bHRfdHlwZV9jYWxsYmFjaykKICAgICAgICAgc2VsZi5fcHJpbnRfZXhwZWN0ZWRfcmVz
dWx0c19vZl90eXBlKHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4cGVjdGF0aW9ucy5GTEFLWSwgImZs
YWt5IiwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjaykKLSAgICAgICAgc2VsZi5fcHJp
bnRfZXhwZWN0ZWQoJycpCisgICAgICAgIF9sb2cuZGVidWcoJycpCiAKICAgICBkZWYgcHJpbnRf
d29ya2Vyc19hbmRfc2hhcmRzKHNlbGYsIG51bV93b3JrZXJzLCBudW1fc2hhcmRzLCBudW1fbG9j
a2VkX3NoYXJkcyk6CiAgICAgICAgIGRyaXZlcl9uYW1lID0gc2VsZi5fcG9ydC5kcml2ZXJfbmFt
ZSgpCiAgICAgICAgIGlmIG51bV93b3JrZXJzID09IDE6Ci0gICAgICAgICAgICBzZWxmLl9wcmlu
dF9jb25maWcoIlJ1bm5pbmcgMSAlcyBvdmVyICVzLiIgJQotICAgICAgICAgICAgICAgIChkcml2
ZXJfbmFtZSwgZ3JhbW1hci5wbHVyYWxpemUoJ3NoYXJkJywgbnVtX3NoYXJkcykpKQorICAgICAg
ICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIDEgJXMgb3ZlciAlcy4iICUgKGRyaXZlcl9uYW1lLCBn
cmFtbWFyLnBsdXJhbGl6ZSgnc2hhcmQnLCBudW1fc2hhcmRzKSkpCiAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBzZWxmLl9wcmludF9jb25maWcoIlJ1bm5pbmcgJWQgJXNzIGluIHBhcmFsbGVs
IG92ZXIgJWQgc2hhcmRzICglZCBsb2NrZWQpLiIgJQotICAgICAgICAgICAgICAgIChudW1fd29y
a2VycywgZHJpdmVyX25hbWUsIG51bV9zaGFyZHMsIG51bV9sb2NrZWRfc2hhcmRzKSkKLSAgICAg
ICAgc2VsZi5fcHJpbnRfY29uZmlnKCcnKQotCi0gICAgZGVmIF9wcmludF9leHBlY3RlZF9yZXN1
bHRzX29mX3R5cGUoc2VsZiwgcmVzdWx0X3N1bW1hcnksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBlX3N0ciwgdGVzdHNfd2l0
aF9yZXN1bHRfdHlwZV9jYWxsYmFjayk6Ci0gICAgICAgICIiIlByaW50IHRoZSBudW1iZXIgb2Yg
dGhlIHRlc3RzIGluIGEgZ2l2ZW4gcmVzdWx0IGNsYXNzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgcmVzdWx0X3N1bW1hcnkgLSB0aGUgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZSByZXN1
bHRzIHRvIHJlcG9ydCBvbgotICAgICAgICAgIHJlc3VsdF90eXBlIC0gdGhlIHBhcnRpY3VsYXIg
cmVzdWx0IHR5cGUgdG8gcmVwb3J0IGluIHRoZSBzdW1tYXJ5LgotICAgICAgICAgIHJlc3VsdF90
eXBlX3N0ciAtIGEgc3RyaW5nIGRlc2NyaXB0aW9uIG9mIHRoZSByZXN1bHRfdHlwZS4KLSAgICAg
ICAgICBleHBlY3RhdGlvbnMgLSBwb3B1bGF0ZWQgVGVzdEV4cGVjdGF0aW9ucyBvYmplY3QgZm9y
IHN0YXRzCi0gICAgICAgICIiIgorICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nICVkICVz
cyBpbiBwYXJhbGxlbCBvdmVyICVkIHNoYXJkcyAoJWQgbG9ja2VkKS4iICUgKG51bV93b3JrZXJz
LCBkcml2ZXJfbmFtZSwgbnVtX3NoYXJkcywgbnVtX2xvY2tlZF9zaGFyZHMpKQorICAgICAgICBf
bG9nLmluZm8oJycpCisKKyAgICBkZWYgX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNfb2ZfdHlwZShz
ZWxmLCByZXN1bHRfc3VtbWFyeSwgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBlX3N0ciwgdGVzdHNf
d2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjayk6CiAgICAgICAgIHRlc3RzID0gdGVzdHNfd2l0aF9y
ZXN1bHRfdHlwZV9jYWxsYmFjayhyZXN1bHRfdHlwZSkKICAgICAgICAgbm93ID0gcmVzdWx0X3N1
bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGVzdF9leHBlY3RhdGlvbnMuTk9XXQogICAgICAgICB3
b250Zml4ID0gcmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGVzdF9leHBlY3RhdGlv
bnMuV09OVEZJWF0KQEAgLTI2MSwxMiArMTQyLDEwIEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToK
ICAgICAgICAgIyBuaWNlbHktYWxpZ25lZCB0YWJsZS4KICAgICAgICAgZm10c3RyID0gKCJFeHBl
Y3Q6ICUlNWQgJSUtOHMgKCUlJWRkIG5vdywgJSUlZGQgd29udGZpeCkiCiAgICAgICAgICAgICAg
ICAgICAlIChzZWxmLl9udW1fZGlnaXRzKG5vdyksIHNlbGYuX251bV9kaWdpdHMod29udGZpeCkp
KQotICAgICAgICBzZWxmLl9wcmludF9leHBlY3RlZChmbXRzdHIgJQorICAgICAgICBfbG9nLmRl
YnVnKGZtdHN0ciAlCiAgICAgICAgICAgICAobGVuKHRlc3RzKSwgcmVzdWx0X3R5cGVfc3RyLCBs
ZW4odGVzdHMgJiBub3cpLCBsZW4odGVzdHMgJiB3b250Zml4KSkpCiAKICAgICBkZWYgX251bV9k
aWdpdHMoc2VsZiwgbnVtKToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0
cyBuZWVkZWQgdG8gcmVwcmVzZW50IHRoZSBsZW5ndGggb2YgYQotICAgICAgICBzZXF1ZW5jZS4i
IiIKICAgICAgICAgbmRpZ2l0cyA9IDEKICAgICAgICAgaWYgbGVuKG51bSk6CiAgICAgICAgICAg
ICBuZGlnaXRzID0gaW50KG1hdGgubG9nMTAobGVuKG51bSkpKSArIDEKQEAgLTI3NCw2MSArMTUz
LDQwIEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKIAogICAgIGRlZiBwcmludF9yZXN1bHRzKHNl
bGYsIHJ1bl90aW1lLCB0aHJlYWRfdGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rl
c3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnksIHVuZXhwZWN0ZWRfcmVzdWx0cyk6CiAgICAgICAg
IHNlbGYuX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHJ1bl90aW1lLCB0aHJlYWRfdGltaW5ncywg
dGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnkpCi0g
ICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5KQogCi0gICAg
ICAgIHNlbGYucHJpbnRfb25lX2xpbmVfc3VtbWFyeShyZXN1bHRfc3VtbWFyeS50b3RhbCAtIHJl
c3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzLCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCAtIHJl
c3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzLCByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkKQor
ICAgICAgICAjIEZJWE1FOiB3ZSBzaG91bGQgcHJvYmFibHkgcGFzcyBpbiBhIGZsYWcgdG8gaW5k
aWNhdGUgaWYgd2Ugd2FudCB0aGlzIHdyaXR0ZW4gdG8gc3Rkb3V0IG9yIG5vdC4KKyAgICAgICAg
aWYgc2VsZi5fb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZzoKKyAgICAgICAgICAgIHNlbGYuX3By
aW50X3Jlc3VsdF9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5KQorCisgICAgICAgIHNlbGYuX3ByaW50
X29uZV9saW5lX3N1bW1hcnkocmVzdWx0X3N1bW1hcnkudG90YWwgLSByZXN1bHRfc3VtbWFyeS5l
eHBlY3RlZF9za2lwcywgcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQgLSByZXN1bHRfc3VtbWFyeS5l
eHBlY3RlZF9za2lwcywgcmVzdWx0X3N1bW1hcnkudW5leHBlY3RlZCkKIAotICAgICAgICBzZWxm
LnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1bmV4cGVjdGVkX3Jlc3VsdHMpCisgICAgICAgIHNl
bGYuX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1bmV4cGVjdGVkX3Jlc3VsdHMpCiAKICAgICBk
ZWYgX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHNlbGYsIHRvdGFsX3RpbWUsIHRocmVhZF90aW1p
bmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5X3Rlc3RfdGlt
aW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHRfc3VtbWFyeSk6Ci0gICAgICAgICIiIlJlY29yZCB0aW1pbmctc3BlY2lm
aWMgaW5mb3JtYXRpb24gZm9yIHRoZSB0ZXN0IHJ1bi4KLQotICAgICAgICBBcmdzOgotICAgICAg
ICAgIHRvdGFsX3RpbWU6IHRvdGFsIGVsYXBzZWQgdGltZSAoaW4gc2Vjb25kcykgZm9yIHRoZSB0
ZXN0IHJ1bgotICAgICAgICAgIHRocmVhZF90aW1pbmdzOiB3YWxsIGNsb2NrIHRpbWUgZWFjaCB0
aHJlYWQgcmFuIGZvcgotICAgICAgICAgIGRpcmVjdG9yeV90ZXN0X3RpbWluZ3M6IHRpbWluZyBi
eSBkaXJlY3RvcnkKLSAgICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogdGltaW5nIGJ5
IGZpbGUKLSAgICAgICAgICByZXN1bHRfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgZm9yIHRoZSB0
ZXN0IHJ1bgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIlRlc3QgdGlt
aW5nOiIpCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgICU2LjJmIHRvdGFsIHRlc3Rpbmcg
dGltZSIgJSB0b3RhbF90aW1lKQotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiIikKLSAgICAg
ICAgc2VsZi5wcmludF90aW1pbmcoIlRocmVhZCB0aW1pbmc6IikKKyAgICAgICAgX2xvZy5kZWJ1
ZygiVGVzdCB0aW1pbmc6IikKKyAgICAgICAgX2xvZy5kZWJ1ZygiICAlNi4yZiB0b3RhbCB0ZXN0
aW5nIHRpbWUiICUgdG90YWxfdGltZSkKKyAgICAgICAgX2xvZy5kZWJ1ZygiIikKKyAgICAgICAg
X2xvZy5kZWJ1ZygiVGhyZWFkIHRpbWluZzoiKQogICAgICAgICBjdW1sX3RpbWUgPSAwCiAgICAg
ICAgIGZvciB0IGluIHRocmVhZF90aW1pbmdzOgotICAgICAgICAgICAgc2VsZi5wcmludF90aW1p
bmcoIiAgICAlMTBzOiAlNWQgdGVzdHMsICU2LjJmIHNlY3MiICUKLSAgICAgICAgICAgICAgICAg
ICh0WyduYW1lJ10sIHRbJ251bV90ZXN0cyddLCB0Wyd0b3RhbF90aW1lJ10pKQorICAgICAgICAg
ICAgX2xvZy5kZWJ1ZygiICAgICUxMHM6ICU1ZCB0ZXN0cywgJTYuMmYgc2VjcyIgJSAodFsnbmFt
ZSddLCB0WydudW1fdGVzdHMnXSwgdFsndG90YWxfdGltZSddKSkKICAgICAgICAgICAgIGN1bWxf
dGltZSArPSB0Wyd0b3RhbF90aW1lJ10KLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgICU2
LjJmIGN1bXVsYXRpdmUsICU2LjJmIG9wdGltYWwiICUKLSAgICAgICAgICAgICAgKGN1bWxfdGlt
ZSwgY3VtbF90aW1lIC8gaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSkpCi0gICAg
ICAgIHNlbGYucHJpbnRfdGltaW5nKCIiKQorICAgICAgICBfbG9nLmRlYnVnKCIgICAlNi4yZiBj
dW11bGF0aXZlLCAlNi4yZiBvcHRpbWFsIiAlIChjdW1sX3RpbWUsIGN1bWxfdGltZSAvIGludChz
ZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykpKQorICAgICAgICBfbG9nLmRlYnVnKCIiKQog
CiAgICAgICAgIHNlbGYuX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3MoaW5kaXZpZHVh
bF90ZXN0X3RpbWluZ3MpCi0gICAgICAgIHNlbGYuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1l
cyhpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5KQorICAgICAgICBzZWxmLl9wcmludF9pbmRpdmlk
dWFsX3Rlc3RfdGltZXMoaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5KQog
ICAgICAgICBzZWxmLl9wcmludF9kaXJlY3RvcnlfdGltaW5ncyhkaXJlY3RvcnlfdGVzdF90aW1p
bmdzKQogCiAgICAgZGVmIF9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKHNlbGYsIGlu
ZGl2aWR1YWxfdGVzdF90aW1pbmdzKToKLSAgICAgICAgIiIiUHJpbnRzIGFnZ3JlZ2F0ZSBzdGF0
aXN0aWNzIChlLmcuIG1lZGlhbiwgbWVhbiwgZXRjLikgZm9yIGFsbCB0ZXN0cy4KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogTGlzdCBvZiBUZXN0UmVz
dWx0cyBmb3IgYWxsIHRlc3RzLgotICAgICAgICAiIiIKICAgICAgICAgdGltZXNfZm9yX2R1bXBf
cmVuZGVyX3RyZWUgPSBbdGVzdF9zdGF0cy50ZXN0X3J1bl90aW1lIGZvciB0ZXN0X3N0YXRzIGlu
IGluZGl2aWR1YWxfdGVzdF90aW1pbmdzXQotICAgICAgICBzZWxmLl9wcmludF9zdGF0aXN0aWNz
X2Zvcl90ZXN0X3RpbWluZ3MoIlBFUiBURVNUIFRJTUUgSU4gVEVTVFNIRUxMIChzZWNvbmRzKToi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXNf
Zm9yX2R1bXBfcmVuZGVyX3RyZWUpCi0KLSAgICBkZWYgX3ByaW50X2luZGl2aWR1YWxfdGVzdF90
aW1lcyhzZWxmLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeSk6Ci0gICAgICAgICIiIlByaW50cyB0aGUg
cnVuIHRpbWVzIGZvciBzbG93LCB0aW1lb3V0IGFuZCBjcmFzaCB0ZXN0cy4KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogTGlzdCBvZiBUZXN0U3RhdHMg
Zm9yIGFsbCB0ZXN0cy4KLSAgICAgICAgICByZXN1bHRfc3VtbWFyeTogc3VtbWFyeSBvYmplY3Qg
Zm9yIHRlc3QgcnVuCi0gICAgICAgICIiIgorICAgICAgICBzZWxmLl9wcmludF9zdGF0aXN0aWNz
X2Zvcl90ZXN0X3RpbWluZ3MoIlBFUiBURVNUIFRJTUUgSU4gVEVTVFNIRUxMIChzZWNvbmRzKToi
LCB0aW1lc19mb3JfZHVtcF9yZW5kZXJfdHJlZSkKKworICAgIGRlZiBfcHJpbnRfaW5kaXZpZHVh
bF90ZXN0X3RpbWVzKHNlbGYsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCByZXN1bHRfc3VtbWFy
eSk6CiAgICAgICAgICMgUmV2ZXJzZS1zb3J0IGJ5IHRoZSB0aW1lIHNwZW50IGluIER1bXBSZW5k
ZXJUcmVlLgotICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncy5zb3J0KGxhbWJkYSBhLCBi
OgotICAgICAgICAgICAgY21wKGIudGVzdF9ydW5fdGltZSwgYS50ZXN0X3J1bl90aW1lKSkKKyAg
ICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Muc29ydChsYW1iZGEgYSwgYjogY21wKGIudGVz
dF9ydW5fdGltZSwgYS50ZXN0X3J1bl90aW1lKSkKIAogICAgICAgICBudW1fcHJpbnRlZCA9IDAK
ICAgICAgICAgc2xvd190ZXN0cyA9IFtdCkBAIC0zNTIsMzggKzIxMCwyMiBAQCBjbGFzcyBQcmlu
dGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgbnVtX3ByaW50ZWQgPSBudW1fcHJpbnRlZCAr
IDEKICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Nsb3dfdGVzdHMuYXBwZW5kKHRlc3RfdHVw
bGUpCiAKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiIpCisgICAgICAgIF9sb2cuZGVidWco
IiIpCiAgICAgICAgIHNlbGYuX3ByaW50X3Rlc3RfbGlzdF90aW1pbmcoIiVzIHNsb3dlc3QgdGVz
dHMgdGhhdCBhcmUgbm90ICIKICAgICAgICAgICAgICJtYXJrZWQgYXMgU0xPVyBhbmQgZGlkIG5v
dCB0aW1lb3V0L2NyYXNoOiIgJSBOVU1fU0xPV19URVNUU19UT19MT0csIHVuZXhwZWN0ZWRfc2xv
d190ZXN0cykKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiIpCisgICAgICAgIF9sb2cuZGVi
dWcoIiIpCiAgICAgICAgIHNlbGYuX3ByaW50X3Rlc3RfbGlzdF90aW1pbmcoIlRlc3RzIG1hcmtl
ZCBhcyBTTE9XOiIsIHNsb3dfdGVzdHMpCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIiKQot
ICAgICAgICBzZWxmLl9wcmludF90ZXN0X2xpc3RfdGltaW5nKCJUZXN0cyB0aGF0IHRpbWVkIG91
dCBvciBjcmFzaGVkOiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZW91dF9vcl9jcmFzaF90ZXN0cykKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiIpCisgICAg
ICAgIF9sb2cuZGVidWcoIiIpCisgICAgICAgIHNlbGYuX3ByaW50X3Rlc3RfbGlzdF90aW1pbmco
IlRlc3RzIHRoYXQgdGltZWQgb3V0IG9yIGNyYXNoZWQ6IiwgdGltZW91dF9vcl9jcmFzaF90ZXN0
cykKKyAgICAgICAgX2xvZy5kZWJ1ZygiIikKIAogICAgIGRlZiBfcHJpbnRfdGVzdF9saXN0X3Rp
bWluZyhzZWxmLCB0aXRsZSwgdGVzdF9saXN0KToKLSAgICAgICAgIiIiUHJpbnQgdGltaW5nIGlu
Zm8gZm9yIGVhY2ggdGVzdC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIHRpdGxlOiBzZWN0
aW9uIGhlYWRpbmcKLSAgICAgICAgICB0ZXN0X2xpc3Q6IHRlc3RzIHRoYXQgZmFsbCBpbiB0aGlz
IHNlY3Rpb24KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ3Nsb3dlc3Qn
KToKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKHRpdGxl
KQorICAgICAgICBfbG9nLmRlYnVnKHRpdGxlKQogICAgICAgICBmb3IgdGVzdF90dXBsZSBpbiB0
ZXN0X2xpc3Q6CiAgICAgICAgICAgICB0ZXN0X3J1bl90aW1lID0gcm91bmQodGVzdF90dXBsZS50
ZXN0X3J1bl90aW1lLCAxKQotICAgICAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgJXMgdG9v
ayAlcyBzZWNvbmRzIiAlICh0ZXN0X3R1cGxlLnRlc3RfbmFtZSwgdGVzdF9ydW5fdGltZSkpCisg
ICAgICAgICAgICBfbG9nLmRlYnVnKCIgICVzIHRvb2sgJXMgc2Vjb25kcyIgJSAodGVzdF90dXBs
ZS50ZXN0X25hbWUsIHRlc3RfcnVuX3RpbWUpKQogCiAgICAgZGVmIF9wcmludF9kaXJlY3Rvcnlf
dGltaW5ncyhzZWxmLCBkaXJlY3RvcnlfdGVzdF90aW1pbmdzKToKLSAgICAgICAgIiIiUHJpbnQg
dGltaW5nIGluZm8gYnkgZGlyZWN0b3J5IGZvciBhbnkgZGlyZWN0b3JpZXMgdGhhdAotICAgICAg
ICB0YWtlID4gMTAgc2Vjb25kcyB0byBydW4uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICBk
aXJlY3RvcnlfdGVzdF90aW1pbmc6IHRpbWUgaW5mbyBmb3IgZWFjaCBkaXJlY3RvcnkKLSAgICAg
ICAgIiIiCiAgICAgICAgIHRpbWluZ3MgPSBbXQogICAgICAgICBmb3IgZGlyZWN0b3J5IGluIGRp
cmVjdG9yeV90ZXN0X3RpbWluZ3M6CiAgICAgICAgICAgICBudW1fdGVzdHMsIHRpbWVfZm9yX2Rp
cmVjdG9yeSA9IGRpcmVjdG9yeV90ZXN0X3RpbWluZ3NbZGlyZWN0b3J5XQpAQCAtMzkxLDI0ICsy
MzMsMTUgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG51bV90ZXN0cykpCiAgICAgICAgIHRpbWluZ3Muc29ydCgpCiAKLSAgICAgICAgc2VsZi5w
cmludF90aW1pbmcoIlRpbWUgdG8gcHJvY2VzcyBzbG93ZXN0IHN1YmRpcmVjdG9yaWVzOiIpCisg
ICAgICAgIF9sb2cuZGVidWcoIlRpbWUgdG8gcHJvY2VzcyBzbG93ZXN0IHN1YmRpcmVjdG9yaWVz
OiIpCiAgICAgICAgIG1pbl9zZWNvbmRzX3RvX3ByaW50ID0gMTAKICAgICAgICAgZm9yIHRpbWlu
ZyBpbiB0aW1pbmdzOgogICAgICAgICAgICAgaWYgdGltaW5nWzBdID4gbWluX3NlY29uZHNfdG9f
cHJpbnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5wcmludF90aW1pbmcoCi0gICAgICAgICAgICAg
ICAgICAgICIgICVzIHRvb2sgJXMgc2Vjb25kcyB0byBydW4gJXMgdGVzdHMuIiAlICh0aW1pbmdb
MV0sCi0gICAgICAgICAgICAgICAgICAgIHRpbWluZ1swXSwgdGltaW5nWzJdKSkKLSAgICAgICAg
c2VsZi5wcmludF90aW1pbmcoIiIpCisgICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygiICAlcyB0
b29rICVzIHNlY29uZHMgdG8gcnVuICVzIHRlc3RzLiIgJSAodGltaW5nWzFdLCB0aW1pbmdbMF0s
IHRpbWluZ1syXSkpCisgICAgICAgIF9sb2cuZGVidWcoIiIpCiAKICAgICBkZWYgX3ByaW50X3N0
YXRpc3RpY3NfZm9yX3Rlc3RfdGltaW5ncyhzZWxmLCB0aXRsZSwgdGltaW5ncyk6Ci0gICAgICAg
ICIiIlByaW50cyB0aGUgbWVkaWFuLCBtZWFuIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhl
IHZhbHVlcyBpbgotICAgICAgICB0aW1pbmdzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAg
dGl0bGU6IFRpdGxlIGZvciB0aGVzZSB0aW1pbmdzLgotICAgICAgICAgIHRpbWluZ3M6IEEgbGlz
dCBvZiBmbG9hdHMgcmVwcmVzZW50aW5nIHRpbWVzLgotICAgICAgICAiIiIKLSAgICAgICAgc2Vs
Zi5wcmludF90aW1pbmcodGl0bGUpCisgICAgICAgIF9sb2cuZGVidWcodGl0bGUpCiAgICAgICAg
IHRpbWluZ3Muc29ydCgpCiAKICAgICAgICAgbnVtX3Rlc3RzID0gbGVuKHRpbWluZ3MpCkBAIC00
MzAsMTkgKzI2MywxNCBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICBzdW1f
b2ZfZGV2aWF0aW9ucyA9IG1hdGgucG93KHRpbWluZyAtIG1lYW4sIDIpCiAKICAgICAgICAgc3Rk
X2RldmlhdGlvbiA9IG1hdGguc3FydChzdW1fb2ZfZGV2aWF0aW9ucyAvIG51bV90ZXN0cykKLSAg
ICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgTWVkaWFuOiAgICAgICAgICAlNi4zZiIgJSBtZWRp
YW4pCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIE1lYW46ICAgICAgICAgICAgJTYuM2Yi
ICUgbWVhbikKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgOTB0aCBwZXJjZW50aWxlOiAl
Ni4zZiIgJSBwZXJjZW50aWxlOTApCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIDk5dGgg
cGVyY2VudGlsZTogJTYuM2YiICUgcGVyY2VudGlsZTk5KQotICAgICAgICBzZWxmLnByaW50X3Rp
bWluZygiICBTdGFuZGFyZCBkZXY6ICAgICU2LjNmIiAlIHN0ZF9kZXZpYXRpb24pCi0gICAgICAg
IHNlbGYucHJpbnRfdGltaW5nKCIiKQorICAgICAgICBfbG9nLmRlYnVnKCIgIE1lZGlhbjogICAg
ICAgICAgJTYuM2YiICUgbWVkaWFuKQorICAgICAgICBfbG9nLmRlYnVnKCIgIE1lYW46ICAgICAg
ICAgICAgJTYuM2YiICUgbWVhbikKKyAgICAgICAgX2xvZy5kZWJ1ZygiICA5MHRoIHBlcmNlbnRp
bGU6ICU2LjNmIiAlIHBlcmNlbnRpbGU5MCkKKyAgICAgICAgX2xvZy5kZWJ1ZygiICA5OXRoIHBl
cmNlbnRpbGU6ICU2LjNmIiAlIHBlcmNlbnRpbGU5OSkKKyAgICAgICAgX2xvZy5kZWJ1ZygiICBT
dGFuZGFyZCBkZXY6ICAgICU2LjNmIiAlIHN0ZF9kZXZpYXRpb24pCisgICAgICAgIF9sb2cuZGVi
dWcoIiIpCiAKICAgICBkZWYgX3ByaW50X3Jlc3VsdF9zdW1tYXJ5KHNlbGYsIHJlc3VsdF9zdW1t
YXJ5KToKLSAgICAgICAgIiIiUHJpbnQgYSBzaG9ydCBzdW1tYXJ5IGFib3V0IGhvdyBtYW55IHRl
c3RzIHBhc3NlZC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBp
bmZvcm1hdGlvbiB0byBsb2cKLSAgICAgICAgIiIiCiAgICAgICAgIGZhaWxlZCA9IHJlc3VsdF9z
dW1tYXJ5LnRvdGFsX2ZhaWx1cmVzCiAgICAgICAgIHRvdGFsID0gcmVzdWx0X3N1bW1hcnkudG90
YWwgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9za2lwcwogICAgICAgICBwYXNzZWQgPSB0b3Rh
bCAtIGZhaWxlZCAtIHJlc3VsdF9zdW1tYXJ5LnJlbWFpbmluZwpAQCAtNDUwLDM0ICsyNzgsMjMg
QEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICBpZiB0b3RhbCA+IDA6CiAgICAgICAg
ICAgICBwY3RfcGFzc2VkID0gZmxvYXQocGFzc2VkKSAqIDEwMCAvIHRvdGFsCiAKLSAgICAgICAg
c2VsZi5wcmludF9hY3R1YWwoIiIpCi0gICAgICAgIHNlbGYucHJpbnRfYWN0dWFsKCI9PiBSZXN1
bHRzOiAlZC8lZCB0ZXN0cyBwYXNzZWQgKCUuMWYlJSkiICUKLSAgICAgICAgICAgICAgICAgICAg
IChwYXNzZWQsIHRvdGFsLCBwY3RfcGFzc2VkKSkKLSAgICAgICAgc2VsZi5wcmludF9hY3R1YWwo
IiIpCi0gICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1t
YXJ5LAotICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuTk9XLCAiVGVzdHMgdG8gYmUgZml4
ZWQiKQorICAgICAgICBzZWxmLl9wcmludF9hY3R1YWwoIiIpCisgICAgICAgIHNlbGYuX3ByaW50
X2FjdHVhbCgiPT4gUmVzdWx0czogJWQvJWQgdGVzdHMgcGFzc2VkICglLjFmJSUpIiAlIChwYXNz
ZWQsIHRvdGFsLCBwY3RfcGFzc2VkKSkKKyAgICAgICAgc2VsZi5fcHJpbnRfYWN0dWFsKCIiKQor
ICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFyeSwg
dGVzdF9leHBlY3RhdGlvbnMuTk9XLCAiVGVzdHMgdG8gYmUgZml4ZWQiKQogCi0gICAgICAgIHNl
bGYucHJpbnRfYWN0dWFsKCIiKQorICAgICAgICBzZWxmLl9wcmludF9hY3R1YWwoIiIpCiAgICAg
ICAgICMgRklYTUU6IFdlIHNob3VsZCBiZSBza2lwcGluZyBhbnl0aGluZyBtYXJrZWQgV09OVEZJ
WCwgc28gd2Ugc2hvdWxkbid0IGJvdGhlciBsb2dnaW5nIHRoZXNlIHN0YXRzLgotICAgICAgICBz
ZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFyeSwKLSAgICAgICAg
ICAgIHRlc3RfZXhwZWN0YXRpb25zLldPTlRGSVgsCisgICAgICAgIHNlbGYuX3ByaW50X3Jlc3Vs
dF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4cGVjdGF0aW9ucy5XT05URklY
LAogICAgICAgICAgICAgIlRlc3RzIHRoYXQgd2lsbCBvbmx5IGJlIGZpeGVkIGlmIHRoZXkgY3Jh
c2ggKFdPTlRGSVgpIikKLSAgICAgICAgc2VsZi5wcmludF9hY3R1YWwoIiIpCisgICAgICAgIHNl
bGYuX3ByaW50X2FjdHVhbCgiIikKIAotICAgIGRlZiBfcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50
cnkoc2VsZiwgcmVzdWx0X3N1bW1hcnksIHRpbWVsaW5lLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVhZGluZyk6Ci0gICAgICAgICIiIlByaW50IGEgc3VtbWFyeSBibG9j
ayBvZiByZXN1bHRzIGZvciBhIHBhcnRpY3VsYXIgdGltZWxpbmUgb2YgdGVzdC4KLQotICAgICAg
ICBBcmdzOgotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5IHRvIHByaW50IHJlc3Vs
dHMgZm9yCi0gICAgICAgICAgdGltZWxpbmU6IHRoZSB0aW1lbGluZSB0byBwcmludCByZXN1bHRz
IGZvciAoTk9XLCBXT05URklYLCBldGMuKQotICAgICAgICAgIGhlYWRpbmc6IGEgdGV4dHVhbCBk
ZXNjcmlwdGlvbiBvZiB0aGUgdGltZWxpbmUKLSAgICAgICAgIiIiCisgICAgZGVmIF9wcmludF9y
ZXN1bHRfc3VtbWFyeV9lbnRyeShzZWxmLCByZXN1bHRfc3VtbWFyeSwgdGltZWxpbmUsIGhlYWRp
bmcpOgogICAgICAgICB0b3RhbCA9IGxlbihyZXN1bHRfc3VtbWFyeS50ZXN0c19ieV90aW1lbGlu
ZVt0aW1lbGluZV0pCiAgICAgICAgIG5vdF9wYXNzaW5nID0gKHRvdGFsIC0KICAgICAgICAgICAg
bGVuKHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X2V4cGVjdGF0aW9uW3Rlc3RfZXhwZWN0YXRpb25z
LlBBU1NdICYKICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5l
W3RpbWVsaW5lXSkpCi0gICAgICAgIHNlbGYucHJpbnRfYWN0dWFsKCI9PiAlcyAoJWQpOiIgJSAo
aGVhZGluZywgbm90X3Bhc3NpbmcpKQorICAgICAgICBzZWxmLl9wcmludF9hY3R1YWwoIj0+ICVz
ICglZCk6IiAlIChoZWFkaW5nLCBub3RfcGFzc2luZykpCiAKICAgICAgICAgZm9yIHJlc3VsdCBp
biBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OX09SREVSOgogICAgICAgICAgICAgaWYgcmVz
dWx0IGluICh0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTLCB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQKToK
QEAgLTQ4Nyw0MSArMzA0LDIxIEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgICAg
IGRlc2MgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OX0RFU0NSSVBUSU9OU1tyZXN1bHRd
CiAgICAgICAgICAgICBpZiBub3RfcGFzc2luZyBhbmQgbGVuKHJlc3VsdHMpOgogICAgICAgICAg
ICAgICAgIHBjdCA9IGxlbihyZXN1bHRzKSAqIDEwMC4wIC8gbm90X3Bhc3NpbmcKLSAgICAgICAg
ICAgICAgICBzZWxmLnByaW50X2FjdHVhbCgiICAlNWQgJS0yNHMgKCU0LjFmJSUpIiAlCi0gICAg
ICAgICAgICAgICAgICAgIChsZW4ocmVzdWx0cyksIGRlc2NbbGVuKHJlc3VsdHMpICE9IDFdLCBw
Y3QpKQotCisgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfYWN0dWFsKCIgICU1ZCAlLTI0cyAo
JTQuMWYlJSkiICUgKGxlbihyZXN1bHRzKSwgZGVzY1tsZW4ocmVzdWx0cykgIT0gMV0sIHBjdCkp
CiAKLSAgICBkZWYgcHJpbnRfYWN0dWFsKHNlbGYsIG1zZyk6Ci0gICAgICAgIGlmIHNlbGYuZGlz
YWJsZWQoJ2FjdHVhbCcpOgotICAgICAgICAgICAgcmV0dXJuCisgICAgZGVmIF9wcmludF9hY3R1
YWwoc2VsZiwgbXNnKToKICAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtLndyaXRlKCIlc1xu
IiAlIG1zZykKIAotICAgIGRlZiBfcHJpbnRfY29uZmlnKHNlbGYsIG1zZyk6Ci0gICAgICAgIHNl
bGYud3JpdGUobXNnLCAnY29uZmlnJykKLQotICAgIGRlZiBfcHJpbnRfZXhwZWN0ZWQoc2VsZiwg
bXNnKToKLSAgICAgICAgc2VsZi53cml0ZShtc2csICdleHBlY3RlZCcpCi0KLSAgICBkZWYgcHJp
bnRfdGltaW5nKHNlbGYsIG1zZyk6Ci0gICAgICAgIHNlbGYud3JpdGUobXNnLCAndGltaW5nJykK
LQotICAgIGRlZiBwcmludF9vbmVfbGluZV9zdW1tYXJ5KHNlbGYsIHRvdGFsLCBleHBlY3RlZCwg
dW5leHBlY3RlZCk6Ci0gICAgICAgICIiIlByaW50IGEgb25lLWxpbmUgc3VtbWFyeSBvZiB0aGUg
dGVzdCBydW4gdG8gc3Rkb3V0LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdG90YWw6IHRv
dGFsIG51bWJlciBvZiB0ZXN0cyBydW4KLSAgICAgICAgICBleHBlY3RlZDogbnVtYmVyIG9mIGV4
cGVjdGVkIHJlc3VsdHMKLSAgICAgICAgICB1bmV4cGVjdGVkOiBudW1iZXIgb2YgdW5leHBlY3Rl
ZCByZXN1bHRzCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLmRpc2FibGVkKCdvbmUtbGlu
ZS1zdW1tYXJ5Jyk6Ci0gICAgICAgICAgICByZXR1cm4KLQorICAgIGRlZiBfcHJpbnRfb25lX2xp
bmVfc3VtbWFyeShzZWxmLCB0b3RhbCwgZXhwZWN0ZWQsIHVuZXhwZWN0ZWQpOgogICAgICAgICBp
bmNvbXBsZXRlID0gdG90YWwgLSBleHBlY3RlZCAtIHVuZXhwZWN0ZWQKICAgICAgICAgaW5jb21w
bGV0ZV9zdHIgPSAnJwogICAgICAgICBpZiBpbmNvbXBsZXRlOgogICAgICAgICAgICAgc2VsZi5f
d3JpdGUoIiIpCiAgICAgICAgICAgICBpbmNvbXBsZXRlX3N0ciA9ICIgKCVkIGRpZG4ndCBydW4p
IiAlIGluY29tcGxldGUKIAorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2Ugb3Igc2Vs
Zi5fb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZzoKKyAgICAgICAgICAgIHNlbGYuX3dyaXRlKCIi
KQorCiAgICAgICAgIGlmIHVuZXhwZWN0ZWQgPT0gMDoKICAgICAgICAgICAgIGlmIGV4cGVjdGVk
ID09IHRvdGFsOgogICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVkID4gMToKQEAgLTUzMiw0MSAr
MzI5LDE5IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBzZWxmLl93
cml0ZSgiJXMgcmFuIGFzIGV4cGVjdGVkJXMuIiAlIChncmFtbWFyLnBsdXJhbGl6ZSgndGVzdCcs
IGV4cGVjdGVkKSwgaW5jb21wbGV0ZV9zdHIpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAg
c2VsZi5fd3JpdGUoIiVzIHJhbiBhcyBleHBlY3RlZCwgJWQgZGlkbid0JXM6IiAlIChncmFtbWFy
LnBsdXJhbGl6ZSgndGVzdCcsIGV4cGVjdGVkKSwgdW5leHBlY3RlZCwgaW5jb21wbGV0ZV9zdHIp
KQotICAgICAgICBzZWxmLl93cml0ZSgiIikKIAogICAgIGRlZiBwcmludF9maW5pc2hlZF90ZXN0
KHNlbGYsIHJlc3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIsIGdvdF9zdHIsIHJlc3VsdF9zdW1tYXJ5
LCByZXRyeWluZywgdGVzdF9maWxlc19saXN0KToKICAgICAgICAgc2VsZi5wcmludF90ZXN0X3Jl
c3VsdChyZXN1bHQsIGV4cGVjdGVkLCBleHBfc3RyLCBnb3Rfc3RyKQogICAgICAgICBzZWxmLnBy
aW50X3Byb2dyZXNzKHJlc3VsdF9zdW1tYXJ5LCByZXRyeWluZywgdGVzdF9maWxlc19saXN0KQog
CiAgICAgZGVmIHByaW50X3Rlc3RfcmVzdWx0KHNlbGYsIHJlc3VsdCwgZXhwZWN0ZWQsIGV4cF9z
dHIsIGdvdF9zdHIpOgotICAgICAgICAiIiJQcmludCB0aGUgcmVzdWx0IG9mIHRoZSB0ZXN0IGFz
IGRldGVybWluZWQgYnkgLS1wcmludC4KLQotICAgICAgICBUaGlzIHJvdXRpbmUgaXMgdXNlZCB0
byBwcmludCB0aGUgZGV0YWlscyBvZiBlYWNoIHRlc3QgYXMgaXQgY29tcGxldGVzLgotCi0gICAg
ICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXN1bHQgICAtIFRoZSBhY3R1YWwgVGVzdFJlc3VsdCBv
YmplY3QKLSAgICAgICAgICAgIGV4cGVjdGVkIC0gV2hldGhlciB0aGUgcmVzdWx0IHdlIGdvdCB3
YXMgYW4gZXhwZWN0ZWQgcmVzdWx0Ci0gICAgICAgICAgICBleHBfc3RyICAtIFdoYXQgd2UgZXhw
ZWN0ZWQgdG8gZ2V0ICh1c2VkIGZvciB0cmFjaW5nKQotICAgICAgICAgICAgZ290X3N0ciAgLSBX
aGF0IHdlIGFjdHVhbGx5IGdvdCAodXNlZCBmb3IgdHJhY2luZykKLQotICAgICAgICBOb3RlIHRo
YXQgd2UgbmVlZCBhbGwgb2YgdGhlc2UgYXJndW1lbnRzIGV2ZW4gdGhvdWdoIHRoZXkgc2VlbQot
ICAgICAgICBzb21ld2hhdCByZWR1bmRhbnQsIGluIG9yZGVyIHRvIGtlZXAgdGhpcyByb3V0aW5l
IGZyb20gaGF2aW5nIHRvCi0gICAgICAgIGtub3duIGFueXRoaW5nIGFib3V0IHRoZSBzZXQgb2Yg
ZXhwZWN0YXRpb25zLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgKHNlbGYuZW5hYmxlZCgndHJh
Y2UtZXZlcnl0aGluZycpIG9yCi0gICAgICAgICAgICBzZWxmLmVuYWJsZWQoJ3RyYWNlLXVuZXhw
ZWN0ZWQnKSBhbmQgbm90IGV4cGVjdGVkKToKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kZXRh
aWxzOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF90cmFjZShyZXN1bHQsIGV4cF9zdHIs
IGdvdF9zdHIpCi0gICAgICAgIGVsaWYgbm90IGV4cGVjdGVkIGFuZCBzZWxmLmVuYWJsZWQoJ3Vu
ZXhwZWN0ZWQnKToKLSAgICAgICAgICAgIHNlbGYuX3ByaW50X3VuZXhwZWN0ZWRfdGVzdF9yZXN1
bHQocmVzdWx0KQorICAgICAgICBlbGlmIChzZWxmLl9vcHRpb25zLnZlcmJvc2UgYW5kIG5vdCBz
ZWxmLl9vcHRpb25zLmRlYnVnX3J3dF9sb2dnaW5nKSBvciBub3QgZXhwZWN0ZWQ6CisgICAgICAg
ICAgICBkZXNjID0gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9ERVNDUklQVElPTlNbcmVz
dWx0LnR5cGVdCisgICAgICAgICAgICBzZWxmLl93cml0ZSgiJXMgJXMlcyVzIiAlIChyZXN1bHQu
dGVzdF9uYW1lLCBkZXNjWzFdLCAiIiBpZiBleHBlY3RlZCBlbHNlICIgdW5leHBlY3RlZGx5Iiwg
ZGVzY1syXSkpCiAKICAgICBkZWYgX3ByaW50X3Rlc3RfdHJhY2Uoc2VsZiwgcmVzdWx0LCBleHBf
c3RyLCBnb3Rfc3RyKToKLSAgICAgICAgIiIiUHJpbnQgZGV0YWlsZWQgcmVzdWx0cyBvZiBhIHRl
c3QgKHRyaWdnZXJlZCBieSAtLXByaW50IHRyYWNlLSopLgotICAgICAgICBGb3IgZWFjaCB0ZXN0
LCBwcmludDoKLSAgICAgICAgICAgLSBsb2NhdGlvbiBvZiB0aGUgZXhwZWN0ZWQgYmFzZWxpbmVz
Ci0gICAgICAgICAgIC0gZXhwZWN0ZWQgcmVzdWx0cwotICAgICAgICAgICAtIGFjdHVhbCByZXN1
bHQKLSAgICAgICAgICAgLSB0aW1pbmcgaW5mbwotICAgICAgICAiIiIKICAgICAgICAgdGVzdF9u
YW1lID0gcmVzdWx0LnRlc3RfbmFtZQogICAgICAgICBzZWxmLl93cml0ZSgndHJhY2U6ICVzJyAl
IHRlc3RfbmFtZSkKIApAQCAtNTkyLDE2ICszNjcsNyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6
CiAgICAgICAgICAgICByZWxwYXRoID0gJzxub25lPicKICAgICAgICAgc2VsZi5fd3JpdGUoJyAg
JXM6ICVzJyAlIChleHRlbnNpb25bMTpdLCByZWxwYXRoKSkKIAotICAgIGRlZiBfcHJpbnRfdW5l
eHBlY3RlZF90ZXN0X3Jlc3VsdChzZWxmLCByZXN1bHQpOgotICAgICAgICAiIiJQcmludHMgb25l
IHVuZXhwZWN0ZWQgdGVzdCByZXN1bHQgbGluZS4iIiIKLSAgICAgICAgZGVzYyA9IFRlc3RFeHBl
Y3RhdGlvbnMuRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TW3Jlc3VsdC50eXBlXVswXQotICAgICAg
ICBzZWxmLndyaXRlKCIgICVzIC0+IHVuZXhwZWN0ZWQgJXMiICUgKHJlc3VsdC50ZXN0X25hbWUs
IGRlc2MpLCAidW5leHBlY3RlZCIpCi0KICAgICBkZWYgcHJpbnRfcHJvZ3Jlc3Moc2VsZiwgcmVz
dWx0X3N1bW1hcnksIHJldHJ5aW5nLCB0ZXN0X2xpc3QpOgotICAgICAgICAiIiJQcmludCBwcm9n
cmVzcyB0aHJvdWdoIHRoZSB0ZXN0cyBhcyBkZXRlcm1pbmVkIGJ5IC0tcHJpbnQuIiIiCi0gICAg
ICAgIGlmIHNlbGYuZGlzYWJsZWQoJ29uZS1saW5lLXByb2dyZXNzJyk6Ci0gICAgICAgICAgICBy
ZXR1cm4KLQogICAgICAgICBpZiByZXN1bHRfc3VtbWFyeS5yZW1haW5pbmcgPT0gMDoKICAgICAg
ICAgICAgIHNlbGYuX21ldGVyLndyaXRlX3VwZGF0ZSgnJykKICAgICAgICAgICAgIHJldHVybgpA
QCAtNjE2LDExICszODIsOCBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICAo
YWN0aW9uLCBwZXJjZW50X2NvbXBsZXRlLCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCwKICAgICAg
ICAgICAgICByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkLCByZXN1bHRfc3VtbWFyeS5yZW1haW5p
bmcpKQogCi0gICAgZGVmIHByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyhzZWxmLCB1bmV4cGVjdGVk
X3Jlc3VsdHMpOgotICAgICAgICAiIiJQcmludHMgYSBsaXN0IG9mIHRoZSB1bmV4cGVjdGVkIHJl
c3VsdHMgdG8gdGhlIGJ1aWxkYm90IHN0cmVhbS4iIiIKLSAgICAgICAgaWYgc2VsZi5kaXNhYmxl
ZCgndW5leHBlY3RlZC1yZXN1bHRzJyk6Ci0gICAgICAgICAgICByZXR1cm4KLQorICAgIGRlZiBf
cHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHNlbGYsIHVuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAg
ICAgICMgcHJpbnRzIHRvIHRoZSBidWlsZGJvdCBzdHJlYW0uCiAgICAgICAgIHBhc3NlcyA9IHt9
CiAgICAgICAgIGZsYWt5ID0ge30KICAgICAgICAgcmVncmVzc2lvbnMgPSB7fQpAQCAtNjg5LDI0
ICs0NTIsMjAgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TW2tleS5sb3dlcigpXQogICAgICAgICAg
ICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgKICAgICAgICAgICAgICAgICAgICAg
IlJlZ3Jlc3Npb25zOiBVbmV4cGVjdGVkICVzIDogKCVkKVxuIiAlICgKLSAgICAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb25zW3Jlc3VsdF1bMV0sIGxlbih0ZXN0cykpKQorICAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbnNbcmVzdWx0XVswXSwgbGVuKHRlc3RzKSkpCiAgICAgICAgICAg
ICAgICAgdGVzdHMuc29ydCgpCiAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6CiAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgiICAlcyA9ICVz
XG4iICUgKHRlc3QsIGtleSkpCiAgICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFt
LndyaXRlKCJcbiIpCiAgICAgICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUoIlxu
IikKIAotICAgICAgICBpZiBsZW4odW5leHBlY3RlZF9yZXN1bHRzWyd0ZXN0cyddKSBhbmQgc2Vs
Zi5fb3B0aW9ucy52ZXJib3NlOgorICAgICAgICBpZiBsZW4odW5leHBlY3RlZF9yZXN1bHRzWyd0
ZXN0cyddKSBhbmQgKHNlbGYuX29wdGlvbnMudmVyYm9zZSBvciBzZWxmLl9vcHRpb25zLmRlYnVn
X3J3dF9sb2dnaW5nKToKICAgICAgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgi
JXNcbiIgJSAoIi0iICogNzgpKQogCiAgICAgZGVmIHdyaXRlX3VwZGF0ZShzZWxmLCBtc2cpOgot
ICAgICAgICBpZiBzZWxmLmRpc2FibGVkKCd1cGRhdGVzJyk6Ci0gICAgICAgICAgICByZXR1cm4K
ICAgICAgICAgc2VsZi5fbWV0ZXIud3JpdGVfdXBkYXRlKG1zZykKIAotICAgIGRlZiB3cml0ZShz
ZWxmLCBtc2csIG9wdGlvbj0ibWlzYyIpOgotICAgICAgICBpZiBzZWxmLmRpc2FibGVkKG9wdGlv
bik6Ci0gICAgICAgICAgICByZXR1cm4KKyAgICBkZWYgd3JpdGUoc2VsZiwgbXNnKToKICAgICAg
ICAgc2VsZi5fd3JpdGUobXNnKQogCiAgICAgZGVmIHdyaXRlbG4oc2VsZiwgKmFyZ3MsICoqa3dh
cmdzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Zp
ZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkKaW5kZXggNzUwNWQ1YzA1YTNmMmNmYzY0
OTlhYjQwYThkZGQ4NjhiZTcyYjc1OS4uNTUxOWM2M2JkMmVkMWQ1NDhhNzQzOWRiNDYxZDI0MWNh
MjA5N2ZlNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
dmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkKQEAgLTMxLDEyICszMSwxMCBA
QAogCiBpbXBvcnQgb3B0cGFyc2UKIGltcG9ydCBTdHJpbmdJTwotaW1wb3J0IHRpbWUKIGltcG9y
dCB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tI
b3N0CiAKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgbG9ndGVzdGluZwogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMgaW1wb3J0IHBvcnQKIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLmNvbnRyb2xsZXJzIGltcG9ydCBtYW5hZ2VyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5tb2RlbHMgaW1wb3J0IHJlc3VsdF9zdW1tYXJ5CkBAIC01Miw0MyArNTAsMTAgQEAgZGVm
IGdldF9vcHRpb25zKGFyZ3MpOgogICAgIHJldHVybiBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3Mo
YXJncykKIAogCi1jbGFzcyBUZXN0VXRpbGl0eUZ1bmN0aW9ucyh1bml0dGVzdC5UZXN0Q2FzZSk6
Ci0gICAgZGVmIHRlc3RfcHJpbnRfb3B0aW9ucyhzZWxmKToKLSAgICAgICAgb3B0aW9ucywgYXJn
cyA9IGdldF9vcHRpb25zKFtdKQotICAgICAgICBzZWxmLmFzc2VydFRydWUob3B0aW9ucyBpcyBu
b3QgTm9uZSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3ByaW50X29wdGlvbnMoc2VsZik6Ci0gICAg
ICAgIGRlZiB0ZXN0X3N3aXRjaGVzKGFyZ3MsIGV4cGVjdGVkX3N3aXRjaGVzX3N0ciwgdmVyYm9z
ZT1GYWxzZSk6Ci0gICAgICAgICAgICBvcHRpb25zLCBhcmdzID0gZ2V0X29wdGlvbnMoYXJncykK
LSAgICAgICAgICAgIGlmIGV4cGVjdGVkX3N3aXRjaGVzX3N0cjoKLSAgICAgICAgICAgICAgICBl
eHBlY3RlZF9zd2l0Y2hlcyA9IHNldChleHBlY3RlZF9zd2l0Y2hlc19zdHIuc3BsaXQoJywnKSkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3dpdGNoZXMgPSBz
ZXQoKQotICAgICAgICAgICAgc3dpdGNoZXMgPSBwcmludGluZy5wYXJzZV9wcmludF9vcHRpb25z
KG9wdGlvbnMucHJpbnRfb3B0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2ZXJib3NlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChleHBlY3RlZF9zd2l0Y2hlcywgc3dpdGNoZXMpCi0KLSAgICAgICAgIyB0ZXN0IHRoYXQgd2Ug
ZGVmYXVsdCB0byB0aGUgZGVmYXVsdCBzZXQgb2Ygc3dpdGNoZXMKLSAgICAgICAgdGVzdF9zd2l0
Y2hlcyhbXSwgcHJpbnRpbmcuUFJJTlRfREVGQVVMVCkKLQotICAgICAgICAjIHRlc3QgdGhhdCB2
ZXJib3NlIGRlZmF1bHRzIHRvIGV2ZXJ5dGhpbmcKLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwg
cHJpbnRpbmcuUFJJTlRfRVZFUllUSElORywgdmVyYm9zZT1UcnVlKQotCi0gICAgICAgICMgdGVz
dCB0aGF0IC0tcHJpbnQgZGVmYXVsdCBkb2VzIHdoYXQgaXQncyBzdXBwb3NlZCB0bwotICAgICAg
ICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdkZWZhdWx0J10sIHByaW50aW5nLlBSSU5UX0RF
RkFVTFQpCi0KLSAgICAgICAgIyB0ZXN0IHRoYXQgLS1wcmludCBub3RoaW5nIGRvZXMgd2hhdCBp
dCdzIHN1cHBvc2VkIHRvCi0gICAgICAgIHRlc3Rfc3dpdGNoZXMoWyctLXByaW50JywgJ25vdGhp
bmcnXSwgTm9uZSkKLQotICAgICAgICAjIHRlc3QgdGhhdCAtLXByaW50IGV2ZXJ5dGhpbmcgZG9l
cyB3aGF0IGl0J3Mgc3VwcG9zZWQgdG8KLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbJy0tcHJpbnQn
LCAnZXZlcnl0aGluZyddLCBwcmludGluZy5QUklOVF9FVkVSWVRISU5HKQotCi0gICAgICAgICMg
dGhpcyB0ZXN0cyB0aGF0ICctLXByaW50IFgnIG92ZXJyaWRlcyAnLS12ZXJib3NlJwotICAgICAg
ICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdhY3R1YWwnXSwgJ2FjdHVhbCcsIHZlcmJvc2U9
VHJ1ZSkKLQotCi0KIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLl9wb3J0ID0gTm9uZQorCiAgICAgZGVmIGFz
c2VydEVtcHR5KHNlbGYsIHN0cmVhbSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc3RyZWFt
LmdldHZhbHVlKCkpCiAKQEAgLTEwOSw4ICs3NCw2IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIG9wdGlvbnMsIGFyZ3MgPSBvcHRpb25fcGFyc2VyLnBh
cnNlX2FyZ3MoYXJncykKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgc2VsZi5f
cG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldCgndGVzdCcsIG9wdGlvbnMpCi0gICAgICAgIG5w
cm9jID0gMgotCiAgICAgICAgIHJlZ3VsYXJfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQog
ICAgICAgICByZWd1bGFyX291dHB1dC5pc2F0dHkgPSBsYW1iZGE6IHR0eQogICAgICAgICBidWls
ZGJvdF9vdXRwdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCkBAIC0xMzMsMjYzICs5NiwxNCBAQCBj
bGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBycyA9IHJlc3Vs
dF9zdW1tYXJ5LlJlc3VsdFN1bW1hcnkoZXhwZWN0YXRpb25zLCB0ZXN0X25hbWVzLCAxLCBzZXQo
KSkKICAgICAgICAgcmV0dXJuIHRlc3RfbmFtZXMsIHJzLCBleHBlY3RhdGlvbnMKIAotICAgIGRl
ZiB0ZXN0X2hlbHBfcHJpbnRlcihzZWxmKToKLSAgICAgICAgIyBIZXJlIGFuZCBiZWxvdyB3ZSds
bCBjYWxsIHRoZSAicmVndWxhciIgcHJpbnRlciBlcnIgYW5kIHRoZQotICAgICAgICAjIGJ1aWxk
Ym90IHByaW50ZXIgb3V0OyB0aGlzIGNvcnJlc3BvbmRzIHRvIGhvdyB0aGluZ3MgcnVuIG9uIHRo
ZQotICAgICAgICAjIGJvdHMgd2l0aCBzdGRlcnIgYW5kIHN0ZG91dC4KLSAgICAgICAgcHJpbnRl
ciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKLQotICAgICAgICAjIFRoaXMgcm91dGlu
ZSBzaG91bGQgcHJpbnQgc29tZXRoaW5nIHRvIHN0ZG91dC4gdGVzdGluZyB3aGF0IGl0IGlzCi0g
ICAgICAgICMgaXMga2luZCBvZiBwb2ludGxlc3MuCi0gICAgICAgIHByaW50ZXIuaGVscF9wcmlu
dGluZygpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQotICAgICAgICBzZWxmLmFz
c2VydEVtcHR5KG91dCkKLQotICAgIGRlZiBkb19zd2l0Y2hfdGVzdHMoc2VsZiwgbWV0aG9kX25h
bWUsIHN3aXRjaCwgdG9fYnVpbGRib3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
PSdoZWxsbycsIGV4cF9lcnI9Tm9uZSwgZXhwX2JvdD1Ob25lKToKLSAgICAgICAgZGVmIGRvX2hl
bHBlcihtZXRob2RfbmFtZSwgc3dpdGNoLCBtZXNzYWdlLCBleHBfZXJyLCBleHBfYm90KToKLSAg
ICAgICAgICAgIHByaW50ZXIsIGVyciwgYm90ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQn
LCBzd2l0Y2hdLCB0dHk9VHJ1ZSkKLSAgICAgICAgICAgIGdldGF0dHIocHJpbnRlciwgbWV0aG9k
X25hbWUpKG1lc3NhZ2UpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVyci5idWZsaXN0
LCBleHBfZXJyKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChib3QuYnVmbGlzdCwgZXhw
X2JvdCkKLQotICAgICAgICBpZiB0b19idWlsZGJvdDoKLSAgICAgICAgICAgIGlmIGV4cF9lcnIg
aXMgTm9uZToKLSAgICAgICAgICAgICAgICBleHBfZXJyID0gW10KLSAgICAgICAgICAgIGlmIGV4
cF9ib3QgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBleHBfYm90ID0gW21lc3NhZ2UgKyAiXG4i
XQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgZXhwX2VyciBpcyBOb25lOgotICAgICAg
ICAgICAgICAgIGV4cF9lcnIgPSBbbWVzc2FnZSArICJcbiJdCi0gICAgICAgICAgICBpZiBleHBf
Ym90IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgZXhwX2JvdCA9IFtdCi0gICAgICAgIGRvX2hl
bHBlcihtZXRob2RfbmFtZSwgJ25vdGhpbmcnLCAnaGVsbG8nLCBbXSwgW10pCi0gICAgICAgIGRv
X2hlbHBlcihtZXRob2RfbmFtZSwgc3dpdGNoLCAnaGVsbG8nLCBleHBfZXJyLCBleHBfYm90KQot
ICAgICAgICBkb19oZWxwZXIobWV0aG9kX25hbWUsICdldmVyeXRoaW5nJywgJ2hlbGxvJywgZXhw
X2VyciwgZXhwX2JvdCkKLQogICAgIGRlZiB0ZXN0X2NvbmZpZ3VyZV9hbmRfY2xlYW51cChzZWxm
KToKICAgICAgICAgIyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBjYWxsaW5nIGNsZWFudXAgcmVw
ZWF0ZWRseSBhbmQgZGVsZXRpbmcKICAgICAgICAgIyB0aGUgb2JqZWN0IGlzIHNhZmUuCi0gICAg
ICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnZXZl
cnl0aGluZyddKQorICAgICAgICBwcmludGVyLCBfLCBfID0gc2VsZi5nZXRfcHJpbnRlcigpCiAg
ICAgICAgIHByaW50ZXIuY2xlYW51cCgpCiAgICAgICAgIHByaW50ZXIuY2xlYW51cCgpCiAgICAg
ICAgIHByaW50ZXIgPSBOb25lCiAKLSAgICBkZWYgdGVzdF9wcmludF9hY3R1YWwoc2VsZik6Ci0g
ICAgICAgICMgQWN0dWFsIHJlc3VsdHMgbmVlZCB0byBiZSBsb2dnZWQgdG8gdGhlIGJ1aWxkYm90
J3Mgc3RyZWFtLgotICAgICAgICBzZWxmLmRvX3N3aXRjaF90ZXN0cygncHJpbnRfYWN0dWFsJywg
J2FjdHVhbCcsIHRvX2J1aWxkYm90PVRydWUpCi0KLSAgICBkZWYgdGVzdF9wcmludF9hY3R1YWxf
YnVpbGRib3Qoc2VsZik6Ci0gICAgICAgICMgRklYTUU6IFRlc3QgdGhhdCB0aGUgZm9ybWF0IG9m
IHRoZSBhY3R1YWwgcmVzdWx0cyBtYXRjaGVzIHdoYXQgdGhlCi0gICAgICAgICMgYnVpbGRib3Qg
aXMgZXhwZWN0aW5nLgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgdGVzdF9mYWxsYmFja19wYXRo
X2luX2NvbmZpZyhzZWxmKToKLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9w
cmludGVyKFsnLS1wcmludCcsICdldmVyeXRoaW5nJ10pCi0gICAgICAgICMgRklYTUU6IGl0J3Mg
bGFtZSB0aGF0IGkgaGF2ZSB0byBzZXQgdGhlc2Ugb3B0aW9ucyBkaXJlY3RseS4KLSAgICAgICAg
cHJpbnRlci5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSA9ICcvdG1wJwotICAgICAgICBwcmlu
dGVyLl9vcHRpb25zLnBpeGVsX3Rlc3RzID0gVHJ1ZQotICAgICAgICBwcmludGVyLl9vcHRpb25z
Lm5ld19iYXNlbGluZSA9IFRydWUKLSAgICAgICAgcHJpbnRlci5fb3B0aW9ucy50aW1lX291dF9t
cyA9IDYwMDAKLSAgICAgICAgcHJpbnRlci5fb3B0aW9ucy5zbG93X3RpbWVfb3V0X21zID0gMTIw
MDAKLSAgICAgICAgcHJpbnRlci5wcmludF9jb25maWcoKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUoJ0Jhc2VsaW5lIHNlYXJjaCBwYXRoOiB0ZXN0LW1hYy1sZW9wYXJkIC0+IHRlc3QtbWFjLXNu
b3dsZW9wYXJkIC0+IGdlbmVyaWMnIGluIGVyci5nZXR2YWx1ZSgpKQotCi0gICAgZGVmIHRlc3Rf
cHJpbnRfY29uZmlnKHNlbGYpOgotICAgICAgICBzZWxmLmRvX3N3aXRjaF90ZXN0cygnX3ByaW50
X2NvbmZpZycsICdjb25maWcnLCB0b19idWlsZGJvdD1GYWxzZSkKLQotICAgIGRlZiB0ZXN0X3By
aW50X2V4cGVjdGVkKHNlbGYpOgotICAgICAgICBzZWxmLmRvX3N3aXRjaF90ZXN0cygnX3ByaW50
X2V4cGVjdGVkJywgJ2V4cGVjdGVkJywgdG9fYnVpbGRib3Q9RmFsc2UpCi0KLSAgICBkZWYgdGVz
dF9wcmludF90aW1pbmcoc2VsZik6Ci0gICAgICAgIHNlbGYuZG9fc3dpdGNoX3Rlc3RzKCdwcmlu
dF90aW1pbmcnLCAndGltaW5nJywgdG9fYnVpbGRib3Q9RmFsc2UpCi0KLSAgICBkZWYgdGVzdF93
cml0ZV91cGRhdGUoc2VsZik6Ci0gICAgICAgICMgTm90ZSB0aGF0IHRoZXJlIHNob3VsZG4ndCBi
ZSBhIGNhcnJpYWdlIHJldHVybiBoZXJlOyB1cGRhdGVzKCkKLSAgICAgICAgIyBhcmUgbWVhbnQg
dG8gYmUgb3ZlcndyaXR0ZW4uCi0gICAgICAgIHNlbGYuZG9fc3dpdGNoX3Rlc3RzKCd3cml0ZV91
cGRhdGUnLCAndXBkYXRlcycsIHRvX2J1aWxkYm90PUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlPSdoZWxsbycsIGV4cF9lcnI9WydoZWxsbyddKQotCi0gICAgZGVm
IHRlc3RfcHJpbnRfb25lX2xpbmVfc3VtbWFyeShzZWxmKToKLSAgICAgICAgcHJpbnRlciwgZXJy
LCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdub3RoaW5nJ10pCi0gICAgICAg
IHByaW50ZXIucHJpbnRfb25lX2xpbmVfc3VtbWFyeSgxLCAxLCAwKQotICAgICAgICBzZWxmLmFz
c2VydEVtcHR5KGVycikKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3By
aW50ZXIoWyctLXByaW50JywgJ29uZS1saW5lLXN1bW1hcnknXSkKLSAgICAgICAgcHJpbnRlci5w
cmludF9vbmVfbGluZV9zdW1tYXJ5KDEsIDEsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRl
bihlcnIsIFsiVGhlIHRlc3QgcmFuIGFzIGV4cGVjdGVkLlxuIiwgIlxuIl0pCi0KLSAgICAgICAg
cHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdldmVyeXRo
aW5nJ10pCi0gICAgICAgIHByaW50ZXIucHJpbnRfb25lX2xpbmVfc3VtbWFyeSgxLCAxLCAwKQot
ICAgICAgICBzZWxmLmFzc2VydFdyaXR0ZW4oZXJyLCBbIlRoZSB0ZXN0IHJhbiBhcyBleHBlY3Rl
ZC5cbiIsICJcbiJdKQotCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJp
bnRlcihbJy0tcHJpbnQnLCAnZXZlcnl0aGluZyddKQotICAgICAgICBwcmludGVyLnByaW50X29u
ZV9saW5lX3N1bW1hcnkoMiwgMSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwg
WyIxIHRlc3QgcmFuIGFzIGV4cGVjdGVkLCAxIGRpZG4ndDpcbiIsICJcbiJdKQotCi0gICAgICAg
IHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnZXZlcnl0
aGluZyddKQotICAgICAgICBwcmludGVyLnByaW50X29uZV9saW5lX3N1bW1hcnkoMywgMiwgMSkK
LSAgICAgICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWyIyIHRlc3RzIHJhbiBhcyBleHBlY3Rl
ZCwgMSBkaWRuJ3Q6XG4iLCAiXG4iXSkKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNl
bGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ2V2ZXJ5dGhpbmcnXSkKLSAgICAgICAgcHJpbnRl
ci5wcmludF9vbmVfbGluZV9zdW1tYXJ5KDMsIDIsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0V3Jp
dHRlbihlcnIsIFsnXG4nLCAiMiB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQgKDEgZGlkbid0IHJ1biku
XG4iLCAnXG4nXSkKLQotCi0gICAgZGVmIHRlc3RfcHJpbnRfdGVzdF9yZXN1bHQoc2VsZik6Ci0g
ICAgICAgICMgTm90ZSBoZXJlIHRoYXQgd2UgZG9uJ3QgdXNlIG1lYW5pbmdmdWwgZXhwX3N0ciBh
bmQgZ290X3N0ciB2YWx1ZXM7Ci0gICAgICAgICMgdGhlIGFjdHVhbCBjb250ZW50cyBvZiB0aGUg
c3RyaW5nIGFyZSB0cmVhdGVkIG9wYXF1ZWx5IGJ5Ci0gICAgICAgICMgcHJpbnRfdGVzdF9yZXN1
bHQoKSB3aGVuIHRyYWNpbmcsIGFuZCB1c3VhbGx5IHdlIGRvbid0IHdhbnQKLSAgICAgICAgIyB0
byB0ZXN0IHdoYXQgZXhhY3RseSBpcyBwcmludGVkLCBqdXN0IHRoYXQgc29tZXRoaW5nCi0gICAg
ICAgICMgd2FzIHByaW50ZWQgKG9yIHRoYXQgbm90aGluZyB3YXMgcHJpbnRlZCkuCi0gICAgICAg
ICMKLSAgICAgICAgIyBGSVhNRTogdGhpcyBpcyBhY3R1YWxseSBzb21lIGdvb2Z5IGxheWVyaW5n
OyBpdCB3b3VsZCBiZSBuaWNlCi0gICAgICAgICMgd2UgY291bGQgcmVmYWN0b3IgaXQgc28gdGhh
dCB0aGUgYXJncyB3ZXJlbid0IHJlZHVuZGFudC4gTWF5YmUKLSAgICAgICAgIyB0aGUgVGVzdFJl
c3VsdCBzaG91bGQgY29udGFpbiB3aGF0IHdhcyBleHBlY3RlZCwgYW5kIHRoZQotICAgICAgICAj
IHN0cmluZ3MgY291bGQgYmUgZGVyaXZlZCBmcm9tIHRoZSBUZXN0UmVzdWx0PwotICAgICAgICBw
cmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ25vdGhpbmcn
XSkKLSAgICAgICAgcmVzdWx0ID0gc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvaW1hZ2UuaHRtbCcp
Ci0gICAgICAgIHByaW50ZXIucHJpbnRfdGVzdF9yZXN1bHQocmVzdWx0LCBleHBlY3RlZD1GYWxz
ZSwgZXhwX3N0cj0nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3Ry
PScnKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLQotICAgICAgICBwcmludGVyLCBl
cnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ3VuZXhwZWN0ZWQnXSkKLSAg
ICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPVRydWUsIGV4
cF9zdHI9JycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290X3N0cj0nJykK
LSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdGVz
dF9yZXN1bHQocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgZXhwX3N0cj0nJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3RyPScnKQotICAgICAgICBzZWxmLmFzc2VydFdy
aXR0ZW4oZXJyLCBbJyAgcGFzc2VzL2ltYWdlLmh0bWwgLT4gdW5leHBlY3RlZCBwYXNzXG4nXSkK
LQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50
JywgJ2V2ZXJ5dGhpbmcnXSkKLSAgICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChyZXN1
bHQsIGV4cGVjdGVkPVRydWUsIGV4cF9zdHI9JycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ290X3N0cj0nJykKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0KLSAg
ICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBl
eHBfc3RyPScnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdF9zdHI9Jycp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsnICBwYXNzZXMvaW1hZ2UuaHRtbCAt
PiB1bmV4cGVjdGVkIHBhc3NcbiddKQotCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2Vs
Zi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnbm90aGluZyddKQotICAgICAgICBwcmludGVyLnBy
aW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9RmFsc2UsIGV4cF9zdHI9JycsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290X3N0cj0nJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFbXB0eShlcnIpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9w
cmludGVyKFsnLS1wcmludCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3RyYWNlLXVuZXhwZWN0ZWQnXSkKLSAgICAgICAgcHJpbnRlci5wcmludF90ZXN0
X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPVRydWUsIGV4cF9zdHI9JycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ290X3N0cj0nJykKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0
eShlcnIpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsn
LS1wcmludCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3RyYWNlLXVuZXhwZWN0ZWQnXSkKLSAgICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChy
ZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBleHBfc3RyPScnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdvdF9zdHI9JycpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJy
KQotCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJp
bnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFj
ZS11bmV4cGVjdGVkJ10pCi0gICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0X3Jlc3VsdCgicGFzc2Vz
L3RleHQuaHRtbCIpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdGVzdF9yZXN1bHQocmVzdWx0LCBl
eHBlY3RlZD1GYWxzZSwgZXhwX3N0cj0nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnb3Rfc3RyPScnKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KGVycikKLQotICAg
ICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhY2UtdW5leHBl
Y3RlZCddKQotICAgICAgICByZXN1bHQgPSBzZWxmLmdldF9yZXN1bHQoInBhc3Nlcy90ZXh0Lmh0
bWwiKQotICAgICAgICBwcmludGVyLnByaW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9
RmFsc2UsIGV4cF9zdHI9JycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290
X3N0cj0nJykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShlcnIpCi0KLSAgICAgICAgcHJp
bnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICd0cmFjZS1ldmVy
eXRoaW5nJ10pCi0gICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL2ltYWdl
Lmh0bWwnKQotICAgICAgICBwcmludGVyLnByaW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0
ZWQ9VHJ1ZSwgZXhwX3N0cj0nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
b3Rfc3RyPScnKQotICAgICAgICByZXN1bHQgPSBzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4
cGVjdGVkL21pc3NpbmdfdGV4dC5odG1sJykKLSAgICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jl
c3VsdChyZXN1bHQsIGV4cGVjdGVkPVRydWUsIGV4cF9zdHI9JycsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ290X3N0cj0nJykKLSAgICAgICAgcmVzdWx0ID0gc2VsZi5nZXRf
cmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX2NoZWNrLmh0bWwnKQotICAgICAgICBw
cmludGVyLnByaW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9VHJ1ZSwgZXhwX3N0cj0n
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3RyPScnKQotICAgICAg
ICByZXN1bHQgPSBzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfaW1h
Z2UuaHRtbCcpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdGVzdF9yZXN1bHQocmVzdWx0LCBleHBl
Y3RlZD1UcnVlLCBleHBfc3RyPScnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdvdF9zdHI9JycpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQotCi0gICAgICAg
IHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAndHJhY2Ut
ZXZlcnl0aGluZyddKQotICAgICAgICByZXN1bHQgPSBzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy9p
bWFnZS5odG1sJykKLSAgICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChyZXN1bHQsIGV4
cGVjdGVkPUZhbHNlLCBleHBfc3RyPScnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdvdF9zdHI9JycpCi0KLSAgICBkZWYgdGVzdF9wcmludF9wcm9ncmVzcyhzZWxmKToKLSAg
ICAgICAgZXhwZWN0YXRpb25zID0gJycKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNl
bGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ25vdGhpbmcnXSkKLSAgICAgICAgdGVzdHMgPSBb
J3Bhc3Nlcy90ZXh0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywKLSAg
ICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnXQotICAgICAgICBw
YXRocywgcnMsIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3RzLCBleHBlY3RhdGlv
bnMpCi0KLSAgICAgICAgIyBGaXJzdCwgdGVzdCB0aGF0IHdlIHByaW50IG5vdGhpbmcgd2hlbiB3
ZSBzaG91bGRuJ3QgcHJpbnQgYW55dGhpbmcuCi0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jl
c3MocnMsIEZhbHNlLCBwYXRocykKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQotCi0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jl
c3MocnMsIFRydWUsIHBhdGhzKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0KLSAgICAgICAgIyBOb3cgdGVzdCB0aGF0IHdlIGRv
IHByaW50IHRoaW5ncy4KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmlu
dGVyKFsnLS1wcmludCcsICdvbmUtbGluZS1wcm9ncmVzcyddKQotICAgICAgICBwcmludGVyLnBy
aW50X3Byb2dyZXNzKHJzLCBGYWxzZSwgcGF0aHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHko
b3V0KQotICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KGVycikKLQotICAgICAgICBwcmludGVy
LCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ29uZS1saW5lLXByb2dy
ZXNzJ10pCi0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIFRydWUsIHBhdGhzKQot
ICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0
eShlcnIpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsn
LS1wcmludCcsICdvbmUtbGluZS1wcm9ncmVzcyddKQotICAgICAgICBycy5yZW1haW5pbmcgPSAw
Ci0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIEZhbHNlLCBwYXRocykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJy
KQotCi0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIFRydWUsIHBhdGhzKQotICAg
ICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShl
cnIpCi0KLQotCi0gICAgZGVmIHRlc3Rfd3JpdGVfbm90aGluZyhzZWxmKToKLSAgICAgICAgcHJp
bnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdub3RoaW5nJ10p
Ci0gICAgICAgIHByaW50ZXIud3JpdGUoImZvbyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHko
ZXJyKQotCi0gICAgZGVmIHRlc3Rfd3JpdGVfbWlzYyhzZWxmKToKLSAgICAgICAgcHJpbnRlciwg
ZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdtaXNjJ10pCi0gICAgICAg
IHByaW50ZXIud3JpdGUoImZvbyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQot
Ci0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQn
LCAnbWlzYyddKQotICAgICAgICBwcmludGVyLndyaXRlKCJmb28iLCAiY29uZmlnIikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0KLSAgICBkZWYgdGVzdF93cml0ZV9ldmVyeXRoaW5n
KHNlbGYpOgotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyct
LXByaW50JywgJ2V2ZXJ5dGhpbmcnXSkKLSAgICAgICAgcHJpbnRlci53cml0ZSgiZm9vIikKLSAg
ICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShlcnIpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBv
dXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdldmVyeXRoaW5nJ10pCi0gICAgICAg
IHByaW50ZXIud3JpdGUoImZvbyIsICJjb25maWciKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVt
cHR5KGVycikKLQotICAgIGRlZiB0ZXN0X3dyaXRlX3ZlcmJvc2Uoc2VsZik6Ci0gICAgICAgIHBy
aW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tdmVyYm9zZSddKQotICAgICAg
ICBwcmludGVyLndyaXRlKCJmb28iKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoImZvbyIgaW4g
ZXJyLmJ1Zmxpc3RbMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQotCiAgICAgZGVm
IHRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHNlbGYpOgogICAgICAgICAjIFRoaXMgcm91
dGluZSBpcyB0aGUgb25seSBvbmUgdGhhdCBwcmludHMgc3R1ZmYgdGhhdCB0aGUgYm90cwogICAg
ICAgICAjIGNhcmUgYWJvdXQuCkBAIC00MTcsNyArMTMxLDcgQEAgY2xhc3MgIFRlc3RwcmludGVy
KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICB0ZXN0
X2lzX3Nsb3cgPSBGYWxzZQotICAgICAgICAgICAgcGF0aHMsIHJzLCBleHAgPSBzZWxmLmdldF9y
ZXN1bHRfc3VtbWFyeSh0ZXN0cywgZXhwZWN0YXRpb25zKQorICAgICAgICAgICAgXywgcnMsIGV4
cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3RzLCBleHBlY3RhdGlvbnMpCiAgICAgICAg
ICAgICBpZiBleHBlY3RlZDoKICAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0
ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFp
bHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCks
IGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCkBAIC00MzIsNyArMTQ2LDcgQEAgY2xhc3MgIFRlc3Rw
cmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5n
ZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlv
bnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICByZXRyeSA9
IHJzCiAgICAgICAgICAgICBpZiBmbGFreToKLSAgICAgICAgICAgICAgICBwYXRocywgcmV0cnks
IGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3RzLCBleHBlY3RhdGlvbnMpCisgICAg
ICAgICAgICAgICAgXywgcmV0cnksIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3Rz
LCBleHBlY3RhdGlvbnMpCiAgICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3Vs
dCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICAg
ICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5o
dG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKICAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2Vs
Zi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIFRydWUsIHRlc3Rf
aXNfc2xvdykKQEAgLTQ0MiwzNyArMTU2LDMwIEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIHRlc3RzID0gWydwYXNzZXMvdGV4dC5odG1sJywgJ2ZhaWx1
cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1s
J10KICAgICAgICAgZXhwZWN0YXRpb25zID0gJycKIAotICAgICAgICBwcmludGVyLCBlcnIsIG91
dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ25vdGhpbmcnXSkKLSAgICAgICAgdXIg
PSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBm
bGFreT1GYWxzZSkKLSAgICAgICAgcHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5
KG91dCkKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyct
LXByaW50JywgJ3VuZXhwZWN0ZWQtcmVzdWx0cyddKQotCiAgICAgICAgICMgdGVzdCBldmVyeXRo
aW5nIHJ1bm5pbmcgYXMgZXhwZWN0ZWQKKyAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxm
LmdldF9wcmludGVyKCkKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVj
dGVkPVRydWUsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZhbHNlKQotICAgICAgICBwcmludGVyLnBy
aW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKKyAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBl
Y3RlZF9yZXN1bHRzKHVyKQogICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKICAgICAgICAg
c2VsZi5hc3NlcnRFbXB0eShvdXQpCiAKICAgICAgICAgIyB0ZXN0IGZhaWx1cmVzCi0gICAgICAg
IHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAndW5leHBl
Y3RlZC1yZXN1bHRzJ10pCisgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJp
bnRlcigpCiAgICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxz
ZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdW5l
eHBlY3RlZF9yZXN1bHRzKHVyKQorICAgICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jl
c3VsdHModXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQogICAgICAgICBzZWxmLmFz
c2VydE5vdEVtcHR5KG91dCkKIAogICAgICAgICAjIHRlc3QgdW5leHBlY3RlZCBmbGFreQotICAg
ICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ3Vu
ZXhwZWN0ZWQtcmVzdWx0cyddKQorICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0
X3ByaW50ZXIoKQogICAgICAgICB1ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9
RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PVRydWUpCi0gICAgICAgIHByaW50ZXIucHJpbnRf
dW5leHBlY3RlZF9yZXN1bHRzKHVyKQorICAgICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVk
X3Jlc3VsdHModXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQogICAgICAgICBzZWxm
LmFzc2VydE5vdEVtcHR5KG91dCkKIAotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYu
Z2V0X3ByaW50ZXIoWyctLXByaW50JywgJ2V2ZXJ5dGhpbmcnXSkKKyAgICAgICAgcHJpbnRlciwg
ZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3Rl
ZF9yZXN1bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKLSAg
ICAgICAgcHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHByaW50
ZXIuX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0
eShlcnIpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQogCkBAIC00ODAsMjIgKzE4
NywyMiBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogQlVHWCA6IGZh
aWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwgPSBDUkFTSAogQlVHWCA6IGZhaWx1cmVzL2V4cGVj
dGVkL3RpbWVvdXQuaHRtbCA9IFRJTUVPVVQKICIiIgotICAgICAgICBwcmludGVyLCBlcnIsIG91
dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXByaW50JywgJ3VuZXhwZWN0ZWQtcmVzdWx0cyddKQor
ICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICB1
ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2Us
IGZsYWt5PUZhbHNlKQotICAgICAgICBwcmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1
cikKKyAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQogICAgICAg
ICBzZWxmLmFzc2VydEVtcHR5KGVycikKICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQp
CiAKLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmlu
dCcsICd1bmV4cGVjdGVkLXJlc3VsdHMnXSkKKyAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBz
ZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4
cGVjdGVkPUZhbHNlLCBwYXNzaW5nPVRydWUsIGZsYWt5PUZhbHNlKQotICAgICAgICBwcmludGVy
LnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKKyAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5l
eHBlY3RlZF9yZXN1bHRzKHVyKQogICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKICAgICAg
ICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQpCiAKICAgICAgICAgIyBUZXN0IGhhbmRsaW5nIG9m
IC0tdmVyYm9zZSBhcyB3ZWxsLgogICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0
X3ByaW50ZXIoWyctLXZlcmJvc2UnXSkKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1
bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKLSAgICAgICAg
cHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHByaW50ZXIuX3By
aW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKICAgICAgICAgIyBGSVhNRTogZGVidWcgb3V0cHV0
IGZyb20gdGhlIHBvcnQgYW5kIHNjbSBvYmplY3RzIG1heSBvciBtYXkgbm90IGdvCiAgICAgICAg
ICMgdG8gc3RkZXJyLCBzbyB0aGVyZSdzIG5vIHBvaW50IGluIHRlc3RpbmcgaXRzIGNvbnRlbnRz
IGhlcmUuCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>