<?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>93026</bug_id>
          
          <creation_ts>2012-08-02 13:56:47 -0700</creation_ts>
          <short_desc>nrwt: clean up logging, pt. 2: clean up printing.py</short_desc>
          <delta_ts>2012-08-07 15:29:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>93018</dependson>
    
    <dependson>93043</dependson>
    
    <dependson>93346</dependson>
          <blocked>92432</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>685780</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-02 13:56:47 -0700</bug_when>
    <thetext>nrwt: clean up printing.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685782</commentid>
    <comment_count>1</comment_count>
      <attachid>156159</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-02 13:58:27 -0700</bug_when>
    <thetext>Created attachment 156159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685804</commentid>
    <comment_count>2</comment_count>
      <attachid>156159</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-02 14:09:29 -0700</bug_when>
    <thetext>Comment on attachment 156159
Patch

nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686035</commentid>
    <comment_count>3</comment_count>
      <attachid>156217</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-02 17:41:07 -0700</bug_when>
    <thetext>Created attachment 156217
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686037</commentid>
    <comment_count>4</comment_count>
      <attachid>156217</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-02 17:41:44 -0700</bug_when>
    <thetext>Comment on attachment 156217
Patch for landing

this fixes some grammatical nits and spacing as well as a bug with printing unexpected results always.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688402</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-06 13:46:46 -0700</bug_when>
    <thetext>Committed r124800: &lt;http://trac.webkit.org/changeset/124800&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688957</commentid>
    <comment_count>6</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-08-07 01:50:41 -0700</bug_when>
    <thetext>After this change, instead of the bots displaying some useful information like:

Aug 06 13:53 124800 failure EFL Linux 64-bit Debug #3930 Failed 9 failures 7 flakes

It is now showing:

Aug 06 13:53 124800 failure EFL Linux 64-bit Debug #3930 Failed layout-test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688961</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-08-07 02:00:05 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; After this change, instead of the bots displaying some useful information like:
&gt; 
&gt; Aug 06 13:53 124800 failure EFL Linux 64-bit Debug #3930 Failed 9 failures 7 flakes
&gt; 
&gt; It is now showing:
&gt; 
&gt; Aug 06 13:53 124800 failure EFL Linux 64-bit Debug #3930 Failed layout-test

New bug report: https://bugs.webkit.org/show_bug.cgi?id=93346
Patch is coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689486</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-07 15:29:05 -0700</bug_when>
    <thetext>I thought I had checked this before making the change, but I guess not. Thanks for taking care of it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156159</attachid>
            <date>2012-08-02 13:58:27 -0700</date>
            <delta_ts>2012-08-02 17:41:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93026-20120802135808.patch</filename>
            <type>text/plain</type>
            <size>40683</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWIwZmNhZTY1MzJiNzVmMzEwMzIyY2E0MzUwNTM5MGQ4
OTgzNjAzNS4uNWNiMWY1MDAyYzA0NjMyNzUyZTUwY2Y0NDYxZGQ2MDJiYTU4NzIzZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYw
IEBACiAyMDEyLTA4LTAyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IGNsZWFuIHVwIHByaW50aW5nLnB5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2xlYW5zIHVwIHRoZSBpbXBsZW1l
bnRhdGlvbiBvZiBwcmludGluZy5weSBub3cKKyAgICAgICAgdGhhdCB3ZSdyZSBub3QgdXNpbmcg
YWxsIHRoZSBvcmlnaW5hbCBjb21wbGV4aXR5LgorCisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBu
byBjaGFuZ2VzIGluIGZ1bmN0aW9uYWxpdHkgYW5kIGV2ZXJ5dGhpbmcKKyAgICAgICAgc2hvdWxk
IGJlIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5Ogor
ICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5ydW5fdGVzdHMpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5OgorICAgICAgICAoUHJpbnRl
ci5fX2luaXRfXyk6CisgICAgICAgIChQcmludGVyLl9fZGVsX18pOgorICAgICAgICAoUHJpbnRl
ci5wcmludF9jb25maWcpOgorICAgICAgICAoUHJpbnRlci5wcmludF9mb3VuZCk6CisgICAgICAg
IChQcmludGVyLnByaW50X2V4cGVjdGVkKToKKyAgICAgICAgKFByaW50ZXIucHJpbnRfd29ya2Vy
c19hbmRfc2hhcmRzKToKKyAgICAgICAgKFByaW50ZXIpOgorICAgICAgICAoUHJpbnRlci5fcHJp
bnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKToKKyAgICAgICAgKFByaW50ZXIucHJpbnRfcmVz
dWx0cyk6CisgICAgICAgIChQcmludGVyLl9wcmludF90aW1pbmdfc3RhdGlzdGljcyk6CisgICAg
ICAgIChQcmludGVyLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKToKKyAgICAgICAg
KFByaW50ZXIuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyk6CisgICAgICAgIChQcmludGVy
Ll9wcmludF90ZXN0X2xpc3RfdGltaW5nKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2RpcmVj
dG9yeV90aW1pbmdzKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rl
c3RfdGltaW5ncyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeSk6Cisg
ICAgICAgIChQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeSk6CisgICAgICAgIChQ
cmludGVyLl9wcmludF9vbmVfbGluZV9zdW1tYXJ5KToKKyAgICAgICAgKFByaW50ZXIucHJpbnRf
ZmluaXNoZWRfdGVzdCk6CisgICAgICAgIChQcmludGVyLl9wcmludF90ZXN0X3Jlc3VsdCk6Cisg
ICAgICAgIChQcmludGVyLl9wcmludF90ZXN0X3RyYWNlKToKKyAgICAgICAgKFByaW50ZXIuX3By
aW50X2Jhc2VsaW5lKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X3VuZXhwZWN0ZWRfdGVzdF9y
ZXN1bHQpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfcHJvZ3Jlc3MpOgorICAgICAgICAoUHJp
bnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50
X3VuZXhwZWN0ZWRfcmVzdWx0cy5hZGRfcmVzdWx0KToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50
X3F1aWV0KToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2RlZmF1bHQpOgorICAgICAgICAoUHJp
bnRlci5fcHJpbnRfZGVidWcpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfZm9yX2JvdCk6Cisg
ICAgICAgIChQcmludGVyLndyaXRlX3VwZGF0ZSk6CisgICAgICAgIChQcmludGVyLndyaXRlbG4p
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5n
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdHByaW50ZXIuZ2V0X3ByaW50ZXIpOgorICAgICAg
ICAoVGVzdHByaW50ZXIudGVzdF9wcmludF9jb25maWcpOgorICAgICAgICAoVGVzdHByaW50ZXIu
dGVzdF9wcmludF9vbmVfbGluZV9zdW1tYXJ5KToKKyAgICAgICAgKFRlc3RwcmludGVyLnRlc3Rf
cHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKHRlc3RfZGV0YWlscyk6CisKKzIw
MTItMDgtMDIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAg
bnJ3dDogY2xlYW4gdXAgbG9nZ2luZywgcGFydCAxCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzAxOAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRf
dGVzdF9ydW5uZXIucHkKaW5kZXggYTVkZWY5Yjk5ZWZmNDMwN2IyNmI5NjQwMTZjMTdiYTY4ZjU0
MTE2NS4uYTE5OTAzMzc0NDY2NTAwNGYwOTM2Y2U4ZGQwOWE3NzBkM2EyZjgwMyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0
X3Rlc3RfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQpAQCAtMTQwLDcgKzE0MCw3IEBAIGNs
YXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBwb29sLnJ1bigo
J3Rlc3RfbGlzdCcsIHNoYXJkLm5hbWUsIHNoYXJkLnRlc3RfaW5wdXRzKSBmb3Igc2hhcmQgaW4g
YWxsX3NoYXJkcykKICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgICAg
ICAgc2VsZi5fcHJpbnRlci5mbHVzaCgpCi0gICAgICAgICAgICBzZWxmLl9wcmludGVyLndyaXRl
KCdJbnRlcnJ1cHRlZCwgZXhpdGluZyAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53
cml0ZWxuKCdJbnRlcnJ1cHRlZCwgZXhpdGluZyAuLi4nKQogICAgICAgICAgICAga2V5Ym9hcmRf
aW50ZXJydXB0ZWQgPSBUcnVlCiAgICAgICAgIGV4Y2VwdCBUZXN0UnVuSW50ZXJydXB0ZWRFeGNl
cHRpb24sIGU6CiAgICAgICAgICAgICBfbG9nLndhcm5pbmcoZS5yZWFzb24pCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5Cmlu
ZGV4IGIyMTgxMmRmY2FlMjQ0NTkzZDc4YTk4MTc2ZTM3NGI4NmEzZDIzYTkuLmUzZmNmMzRlMzQy
Mjc3ZWI2ZGNlY2Y2NjQ0NGMwZjFiYTg4M2YzZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CkBAIC0zOCwxMSArMzgs
OSBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZXhwZWN0
YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9leHBlY3RhdGlv
bnMgaW1wb3J0IFRlc3RFeHBlY3RhdGlvbnMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZp
ZXdzLm1ldGVyZWRfc3RyZWFtIGltcG9ydCBNZXRlcmVkU3RyZWFtCiAKKwogTlVNX1NMT1dfVEVT
VFNfVE9fTE9HID0gMTAKIAotUFJJTlRfUVVJRVQgPSAib25lLWxpbmUtcHJvZ3Jlc3Msb25lLWxp
bmUtc3VtbWFyeSx1bmV4cGVjdGVkLHVuZXhwZWN0ZWQtcmVzdWx0cyx1cGRhdGVzIgotUFJJTlRf
REVGQVVMVCA9ICJjb25maWcsbWlzYyxvbmUtbGluZS1wcm9ncmVzcyxvbmUtbGluZS1zdW1tYXJ5
LHVuZXhwZWN0ZWQsdW5leHBlY3RlZC1yZXN1bHRzLHVwZGF0ZXMiCi1QUklOVF9FVkVSWVRISU5H
ID0gImFjdHVhbCxjb25maWcsZXhwZWN0ZWQsbWlzYyxvbmUtbGluZS1wcm9ncmVzcyxvbmUtbGlu
ZS1zdW1tYXJ5LHNsb3dlc3QsdGltaW5nLHVuZXhwZWN0ZWQsdW5leHBlY3RlZC1yZXN1bHRzLHVw
ZGF0ZXMiCiAKIGRlZiBwcmludF9vcHRpb25zKCk6CiAgICAgcmV0dXJuIFsKQEAgLTcwLDMwICs2
OCw5IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICBCeSBkZWZhdWx0IHRoZSBidWlsZGJv
dC1wYXJzZWQgY29kZSBnZXRzIGxvZ2dlZCB0byBzdGRvdXQsIGFuZCByZWd1bGFyCiAgICAgb3V0
cHV0IGdldHMgbG9nZ2VkIHRvIHN0ZGVyci4iIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dCwgb3B0aW9ucywgcmVndWxhcl9vdXRwdXQsIGJ1aWxkYm90X291dHB1dCwgbG9nZ2VyPU5vbmUp
OgotICAgICAgICAiIiIKLSAgICAgICAgQXJncwotICAgICAgICAgIHBvcnQgICAgICAgICAgICAg
ICBpbnRlcmZhY2UgdG8gcG9ydC1zcGVjaWZpYyByb3V0aW5lcwotICAgICAgICAgIG9wdGlvbnMg
ICAgICAgICAgICBPcHRpb25QYXJzZXIgb2JqZWN0IHdpdGggY29tbWFuZCBsaW5lIHNldHRpbmdz
Ci0gICAgICAgICAgcmVndWxhcl9vdXRwdXQgICAgIHN0cmVhbSB0byB3aGljaCBvdXRwdXQgaW50
ZW5kZWQgb25seSBmb3IgaHVtYW5zCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZCBiZSB3cml0dGVuCi0gICAgICAgICAgYnVpbGRib3Rfb3V0cHV0ICAgIHN0cmVhbSB0byB3aGlj
aCBvdXRwdXQgaW50ZW5kZWQgdG8gYmUgcmVhZCBieQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGUgYnVpbGRib3RzIChhbmQgaHVtYW5zKSBzaG91bGQgYmUgd3JpdHRlbgotICAgICAg
ICAgIGxvZ2dlciAgICAgICAgICAgICBvcHRpb25hbCBsb2dnZXIgdG8gaW50ZWdyYXRlIGludG8g
dGhlIHN0cmVhbS4KLSAgICAgICAgIiIiCiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAg
ICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVh
bSA9IGJ1aWxkYm90X291dHB1dAotCi0gICAgICAgIGlmIG9wdGlvbnMuZGVidWdfcnd0X2xvZ2dp
bmc6Ci0gICAgICAgICAgICBzZWxmLnN3aXRjaGVzID0gUFJJTlRfRVZFUllUSElORy5zcGxpdCgn
LCcpCi0gICAgICAgIGVsaWYgb3B0aW9ucy5xdWlldDoKLSAgICAgICAgICAgIHNlbGYuc3dpdGNo
ZXMgPSBQUklOVF9RVUlFVC5zcGxpdCgnLCcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLnN3aXRjaGVzID0gUFJJTlRfREVGQVVMVC5zcGxpdCgnLCcpCi0KLSAgICAgICAgaWYgb3B0
aW9ucy5kZXRhaWxzOgotICAgICAgICAgICAgc2VsZi5zd2l0Y2hlcy5hcHBlbmQoJ3RyYWNlLWV2
ZXJ5dGhpbmcnKQotCiAgICAgICAgIHNlbGYuX21ldGVyID0gTWV0ZXJlZFN0cmVhbShyZWd1bGFy
X291dHB1dCwgb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZywgbG9nZ2VyPWxvZ2dlcikKIAogICAg
IGRlZiBjbGVhbnVwKHNlbGYpOgpAQCAtMTAyLDcyICs3OSw1NCBAQCBjbGFzcyBQcmludGVyKG9i
amVjdCk6CiAgICAgZGVmIF9fZGVsX18oc2VsZik6CiAgICAgICAgIHNlbGYuY2xlYW51cCgpCiAK
LSAgICAjIFRoZXNlIHR3byByb3V0aW5lcyBqdXN0IGhpZGUgdGhlIGltcGxlbWVudGF0aW9uIG9m
IHRoZSBzd2l0Y2hlcy4KLSAgICBkZWYgZGlzYWJsZWQoc2VsZiwgb3B0aW9uKToKLSAgICAgICAg
cmV0dXJuIG5vdCBvcHRpb24gaW4gc2VsZi5zd2l0Y2hlcwotCi0gICAgZGVmIGVuYWJsZWQoc2Vs
Ziwgb3B0aW9uKToKLSAgICAgICAgcmV0dXJuIG9wdGlvbiBpbiBzZWxmLnN3aXRjaGVzCi0KICAg
ICBkZWYgcHJpbnRfY29uZmlnKHNlbGYpOgotICAgICAgICAiIiJQcmludHMgdGhlIGNvbmZpZ3Vy
YXRpb24gZm9yIHRoZSB0ZXN0IHJ1bi4iIiIKLSAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJV
c2luZyBwb3J0ICclcyciICUgc2VsZi5fcG9ydC5uYW1lKCkpCi0gICAgICAgIHNlbGYuX3ByaW50
X2NvbmZpZygiVGVzdCBjb25maWd1cmF0aW9uOiAlcyIgJSBzZWxmLl9wb3J0LnRlc3RfY29uZmln
dXJhdGlvbigpKQotICAgICAgICBzZWxmLl9wcmludF9jb25maWcoIlBsYWNpbmcgdGVzdCByZXN1
bHRzIGluICVzIiAlIHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnkpCisgICAgICAgIHNl
bGYuX3ByaW50X2RlZmF1bHQoIlVzaW5nIHBvcnQgJyVzJyIgJSBzZWxmLl9wb3J0Lm5hbWUoKSkK
KyAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgiVGVzdCBjb25maWd1cmF0aW9uOiAlcyIgJSBz
ZWxmLl9wb3J0LnRlc3RfY29uZmlndXJhdGlvbigpKQorICAgICAgICBzZWxmLl9wcmludF9kZWZh
dWx0KCJQbGFjaW5nIHRlc3QgcmVzdWx0cyBpbiAlcyIgJSBzZWxmLl9vcHRpb25zLnJlc3VsdHNf
ZGlyZWN0b3J5KQogCiAgICAgICAgICMgRklYTUU6IHNob3VsZCB0aGVzZSBvcHRpb25zIGJlIGlu
IHByaW50aW5nX29wdGlvbnM/CiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMubmV3X2Jhc2VsaW5l
OgotICAgICAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJQbGFjaW5nIG5ldyBiYXNlbGluZXMg
aW4gJXMiICUgc2VsZi5fcG9ydC5iYXNlbGluZV9wYXRoKCkpCisgICAgICAgICAgICBzZWxmLl9w
cmludF9kZWZhdWx0KCJQbGFjaW5nIG5ldyBiYXNlbGluZXMgaW4gJXMiICUgc2VsZi5fcG9ydC5i
YXNlbGluZV9wYXRoKCkpCiAKICAgICAgICAgZnMgPSBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3Rl
bQogICAgICAgICBmYWxsYmFja19wYXRoID0gW2ZzLnNwbGl0KHgpWzFdIGZvciB4IGluIHNlbGYu
X3BvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKV0KLSAgICAgICAgc2VsZi5fcHJpbnRfY29uZmln
KCJCYXNlbGluZSBzZWFyY2ggcGF0aDogJXMgLT4gZ2VuZXJpYyIgJSAiIC0+ICIuam9pbihmYWxs
YmFja19wYXRoKSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgiQmFzZWxpbmUgc2VhcmNo
IHBhdGg6ICVzIC0+IGdlbmVyaWMiICUgIiAtPiAiLmpvaW4oZmFsbGJhY2tfcGF0aCkpCiAKLSAg
ICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJVc2luZyAlcyBidWlsZCIgJSBzZWxmLl9vcHRpb25z
LmNvbmZpZ3VyYXRpb24pCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoIlVzaW5nICVzIGJ1
aWxkIiAlIHNlbGYuX29wdGlvbnMuY29uZmlndXJhdGlvbikKICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy5waXhlbF90ZXN0czoKLSAgICAgICAgICAgIHNlbGYuX3ByaW50X2NvbmZpZygiUGl4ZWwg
dGVzdHMgZW5hYmxlZCIpCisgICAgICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCJQaXhlbCB0
ZXN0cyBlbmFibGVkIikKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3ByaW50X2Nv
bmZpZygiUGl4ZWwgdGVzdHMgZGlzYWJsZWQiKQorICAgICAgICAgICAgc2VsZi5fcHJpbnRfZGVm
YXVsdCgiUGl4ZWwgdGVzdHMgZGlzYWJsZWQiKQogCi0gICAgICAgIHNlbGYuX3ByaW50X2NvbmZp
ZygiUmVndWxhciB0aW1lb3V0OiAlcywgc2xvdyB0ZXN0IHRpbWVvdXQ6ICVzIiAlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcywgc2VsZi5fb3B0
aW9ucy5zbG93X3RpbWVfb3V0X21zKSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgiUmVn
dWxhciB0aW1lb3V0OiAlcywgc2xvdyB0ZXN0IHRpbWVvdXQ6ICVzIiAlCisgICAgICAgICAgICAg
ICAgICAoc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcywgc2VsZi5fb3B0aW9ucy5zbG93X3RpbWVf
b3V0X21zKSkKIAotICAgICAgICBzZWxmLl9wcmludF9jb25maWcoJ0NvbW1hbmQgbGluZTogJyAr
ICcgJy5qb2luKHNlbGYuX3BvcnQuZHJpdmVyX2NtZF9saW5lKCkpKQotICAgICAgICBzZWxmLl9w
cmludF9jb25maWcoJycpCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoJ0NvbW1hbmQgbGlu
ZTogJyArICcgJy5qb2luKHNlbGYuX3BvcnQuZHJpdmVyX2NtZF9saW5lKCkpKQorICAgICAgICBz
ZWxmLl9wcmludF9kZWZhdWx0KCcnKQogCiAgICAgZGVmIHByaW50X2ZvdW5kKHNlbGYsIG51bV9h
bGxfdGVzdF9maWxlcywgbnVtX3RvX3J1biwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpOgogICAg
ICAgICBmb3VuZF9zdHIgPSAnRm91bmQgJXM7IHJ1bm5pbmcgJWQnICUgKGdyYW1tYXIucGx1cmFs
aXplKCd0ZXN0JywgbnVtX2FsbF90ZXN0X2ZpbGVzKSwgbnVtX3RvX3J1bikKICAgICAgICAgaWYg
cmVwZWF0X2VhY2ggKiBpdGVyYXRpb25zID4gMToKICAgICAgICAgICAgIGZvdW5kX3N0ciArPSAn
ICglZCB0aW1lcyBlYWNoOiAtLXJlcGVhdC1lYWNoPSVkIC0taXRlcmF0aW9ucz0lZCknICUgKHJl
cGVhdF9lYWNoICogaXRlcmF0aW9ucywgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpCiAgICAgICAg
IGZvdW5kX3N0ciArPSAnLCBza2lwcGluZyAlZCcgJSAobnVtX2FsbF90ZXN0X2ZpbGVzIC0gbnVt
X3RvX3J1bikKLSAgICAgICAgc2VsZi5fcHJpbnRfZXhwZWN0ZWQoZm91bmRfc3RyICsgJy4nKQor
ICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KGZvdW5kX3N0ciArICcuJykKIAogICAgIGRlZiBw
cmludF9leHBlY3RlZChzZWxmLCByZXN1bHRfc3VtbWFyeSwgdGVzdHNfd2l0aF9yZXN1bHRfdHlw
ZV9jYWxsYmFjayk6CiAgICAgICAgIHNlbGYuX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNfb2ZfdHlw
ZShyZXN1bHRfc3VtbWFyeSwgdGVzdF9leHBlY3RhdGlvbnMuUEFTUywgInBhc3NlcyIsIHRlc3Rz
X3dpdGhfcmVzdWx0X3R5cGVfY2FsbGJhY2spCiAgICAgICAgIHNlbGYuX3ByaW50X2V4cGVjdGVk
X3Jlc3VsdHNfb2ZfdHlwZShyZXN1bHRfc3VtbWFyeSwgdGVzdF9leHBlY3RhdGlvbnMuRkFJTCwg
ImZhaWx1cmVzIiwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjaykKICAgICAgICAgc2Vs
Zi5fcHJpbnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4
cGVjdGF0aW9ucy5GTEFLWSwgImZsYWt5IiwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFj
aykKLSAgICAgICAgc2VsZi5fcHJpbnRfZXhwZWN0ZWQoJycpCisgICAgICAgIHNlbGYuX3ByaW50
X2RlZmF1bHQoJycpCiAKICAgICBkZWYgcHJpbnRfd29ya2Vyc19hbmRfc2hhcmRzKHNlbGYsIG51
bV93b3JrZXJzLCBudW1fc2hhcmRzLCBudW1fbG9ja2VkX3NoYXJkcyk6CiAgICAgICAgIGRyaXZl
cl9uYW1lID0gc2VsZi5fcG9ydC5kcml2ZXJfbmFtZSgpCiAgICAgICAgIGlmIG51bV93b3JrZXJz
ID09IDE6Ci0gICAgICAgICAgICBzZWxmLl9wcmludF9jb25maWcoIlJ1bm5pbmcgMSAlcyBvdmVy
ICVzLiIgJQotICAgICAgICAgICAgICAgIChkcml2ZXJfbmFtZSwgZ3JhbW1hci5wbHVyYWxpemUo
J3NoYXJkJywgbnVtX3NoYXJkcykpKQorICAgICAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgi
UnVubmluZyAxICVzIG92ZXIgJXMuIiAlIChkcml2ZXJfbmFtZSwgZ3JhbW1hci5wbHVyYWxpemUo
J3NoYXJkJywgbnVtX3NoYXJkcykpKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5f
cHJpbnRfY29uZmlnKCJSdW5uaW5nICVkICVzcyBpbiBwYXJhbGxlbCBvdmVyICVkIHNoYXJkcyAo
JWQgbG9ja2VkKS4iICUKKyAgICAgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoIlJ1bm5pbmcg
JWQgJXNzIGluIHBhcmFsbGVsIG92ZXIgJWQgc2hhcmRzICglZCBsb2NrZWQpLiIgJQogICAgICAg
ICAgICAgICAgIChudW1fd29ya2VycywgZHJpdmVyX25hbWUsIG51bV9zaGFyZHMsIG51bV9sb2Nr
ZWRfc2hhcmRzKSkKLSAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCcnKQotCi0gICAgZGVmIF9w
cmludF9leHBlY3RlZF9yZXN1bHRzX29mX3R5cGUoc2VsZiwgcmVzdWx0X3N1bW1hcnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3R5cGUsIHJlc3VsdF90
eXBlX3N0ciwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjayk6Ci0gICAgICAgICIiIlBy
aW50IHRoZSBudW1iZXIgb2YgdGhlIHRlc3RzIGluIGEgZ2l2ZW4gcmVzdWx0IGNsYXNzLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgcmVzdWx0X3N1bW1hcnkgLSB0aGUgb2JqZWN0IGNvbnRh
aW5pbmcgYWxsIHRoZSByZXN1bHRzIHRvIHJlcG9ydCBvbgotICAgICAgICAgIHJlc3VsdF90eXBl
IC0gdGhlIHBhcnRpY3VsYXIgcmVzdWx0IHR5cGUgdG8gcmVwb3J0IGluIHRoZSBzdW1tYXJ5Lgot
ICAgICAgICAgIHJlc3VsdF90eXBlX3N0ciAtIGEgc3RyaW5nIGRlc2NyaXB0aW9uIG9mIHRoZSBy
ZXN1bHRfdHlwZS4KLSAgICAgICAgICBleHBlY3RhdGlvbnMgLSBwb3B1bGF0ZWQgVGVzdEV4cGVj
dGF0aW9ucyBvYmplY3QgZm9yIHN0YXRzCi0gICAgICAgICIiIgorICAgICAgICBzZWxmLl9wcmlu
dF9kZWZhdWx0KCcnKQorCisgICAgZGVmIF9wcmludF9leHBlY3RlZF9yZXN1bHRzX29mX3R5cGUo
c2VsZiwgcmVzdWx0X3N1bW1hcnksIHJlc3VsdF90eXBlLCByZXN1bHRfdHlwZV9zdHIsIHRlc3Rz
X3dpdGhfcmVzdWx0X3R5cGVfY2FsbGJhY2spOgogICAgICAgICB0ZXN0cyA9IHRlc3RzX3dpdGhf
cmVzdWx0X3R5cGVfY2FsbGJhY2socmVzdWx0X3R5cGUpCiAgICAgICAgIG5vdyA9IHJlc3VsdF9z
dW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3Rlc3RfZXhwZWN0YXRpb25zLk5PV10KICAgICAgICAg
d29udGZpeCA9IHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3Rlc3RfZXhwZWN0YXRp
b25zLldPTlRGSVhdCkBAIC0xNzYsOCArMTM1LDcgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgog
ICAgICAgICAjIG5pY2VseS1hbGlnbmVkIHRhYmxlLgogICAgICAgICBmbXRzdHIgPSAoIkV4cGVj
dDogJSU1ZCAlJS04cyAoJSUlZGQgbm93LCAlJSVkZCB3b250Zml4KSIKICAgICAgICAgICAgICAg
ICAgICUgKHNlbGYuX251bV9kaWdpdHMobm93KSwgc2VsZi5fbnVtX2RpZ2l0cyh3b250Zml4KSkp
Ci0gICAgICAgIHNlbGYuX3ByaW50X2V4cGVjdGVkKGZtdHN0ciAlCi0gICAgICAgICAgICAobGVu
KHRlc3RzKSwgcmVzdWx0X3R5cGVfc3RyLCBsZW4odGVzdHMgJiBub3cpLCBsZW4odGVzdHMgJiB3
b250Zml4KSkpCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKGZtdHN0ciAlIChsZW4odGVzdHMp
LCByZXN1bHRfdHlwZV9zdHIsIGxlbih0ZXN0cyAmIG5vdyksIGxlbih0ZXN0cyAmIHdvbnRmaXgp
KSkKIAogICAgIGRlZiBfbnVtX2RpZ2l0cyhzZWxmLCBudW0pOgogICAgICAgICAiIiJSZXR1cm5z
IHRoZSBudW1iZXIgb2YgZGlnaXRzIG5lZWRlZCB0byByZXByZXNlbnQgdGhlIGxlbmd0aCBvZiBh
CkBAIC0xOTEsNjAgKzE0OSwzNSBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgIHNl
bGYuX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHJ1bl90aW1lLCB0aHJlYWRfdGltaW5ncywgdGVz
dF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnkpCiAgICAg
ICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5KQogCi0gICAgICAg
IHNlbGYucHJpbnRfb25lX2xpbmVfc3VtbWFyeShyZXN1bHRfc3VtbWFyeS50b3RhbCAtIHJlc3Vs
dF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzLCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCAtIHJlc3Vs
dF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzLCByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkKQorICAg
ICAgICBzZWxmLl9wcmludF9vbmVfbGluZV9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5LnRvdGFsIC0g
cmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMsIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkIC0g
cmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMsIHJlc3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWQp
CiAKLSAgICAgICAgc2VsZi5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModW5leHBlY3RlZF9yZXN1
bHRzKQorICAgICAgICBzZWxmLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModW5leHBlY3RlZF9y
ZXN1bHRzKQogCiAgICAgZGVmIF9wcmludF90aW1pbmdfc3RhdGlzdGljcyhzZWxmLCB0b3RhbF90
aW1lLCB0aHJlYWRfdGltaW5ncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp
cmVjdG9yeV90ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkpOgotICAgICAgICAiIiJSZWNv
cmQgdGltaW5nLXNwZWNpZmljIGluZm9ybWF0aW9uIGZvciB0aGUgdGVzdCBydW4uCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICB0b3RhbF90aW1lOiB0b3RhbCBlbGFwc2VkIHRpbWUgKGluIHNl
Y29uZHMpIGZvciB0aGUgdGVzdCBydW4KLSAgICAgICAgICB0aHJlYWRfdGltaW5nczogd2FsbCBj
bG9jayB0aW1lIGVhY2ggdGhyZWFkIHJhbiBmb3IKLSAgICAgICAgICBkaXJlY3RvcnlfdGVzdF90
aW1pbmdzOiB0aW1pbmcgYnkgZGlyZWN0b3J5Ci0gICAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3Rp
bWluZ3M6IHRpbWluZyBieSBmaWxlCi0gICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IHN1bW1hcnkg
b2JqZWN0IGZvciB0aGUgdGVzdCBydW4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYucHJpbnRf
dGltaW5nKCJUZXN0IHRpbWluZzoiKQotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICAlNi4y
ZiB0b3RhbCB0ZXN0aW5nIHRpbWUiICUgdG90YWxfdGltZSkKLSAgICAgICAgc2VsZi5wcmludF90
aW1pbmcoIiIpCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCJUaHJlYWQgdGltaW5nOiIpCisg
ICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCJUZXN0IHRpbWluZzoiKQorICAgICAgICBzZWxmLl9w
cmludF9kZWJ1ZygiICAlNi4yZiB0b3RhbCB0ZXN0aW5nIHRpbWUiICUgdG90YWxfdGltZSkKKyAg
ICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCJU
aHJlYWQgdGltaW5nOiIpCiAgICAgICAgIGN1bWxfdGltZSA9IDAKICAgICAgICAgZm9yIHQgaW4g
dGhyZWFkX3RpbWluZ3M6Ci0gICAgICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICAgICUxMHM6
ICU1ZCB0ZXN0cywgJTYuMmYgc2VjcyIgJQotICAgICAgICAgICAgICAgICAgKHRbJ25hbWUnXSwg
dFsnbnVtX3Rlc3RzJ10sIHRbJ3RvdGFsX3RpbWUnXSkpCisgICAgICAgICAgICBzZWxmLl9wcmlu
dF9kZWJ1ZygiICAgICUxMHM6ICU1ZCB0ZXN0cywgJTYuMmYgc2VjcyIgJSAodFsnbmFtZSddLCB0
WydudW1fdGVzdHMnXSwgdFsndG90YWxfdGltZSddKSkKICAgICAgICAgICAgIGN1bWxfdGltZSAr
PSB0Wyd0b3RhbF90aW1lJ10KLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgICU2LjJmIGN1
bXVsYXRpdmUsICU2LjJmIG9wdGltYWwiICUKLSAgICAgICAgICAgICAgKGN1bWxfdGltZSwgY3Vt
bF90aW1lIC8gaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSkpCi0gICAgICAgIHNl
bGYucHJpbnRfdGltaW5nKCIiKQorICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICAgJTYuMmYg
Y3VtdWxhdGl2ZSwgJTYuMmYgb3B0aW1hbCIgJSAoY3VtbF90aW1lLCBjdW1sX3RpbWUgLyBpbnQo
c2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpKSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVi
dWcoIiIpCiAKICAgICAgICAgc2VsZi5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyhp
bmRpdmlkdWFsX3Rlc3RfdGltaW5ncykKLSAgICAgICAgc2VsZi5fcHJpbnRfaW5kaXZpZHVhbF90
ZXN0X3RpbWVzKGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkpCisgICAgICAgIHNlbGYuX3ByaW50
X2luZGl2aWR1YWxfdGVzdF90aW1lcyhpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1
bW1hcnkpCiAgICAgICAgIHNlbGYuX3ByaW50X2RpcmVjdG9yeV90aW1pbmdzKGRpcmVjdG9yeV90
ZXN0X3RpbWluZ3MpCiAKICAgICBkZWYgX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3Mo
c2VsZiwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MpOgotICAgICAgICAiIiJQcmludHMgYWdncmVn
YXRlIHN0YXRpc3RpY3MgKGUuZy4gbWVkaWFuLCBtZWFuLCBldGMuKSBmb3IgYWxsIHRlc3RzLgot
ICAgICAgICBBcmdzOgotICAgICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzOiBMaXN0IG9m
IFRlc3RSZXN1bHRzIGZvciBhbGwgdGVzdHMuCi0gICAgICAgICIiIgogICAgICAgICB0aW1lc19m
b3JfZHVtcF9yZW5kZXJfdHJlZSA9IFt0ZXN0X3N0YXRzLnRlc3RfcnVuX3RpbWUgZm9yIHRlc3Rf
c3RhdHMgaW4gaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3NdCi0gICAgICAgIHNlbGYuX3ByaW50X3N0
YXRpc3RpY3NfZm9yX3Rlc3RfdGltaW5ncygiUEVSIFRFU1QgVElNRSBJTiBURVNUU0hFTEwgKHNl
Y29uZHMpOiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aW1lc19mb3JfZHVtcF9yZW5kZXJfdHJlZSkKLQotICAgIGRlZiBfcHJpbnRfaW5kaXZpZHVh
bF90ZXN0X3RpbWVzKHNlbGYsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5KToKLSAgICAgICAgIiIiUHJp
bnRzIHRoZSBydW4gdGltZXMgZm9yIHNsb3csIHRpbWVvdXQgYW5kIGNyYXNoIHRlc3RzLgotICAg
ICAgICBBcmdzOgotICAgICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzOiBMaXN0IG9mIFRl
c3RTdGF0cyBmb3IgYWxsIHRlc3RzLgotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5
IG9iamVjdCBmb3IgdGVzdCBydW4KLSAgICAgICAgIiIiCi0gICAgICAgICMgUmV2ZXJzZS1zb3J0
IGJ5IHRoZSB0aW1lIHNwZW50IGluIER1bXBSZW5kZXJUcmVlLgotICAgICAgICBpbmRpdmlkdWFs
X3Rlc3RfdGltaW5ncy5zb3J0KGxhbWJkYSBhLCBiOgotICAgICAgICAgICAgY21wKGIudGVzdF9y
dW5fdGltZSwgYS50ZXN0X3J1bl90aW1lKSkKKyAgICAgICAgc2VsZi5fcHJpbnRfc3RhdGlzdGlj
c19mb3JfdGVzdF90aW1pbmdzKCJQRVIgVEVTVCBUSU1FIElOIFRFU1RTSEVMTCAoc2Vjb25kcyk6
IiwgdGltZXNfZm9yX2R1bXBfcmVuZGVyX3RyZWUpCiAKKyAgICBkZWYgX3ByaW50X2luZGl2aWR1
YWxfdGVzdF90aW1lcyhzZWxmLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1h
cnkpOgorICAgICAgICAjIFJldmVyc2Utc29ydCBieSB0aGUgdGltZSBzcGVudCBpbiBEdW1wUmVu
ZGVyVHJlZS4KKyAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Muc29ydChsYW1iZGEgYSwg
YjogY21wKGIudGVzdF9ydW5fdGltZSwgYS50ZXN0X3J1bl90aW1lKSkKICAgICAgICAgbnVtX3By
aW50ZWQgPSAwCiAgICAgICAgIHNsb3dfdGVzdHMgPSBbXQogICAgICAgICB0aW1lb3V0X29yX2Ny
YXNoX3Rlc3RzID0gW10KQEAgLTI2Nyw2MyArMjAwLDM3IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0
KToKICAgICAgICAgICAgICAgICBudW1fcHJpbnRlZCA9IG51bV9wcmludGVkICsgMQogICAgICAg
ICAgICAgICAgIHVuZXhwZWN0ZWRfc2xvd190ZXN0cy5hcHBlbmQodGVzdF90dXBsZSkKIAotICAg
ICAgICBzZWxmLnByaW50X3RpbWluZygiIikKLSAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF9saXN0
X3RpbWluZygiJXMgc2xvd2VzdCB0ZXN0cyB0aGF0IGFyZSBub3QgIgotICAgICAgICAgICAgIm1h
cmtlZCBhcyBTTE9XIGFuZCBkaWQgbm90IHRpbWVvdXQvY3Jhc2g6IiAlIE5VTV9TTE9XX1RFU1RT
X1RPX0xPRywgdW5leHBlY3RlZF9zbG93X3Rlc3RzKQotICAgICAgICBzZWxmLnByaW50X3RpbWlu
ZygiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCisgICAgICAgIHNlbGYuX3ByaW50
X3Rlc3RfbGlzdF90aW1pbmcoIiVzIHNsb3dlc3QgdGVzdHMgdGhhdCBhcmUgbm90IG1hcmtlZCBh
cyBTTE9XIGFuZCBkaWQgbm90IHRpbWVvdXQvY3Jhc2g6IiAlCisgICAgICAgICAgICBOVU1fU0xP
V19URVNUU19UT19MT0csIHVuZXhwZWN0ZWRfc2xvd190ZXN0cykKKyAgICAgICAgc2VsZi5fcHJp
bnRfZGVidWcoIiIpCiAgICAgICAgIHNlbGYuX3ByaW50X3Rlc3RfbGlzdF90aW1pbmcoIlRlc3Rz
IG1hcmtlZCBhcyBTTE9XOiIsIHNsb3dfdGVzdHMpCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5n
KCIiKQotICAgICAgICBzZWxmLl9wcmludF90ZXN0X2xpc3RfdGltaW5nKCJUZXN0cyB0aGF0IHRp
bWVkIG91dCBvciBjcmFzaGVkOiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZW91dF9vcl9jcmFzaF90ZXN0cykKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiIp
CisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIiKQorICAgICAgICBzZWxmLl9wcmludF90ZXN0
X2xpc3RfdGltaW5nKCJUZXN0cyB0aGF0IHRpbWVkIG91dCBvciBjcmFzaGVkOiIsIHRpbWVvdXRf
b3JfY3Jhc2hfdGVzdHMpCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIiKQogCiAgICAgZGVm
IF9wcmludF90ZXN0X2xpc3RfdGltaW5nKHNlbGYsIHRpdGxlLCB0ZXN0X2xpc3QpOgotICAgICAg
ICAiIiJQcmludCB0aW1pbmcgaW5mbyBmb3IgZWFjaCB0ZXN0LgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgdGl0bGU6IHNlY3Rpb24gaGVhZGluZwotICAgICAgICAgIHRlc3RfbGlzdDogdGVz
dHMgdGhhdCBmYWxsIGluIHRoaXMgc2VjdGlvbgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2Vs
Zi5kaXNhYmxlZCgnc2xvd2VzdCcpOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2Vs
Zi5wcmludF90aW1pbmcodGl0bGUpCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKHRpdGxlKQog
ICAgICAgICBmb3IgdGVzdF90dXBsZSBpbiB0ZXN0X2xpc3Q6CiAgICAgICAgICAgICB0ZXN0X3J1
bl90aW1lID0gcm91bmQodGVzdF90dXBsZS50ZXN0X3J1bl90aW1lLCAxKQotICAgICAgICAgICAg
c2VsZi5wcmludF90aW1pbmcoIiAgJXMgdG9vayAlcyBzZWNvbmRzIiAlICh0ZXN0X3R1cGxlLnRl
c3RfbmFtZSwgdGVzdF9ydW5fdGltZSkpCisgICAgICAgICAgICBzZWxmLl9wcmludF9kZWJ1Zygi
ICAlcyB0b29rICVzIHNlY29uZHMiICUgKHRlc3RfdHVwbGUudGVzdF9uYW1lLCB0ZXN0X3J1bl90
aW1lKSkKIAogICAgIGRlZiBfcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3Moc2VsZiwgZGlyZWN0b3J5
X3Rlc3RfdGltaW5ncyk6Ci0gICAgICAgICIiIlByaW50IHRpbWluZyBpbmZvIGJ5IGRpcmVjdG9y
eSBmb3IgYW55IGRpcmVjdG9yaWVzIHRoYXQKLSAgICAgICAgdGFrZSA+IDEwIHNlY29uZHMgdG8g
cnVuLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgZGlyZWN0b3J5X3Rlc3RfdGltaW5nOiB0
aW1lIGluZm8gZm9yIGVhY2ggZGlyZWN0b3J5Ci0gICAgICAgICIiIgogICAgICAgICB0aW1pbmdz
ID0gW10KICAgICAgICAgZm9yIGRpcmVjdG9yeSBpbiBkaXJlY3RvcnlfdGVzdF90aW1pbmdzOgog
ICAgICAgICAgICAgbnVtX3Rlc3RzLCB0aW1lX2Zvcl9kaXJlY3RvcnkgPSBkaXJlY3RvcnlfdGVz
dF90aW1pbmdzW2RpcmVjdG9yeV0KLSAgICAgICAgICAgIHRpbWluZ3MuYXBwZW5kKChyb3VuZCh0
aW1lX2Zvcl9kaXJlY3RvcnksIDEpLCBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtX3Rlc3RzKSkKKyAgICAgICAgICAgIHRpbWluZ3MuYXBwZW5kKChyb3VuZCh0aW1l
X2Zvcl9kaXJlY3RvcnksIDEpLCBkaXJlY3RvcnksIG51bV90ZXN0cykpCiAgICAgICAgIHRpbWlu
Z3Muc29ydCgpCiAKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIlRpbWUgdG8gcHJvY2VzcyBz
bG93ZXN0IHN1YmRpcmVjdG9yaWVzOiIpCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCJUaW1l
IHRvIHByb2Nlc3Mgc2xvd2VzdCBzdWJkaXJlY3RvcmllczoiKQogICAgICAgICBtaW5fc2Vjb25k
c190b19wcmludCA9IDEwCiAgICAgICAgIGZvciB0aW1pbmcgaW4gdGltaW5nczoKICAgICAgICAg
ICAgIGlmIHRpbWluZ1swXSA+IG1pbl9zZWNvbmRzX3RvX3ByaW50OgotICAgICAgICAgICAgICAg
IHNlbGYucHJpbnRfdGltaW5nKAotICAgICAgICAgICAgICAgICAgICAiICAlcyB0b29rICVzIHNl
Y29uZHMgdG8gcnVuICVzIHRlc3RzLiIgJSAodGltaW5nWzFdLAotICAgICAgICAgICAgICAgICAg
ICB0aW1pbmdbMF0sIHRpbWluZ1syXSkpCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIiKQor
ICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIgICVzIHRvb2sgJXMgc2Vjb25kcyB0
byBydW4gJXMgdGVzdHMuIiAlICh0aW1pbmdbMV0sIHRpbWluZ1swXSwgdGltaW5nWzJdKSkKKyAg
ICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCiAKICAgICBkZWYgX3ByaW50X3N0YXRpc3RpY3Nf
Zm9yX3Rlc3RfdGltaW5ncyhzZWxmLCB0aXRsZSwgdGltaW5ncyk6Ci0gICAgICAgICIiIlByaW50
cyB0aGUgbWVkaWFuLCBtZWFuIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhlIHZhbHVlcyBp
bgotICAgICAgICB0aW1pbmdzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdGl0bGU6IFRp
dGxlIGZvciB0aGVzZSB0aW1pbmdzLgotICAgICAgICAgIHRpbWluZ3M6IEEgbGlzdCBvZiBmbG9h
dHMgcmVwcmVzZW50aW5nIHRpbWVzLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5wcmludF90
aW1pbmcodGl0bGUpCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKHRpdGxlKQogICAgICAgICB0
aW1pbmdzLnNvcnQoKQogCiAgICAgICAgIG51bV90ZXN0cyA9IGxlbih0aW1pbmdzKQpAQCAtMzQ1
LDE5ICsyNTIsMTcgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAgc3VtX29m
X2RldmlhdGlvbnMgPSBtYXRoLnBvdyh0aW1pbmcgLSBtZWFuLCAyKQogCiAgICAgICAgIHN0ZF9k
ZXZpYXRpb24gPSBtYXRoLnNxcnQoc3VtX29mX2RldmlhdGlvbnMgLyBudW1fdGVzdHMpCi0gICAg
ICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIE1lZGlhbjogICAgICAgICAgJTYuM2YiICUgbWVkaWFu
KQotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICBNZWFuOiAgICAgICAgICAgICU2LjNmIiAl
IG1lYW4pCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIDkwdGggcGVyY2VudGlsZTogJTYu
M2YiICUgcGVyY2VudGlsZTkwKQotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICA5OXRoIHBl
cmNlbnRpbGU6ICU2LjNmIiAlIHBlcmNlbnRpbGU5OSkKLSAgICAgICAgc2VsZi5wcmludF90aW1p
bmcoIiAgU3RhbmRhcmQgZGV2OiAgICAlNi4zZiIgJSBzdGRfZGV2aWF0aW9uKQotICAgICAgICBz
ZWxmLnByaW50X3RpbWluZygiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAgTWVkaWFu
OiAgICAgICAgICAlNi4zZiIgJSBtZWRpYW4pCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIg
IE1lYW46ICAgICAgICAgICAgJTYuM2YiICUgbWVhbikKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVi
dWcoIiAgOTB0aCBwZXJjZW50aWxlOiAlNi4zZiIgJSBwZXJjZW50aWxlOTApCisgICAgICAgIHNl
bGYuX3ByaW50X2RlYnVnKCIgIDk5dGggcGVyY2VudGlsZTogJTYuM2YiICUgcGVyY2VudGlsZTk5
KQorICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICBTdGFuZGFyZCBkZXY6ICAgICU2LjNmIiAl
IHN0ZF9kZXZpYXRpb24pCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIiKQogCiAgICAgZGVm
IF9wcmludF9yZXN1bHRfc3VtbWFyeShzZWxmLCByZXN1bHRfc3VtbWFyeSk6Ci0gICAgICAgICIi
IlByaW50IGEgc2hvcnQgc3VtbWFyeSBhYm91dCBob3cgbWFueSB0ZXN0cyBwYXNzZWQuCisgICAg
ICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmRlYnVnX3J3dF9sb2dnaW5nOgorICAgICAgICAgICAg
cmV0dXJuCiAKLSAgICAgICAgQXJnczoKLSAgICAgICAgICByZXN1bHRfc3VtbWFyeTogaW5mb3Jt
YXRpb24gdG8gbG9nCi0gICAgICAgICIiIgogICAgICAgICBmYWlsZWQgPSByZXN1bHRfc3VtbWFy
eS50b3RhbF9mYWlsdXJlcwogICAgICAgICB0b3RhbCA9IHJlc3VsdF9zdW1tYXJ5LnRvdGFsIC0g
cmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMKICAgICAgICAgcGFzc2VkID0gdG90YWwgLSBm
YWlsZWQgLSByZXN1bHRfc3VtbWFyeS5yZW1haW5pbmcKQEAgLTM2NSwzNCArMjcwLDIyIEBAIGNs
YXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgaWYgdG90YWwgPiAwOgogICAgICAgICAgICAg
cGN0X3Bhc3NlZCA9IGZsb2F0KHBhc3NlZCkgKiAxMDAgLyB0b3RhbAogCi0gICAgICAgIHNlbGYu
cHJpbnRfYWN0dWFsKCIiKQotICAgICAgICBzZWxmLnByaW50X2FjdHVhbCgiPT4gUmVzdWx0czog
JWQvJWQgdGVzdHMgcGFzc2VkICglLjFmJSUpIiAlCi0gICAgICAgICAgICAgICAgICAgICAocGFz
c2VkLCB0b3RhbCwgcGN0X3Bhc3NlZCkpCi0gICAgICAgIHNlbGYucHJpbnRfYWN0dWFsKCIiKQot
ICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFyeSwK
LSAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLk5PVywgIlRlc3RzIHRvIGJlIGZpeGVkIikK
KyAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiPT4gUmVzdWx0czogJWQvJWQgdGVzdHMgcGFz
c2VkICglLjFmJSUpIiAlIChwYXNzZWQsIHRvdGFsLCBwY3RfcGFzc2VkKSkKKyAgICAgICAgc2Vs
Zi5fcHJpbnRfZm9yX2JvdCgiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlf
ZW50cnkocmVzdWx0X3N1bW1hcnksIHRlc3RfZXhwZWN0YXRpb25zLk5PVywgIlRlc3RzIHRvIGJl
IGZpeGVkIikKIAotICAgICAgICBzZWxmLnByaW50X2FjdHVhbCgiIikKKyAgICAgICAgc2VsZi5f
cHJpbnRfZm9yX2JvdCgiIikKICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGJlIHNraXBwaW5n
IGFueXRoaW5nIG1hcmtlZCBXT05URklYLCBzbyB3ZSBzaG91bGRuJ3QgYm90aGVyIGxvZ2dpbmcg
dGhlc2Ugc3RhdHMuCi0gICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHJl
c3VsdF9zdW1tYXJ5LAotICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuV09OVEZJWCwKKyAg
ICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkocmVzdWx0X3N1bW1hcnksIHRl
c3RfZXhwZWN0YXRpb25zLldPTlRGSVgsCiAgICAgICAgICAgICAiVGVzdHMgdGhhdCB3aWxsIG9u
bHkgYmUgZml4ZWQgaWYgdGhleSBjcmFzaCAoV09OVEZJWCkiKQotICAgICAgICBzZWxmLnByaW50
X2FjdHVhbCgiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiIikKIAotICAgIGRlZiBf
cHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkoc2VsZiwgcmVzdWx0X3N1bW1hcnksIHRpbWVsaW5l
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZyk6Ci0gICAgICAg
ICIiIlByaW50IGEgc3VtbWFyeSBibG9jayBvZiByZXN1bHRzIGZvciBhIHBhcnRpY3VsYXIgdGlt
ZWxpbmUgb2YgdGVzdC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5
OiBzdW1tYXJ5IHRvIHByaW50IHJlc3VsdHMgZm9yCi0gICAgICAgICAgdGltZWxpbmU6IHRoZSB0
aW1lbGluZSB0byBwcmludCByZXN1bHRzIGZvciAoTk9XLCBXT05URklYLCBldGMuKQotICAgICAg
ICAgIGhlYWRpbmc6IGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUgdGltZWxpbmUKLSAgICAg
ICAgIiIiCisgICAgZGVmIF9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShzZWxmLCByZXN1bHRf
c3VtbWFyeSwgdGltZWxpbmUsIGhlYWRpbmcpOgogICAgICAgICB0b3RhbCA9IGxlbihyZXN1bHRf
c3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0pCiAgICAgICAgIG5vdF9wYXNzaW5n
ID0gKHRvdGFsIC0KICAgICAgICAgICAgbGVuKHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X2V4cGVj
dGF0aW9uW3Rlc3RfZXhwZWN0YXRpb25zLlBBU1NdICYKICAgICAgICAgICAgICAgIHJlc3VsdF9z
dW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkpCi0gICAgICAgIHNlbGYucHJpbnRf
YWN0dWFsKCI9PiAlcyAoJWQpOiIgJSAoaGVhZGluZywgbm90X3Bhc3NpbmcpKQorICAgICAgICBz
ZWxmLl9wcmludF9mb3JfYm90KCI9PiAlcyAoJWQpOiIgJSAoaGVhZGluZywgbm90X3Bhc3Npbmcp
KQogCiAgICAgICAgIGZvciByZXN1bHQgaW4gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9P
UkRFUjoKICAgICAgICAgICAgIGlmIHJlc3VsdCBpbiAodGVzdF9leHBlY3RhdGlvbnMuUEFTUywg
dGVzdF9leHBlY3RhdGlvbnMuU0tJUCk6CkBAIC00MDIsMTAyICsyOTUsNTQgQEAgY2xhc3MgUHJp
bnRlcihvYmplY3QpOgogICAgICAgICAgICAgZGVzYyA9IFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNU
QVRJT05fREVTQ1JJUFRJT05TW3Jlc3VsdF0KICAgICAgICAgICAgIGlmIG5vdF9wYXNzaW5nIGFu
ZCBsZW4ocmVzdWx0cyk6CiAgICAgICAgICAgICAgICAgcGN0ID0gbGVuKHJlc3VsdHMpICogMTAw
LjAgLyBub3RfcGFzc2luZwotICAgICAgICAgICAgICAgIHNlbGYucHJpbnRfYWN0dWFsKCIgICU1
ZCAlLTI0cyAoJTQuMWYlJSkiICUKLSAgICAgICAgICAgICAgICAgICAgKGxlbihyZXN1bHRzKSwg
ZGVzY1tsZW4ocmVzdWx0cykgIT0gMV0sIHBjdCkpCi0KLQotICAgIGRlZiBwcmludF9hY3R1YWwo
c2VsZiwgbXNnKToKLSAgICAgICAgaWYgc2VsZi5kaXNhYmxlZCgnYWN0dWFsJyk6Ci0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtLndyaXRlKCIlc1xuIiAl
IG1zZykKLQotICAgIGRlZiBfcHJpbnRfY29uZmlnKHNlbGYsIG1zZyk6Ci0gICAgICAgIHNlbGYu
d3JpdGUobXNnLCAnY29uZmlnJykKLQotICAgIGRlZiBfcHJpbnRfZXhwZWN0ZWQoc2VsZiwgbXNn
KToKLSAgICAgICAgc2VsZi53cml0ZShtc2csICdleHBlY3RlZCcpCi0KLSAgICBkZWYgcHJpbnRf
dGltaW5nKHNlbGYsIG1zZyk6Ci0gICAgICAgIHNlbGYud3JpdGUobXNnLCAndGltaW5nJykKLQot
ICAgIGRlZiBwcmludF9vbmVfbGluZV9zdW1tYXJ5KHNlbGYsIHRvdGFsLCBleHBlY3RlZCwgdW5l
eHBlY3RlZCk6Ci0gICAgICAgICIiIlByaW50IGEgb25lLWxpbmUgc3VtbWFyeSBvZiB0aGUgdGVz
dCBydW4gdG8gc3Rkb3V0LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdG90YWw6IHRvdGFs
IG51bWJlciBvZiB0ZXN0cyBydW4KLSAgICAgICAgICBleHBlY3RlZDogbnVtYmVyIG9mIGV4cGVj
dGVkIHJlc3VsdHMKLSAgICAgICAgICB1bmV4cGVjdGVkOiBudW1iZXIgb2YgdW5leHBlY3RlZCBy
ZXN1bHRzCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLmRpc2FibGVkKCdvbmUtbGluZS1z
dW1tYXJ5Jyk6Ci0gICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICBzZWxmLl9wcmlu
dF9mb3JfYm90KCIgICU1ZCAlLTI0cyAoJTQuMWYlJSkiICUgKGxlbihyZXN1bHRzKSwgZGVzY1ts
ZW4ocmVzdWx0cykgIT0gMV0sIHBjdCkpCiAKKyAgICBkZWYgX3ByaW50X29uZV9saW5lX3N1bW1h
cnkoc2VsZiwgdG90YWwsIGV4cGVjdGVkLCB1bmV4cGVjdGVkKToKICAgICAgICAgaW5jb21wbGV0
ZSA9IHRvdGFsIC0gZXhwZWN0ZWQgLSB1bmV4cGVjdGVkCiAgICAgICAgIGluY29tcGxldGVfc3Ry
ID0gJycKICAgICAgICAgaWYgaW5jb21wbGV0ZToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlKCIi
KQorICAgICAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgiIikKICAgICAgICAgICAgIGluY29t
cGxldGVfc3RyID0gIiAoJWQgZGlkbid0IHJ1bikiICUgaW5jb21wbGV0ZQogCiAgICAgICAgIGlm
IHVuZXhwZWN0ZWQgPT0gMDoKICAgICAgICAgICAgIGlmIGV4cGVjdGVkID09IHRvdGFsOgogICAg
ICAgICAgICAgICAgIGlmIGV4cGVjdGVkID4gMToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
d3JpdGUoIkFsbCAlZCB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQuIiAlIGV4cGVjdGVkKQorICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCJBbGwgJWQgdGVzdHMgcmFuIGFzIGV4
cGVjdGVkLiIgJSBleHBlY3RlZCkKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl93cml0ZSgiVGhlIHRlc3QgcmFuIGFzIGV4cGVjdGVkLiIpCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoIlRoZSB0ZXN0IHJhbiBhcyBleHBlY3Rl
ZC4iKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZSgiJXMg
cmFuIGFzIGV4cGVjdGVkJXMuIiAlIChncmFtbWFyLnBsdXJhbGl6ZSgndGVzdCcsIGV4cGVjdGVk
KSwgaW5jb21wbGV0ZV9zdHIpKQorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQo
IiVzIHJhbiBhcyBleHBlY3RlZCVzLiIgJSAoZ3JhbW1hci5wbHVyYWxpemUoJ3Rlc3QnLCBleHBl
Y3RlZCksIGluY29tcGxldGVfc3RyKSkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYu
X3dyaXRlKCIlcyByYW4gYXMgZXhwZWN0ZWQsICVkIGRpZG4ndCVzOiIgJSAoZ3JhbW1hci5wbHVy
YWxpemUoJ3Rlc3QnLCBleHBlY3RlZCksIHVuZXhwZWN0ZWQsIGluY29tcGxldGVfc3RyKSkKLSAg
ICAgICAgc2VsZi5fd3JpdGUoIiIpCisgICAgICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCIl
cyByYW4gYXMgZXhwZWN0ZWQsICVkIGRpZG4ndCVzOiIgJSAoZ3JhbW1hci5wbHVyYWxpemUoJ3Rl
c3QnLCBleHBlY3RlZCksIHVuZXhwZWN0ZWQsIGluY29tcGxldGVfc3RyKSkKKyAgICAgICAgc2Vs
Zi5fcHJpbnRfZGVmYXVsdCgiIikKIAogICAgIGRlZiBwcmludF9maW5pc2hlZF90ZXN0KHNlbGYs
IHJlc3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIsIGdvdF9zdHIsIHJlc3VsdF9zdW1tYXJ5LCByZXRy
eWluZywgdGVzdF9maWxlc19saXN0KToKLSAgICAgICAgc2VsZi5wcmludF90ZXN0X3Jlc3VsdChy
ZXN1bHQsIGV4cGVjdGVkLCBleHBfc3RyLCBnb3Rfc3RyKQotICAgICAgICBzZWxmLnByaW50X3By
b2dyZXNzKHJlc3VsdF9zdW1tYXJ5LCByZXRyeWluZywgdGVzdF9maWxlc19saXN0KQotCi0gICAg
ZGVmIHByaW50X3Rlc3RfcmVzdWx0KHNlbGYsIHJlc3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIsIGdv
dF9zdHIpOgotICAgICAgICAiIiJQcmludCB0aGUgcmVzdWx0IG9mIHRoZSB0ZXN0IGFzIGRldGVy
bWluZWQgYnkgLS1wcmludC4KLQotICAgICAgICBUaGlzIHJvdXRpbmUgaXMgdXNlZCB0byBwcmlu
dCB0aGUgZGV0YWlscyBvZiBlYWNoIHRlc3QgYXMgaXQgY29tcGxldGVzLgotCi0gICAgICAgIEFy
Z3M6Ci0gICAgICAgICAgICByZXN1bHQgICAtIFRoZSBhY3R1YWwgVGVzdFJlc3VsdCBvYmplY3QK
LSAgICAgICAgICAgIGV4cGVjdGVkIC0gV2hldGhlciB0aGUgcmVzdWx0IHdlIGdvdCB3YXMgYW4g
ZXhwZWN0ZWQgcmVzdWx0Ci0gICAgICAgICAgICBleHBfc3RyICAtIFdoYXQgd2UgZXhwZWN0ZWQg
dG8gZ2V0ICh1c2VkIGZvciB0cmFjaW5nKQotICAgICAgICAgICAgZ290X3N0ciAgLSBXaGF0IHdl
IGFjdHVhbGx5IGdvdCAodXNlZCBmb3IgdHJhY2luZykKLQotICAgICAgICBOb3RlIHRoYXQgd2Ug
bmVlZCBhbGwgb2YgdGhlc2UgYXJndW1lbnRzIGV2ZW4gdGhvdWdoIHRoZXkgc2VlbQotICAgICAg
ICBzb21ld2hhdCByZWR1bmRhbnQsIGluIG9yZGVyIHRvIGtlZXAgdGhpcyByb3V0aW5lIGZyb20g
aGF2aW5nIHRvCi0gICAgICAgIGtub3duIGFueXRoaW5nIGFib3V0IHRoZSBzZXQgb2YgZXhwZWN0
YXRpb25zLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgKHNlbGYuZW5hYmxlZCgndHJhY2UtZXZl
cnl0aGluZycpIG9yCi0gICAgICAgICAgICBzZWxmLmVuYWJsZWQoJ3RyYWNlLXVuZXhwZWN0ZWQn
KSBhbmQgbm90IGV4cGVjdGVkKToKKyAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF9yZXN1bHQocmVz
dWx0LCBleHBlY3RlZCwgZXhwX3N0ciwgZ290X3N0cikKKyAgICAgICAgc2VsZi5fcHJpbnRfcHJv
Z3Jlc3MocmVzdWx0X3N1bW1hcnksIHJldHJ5aW5nLCB0ZXN0X2ZpbGVzX2xpc3QpCisKKyAgICBk
ZWYgX3ByaW50X3Rlc3RfcmVzdWx0KHNlbGYsIHJlc3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIsIGdv
dF9zdHIpOgorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmRldGFpbHM6CiAgICAgICAgICAgICBz
ZWxmLl9wcmludF90ZXN0X3RyYWNlKHJlc3VsdCwgZXhwX3N0ciwgZ290X3N0cikKLSAgICAgICAg
ZWxpZiBub3QgZXhwZWN0ZWQgYW5kIHNlbGYuZW5hYmxlZCgndW5leHBlY3RlZCcpOgorICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRfdW5leHBlY3RlZF90ZXN0X3Jlc3VsdChy
ZXN1bHQpCiAKICAgICBkZWYgX3ByaW50X3Rlc3RfdHJhY2Uoc2VsZiwgcmVzdWx0LCBleHBfc3Ry
LCBnb3Rfc3RyKToKLSAgICAgICAgIiIiUHJpbnQgZGV0YWlsZWQgcmVzdWx0cyBvZiBhIHRlc3Qg
KHRyaWdnZXJlZCBieSAtLXByaW50IHRyYWNlLSopLgotICAgICAgICBGb3IgZWFjaCB0ZXN0LCBw
cmludDoKLSAgICAgICAgICAgLSBsb2NhdGlvbiBvZiB0aGUgZXhwZWN0ZWQgYmFzZWxpbmVzCi0g
ICAgICAgICAgIC0gZXhwZWN0ZWQgcmVzdWx0cwotICAgICAgICAgICAtIGFjdHVhbCByZXN1bHQK
LSAgICAgICAgICAgLSB0aW1pbmcgaW5mbwotICAgICAgICAiIiIKICAgICAgICAgdGVzdF9uYW1l
ID0gcmVzdWx0LnRlc3RfbmFtZQotICAgICAgICBzZWxmLl93cml0ZSgndHJhY2U6ICVzJyAlIHRl
c3RfbmFtZSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgndHJhY2U6ICVzJyAlIHRlc3Rf
bmFtZSkKIAogICAgICAgICBiYXNlID0gc2VsZi5fcG9ydC5sb29rdXBfdmlydHVhbF90ZXN0X2Jh
c2UodGVzdF9uYW1lKQogICAgICAgICBpZiBiYXNlOgogICAgICAgICAgICAgYXJncyA9ICcgJy5q
b2luKHNlbGYuX3BvcnQubG9va3VwX3ZpcnR1YWxfdGVzdF9hcmdzKHRlc3RfbmFtZSkpCi0gICAg
ICAgICAgICBzZWxmLl93cml0ZSgnIGJhc2U6ICVzJyAlIGJhc2UpCi0gICAgICAgICAgICBzZWxm
Ll93cml0ZSgnIGFyZ3M6ICVzJyAlIGFyZ3MpCisgICAgICAgICAgICBzZWxmLl9wcmludF9kZWZh
dWx0KCcgYmFzZTogJXMnICUgYmFzZSkKKyAgICAgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQo
JyBhcmdzOiAlcycgJSBhcmdzKQogCiAgICAgICAgIGZvciBleHRlbnNpb24gaW4gKCcudHh0Jywg
Jy5wbmcnLCAnLndhdicsICcud2ViYXJjaGl2ZScpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRf
YmFzZWxpbmUodGVzdF9uYW1lLCBleHRlbnNpb24pCiAKLSAgICAgICAgc2VsZi5fd3JpdGUoJyAg
ZXhwOiAlcycgJSBleHBfc3RyKQotICAgICAgICBzZWxmLl93cml0ZSgnICBnb3Q6ICVzJyAlIGdv
dF9zdHIpCi0gICAgICAgIHNlbGYuX3dyaXRlKCcgdG9vazogJS0uM2YnICUgcmVzdWx0LnRlc3Rf
cnVuX3RpbWUpCi0gICAgICAgIHNlbGYuX3dyaXRlKCcnKQorICAgICAgICBzZWxmLl9wcmludF9k
ZWZhdWx0KCcgIGV4cDogJXMnICUgZXhwX3N0cikKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVs
dCgnICBnb3Q6ICVzJyAlIGdvdF9zdHIpCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoJyB0
b29rOiAlLS4zZicgJSByZXN1bHQudGVzdF9ydW5fdGltZSkKKyAgICAgICAgc2VsZi5fcHJpbnRf
ZGVmYXVsdCgnJykKIAogICAgIGRlZiBfcHJpbnRfYmFzZWxpbmUoc2VsZiwgdGVzdF9uYW1lLCBl
eHRlbnNpb24pOgogICAgICAgICBiYXNlbGluZSA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5h
bWUodGVzdF9uYW1lLCBleHRlbnNpb24pCkBAIC01MDUsMTggKzM1MCwxNSBAQCBjbGFzcyBQcmlu
dGVyKG9iamVjdCk6CiAgICAgICAgICAgICByZWxwYXRoID0gc2VsZi5fcG9ydC5yZWxhdGl2ZV90
ZXN0X2ZpbGVuYW1lKGJhc2VsaW5lKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmVscGF0
aCA9ICc8bm9uZT4nCi0gICAgICAgIHNlbGYuX3dyaXRlKCcgICVzOiAlcycgJSAoZXh0ZW5zaW9u
WzE6XSwgcmVscGF0aCkpCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoJyAgJXM6ICVzJyAl
IChleHRlbnNpb25bMTpdLCByZWxwYXRoKSkKIAogICAgIGRlZiBfcHJpbnRfdW5leHBlY3RlZF90
ZXN0X3Jlc3VsdChzZWxmLCByZXN1bHQpOgogICAgICAgICAiIiJQcmludHMgb25lIHVuZXhwZWN0
ZWQgdGVzdCByZXN1bHQgbGluZS4iIiIKICAgICAgICAgZGVzYyA9IFRlc3RFeHBlY3RhdGlvbnMu
RVhQRUNUQVRJT05fREVTQ1JJUFRJT05TW3Jlc3VsdC50eXBlXVswXQotICAgICAgICBzZWxmLndy
aXRlKCIgICVzIC0+IHVuZXhwZWN0ZWQgJXMiICUgKHJlc3VsdC50ZXN0X25hbWUsIGRlc2MpLCAi
dW5leHBlY3RlZCIpCisgICAgICAgIHNlbGYuX3ByaW50X3F1aWV0KCIgICVzIC0+IHVuZXhwZWN0
ZWQgJXMiICUgKHJlc3VsdC50ZXN0X25hbWUsIGRlc2MpKQogCi0gICAgZGVmIHByaW50X3Byb2dy
ZXNzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeWluZywgdGVzdF9saXN0KToKKyAgICBkZWYg
X3ByaW50X3Byb2dyZXNzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeWluZywgdGVzdF9saXN0
KToKICAgICAgICAgIiIiUHJpbnQgcHJvZ3Jlc3MgdGhyb3VnaCB0aGUgdGVzdHMgYXMgZGV0ZXJt
aW5lZCBieSAtLXByaW50LiIiIgotICAgICAgICBpZiBzZWxmLmRpc2FibGVkKCdvbmUtbGluZS1w
cm9ncmVzcycpOgotICAgICAgICAgICAgcmV0dXJuCi0KICAgICAgICAgaWYgcmVzdWx0X3N1bW1h
cnkucmVtYWluaW5nID09IDA6CiAgICAgICAgICAgICBzZWxmLl9tZXRlci53cml0ZV91cGRhdGUo
JycpCiAgICAgICAgICAgICByZXR1cm4KQEAgLTUzMSwxMSArMzczLDggQEAgY2xhc3MgUHJpbnRl
cihvYmplY3QpOgogICAgICAgICAgICAgKGFjdGlvbiwgcGVyY2VudF9jb21wbGV0ZSwgcmVzdWx0
X3N1bW1hcnkuZXhwZWN0ZWQsCiAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkudW5leHBlY3Rl
ZCwgcmVzdWx0X3N1bW1hcnkucmVtYWluaW5nKSkKIAotICAgIGRlZiBwcmludF91bmV4cGVjdGVk
X3Jlc3VsdHMoc2VsZiwgdW5leHBlY3RlZF9yZXN1bHRzKToKLSAgICAgICAgIiIiUHJpbnRzIGEg
bGlzdCBvZiB0aGUgdW5leHBlY3RlZCByZXN1bHRzIHRvIHRoZSBidWlsZGJvdCBzdHJlYW0uIiIi
Ci0gICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ3VuZXhwZWN0ZWQtcmVzdWx0cycpOgotICAgICAg
ICAgICAgcmV0dXJuCi0KKyAgICBkZWYgX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyhzZWxmLCB1
bmV4cGVjdGVkX3Jlc3VsdHMpOgorICAgICAgICAjIFByaW50cyB0byB0aGUgYnVpbGRib3Qgc3Ry
ZWFtCiAgICAgICAgIHBhc3NlcyA9IHt9CiAgICAgICAgIGZsYWt5ID0ge30KICAgICAgICAgcmVn
cmVzc2lvbnMgPSB7fQpAQCAtNTQ4LDE3ICszODcsMTEgQEAgY2xhc3MgUHJpbnRlcihvYmplY3Qp
OgogICAgICAgICAgICAgZXhwZWN0ZWQgPSByZXN1bHRzWydleHBlY3RlZCddLnNwbGl0KCIgIikK
ICAgICAgICAgICAgIGlmIGFjdHVhbCA9PSBbJ1BBU1MnXToKICAgICAgICAgICAgICAgICBpZiAn
Q1JBU0gnIGluIGV4cGVjdGVkOgotICAgICAgICAgICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9s
aXN0cyhwYXNzZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdF
eHBlY3RlZCB0byBjcmFzaCwgYnV0IHBhc3NlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3QpCisgICAgICAgICAgICAgICAgICAgIGFkZF90b19kaWN0X29m
X2xpc3RzKHBhc3NlcywgJ0V4cGVjdGVkIHRvIGNyYXNoLCBidXQgcGFzc2VkJywgdGVzdCkKICAg
ICAgICAgICAgICAgICBlbGlmICdUSU1FT1VUJyBpbiBleHBlY3RlZDoKLSAgICAgICAgICAgICAg
ICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMocGFzc2VzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgdG8gdGltZW91dCwgYnV0IHBhc3NlZCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0KQorICAgICAgICAg
ICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9saXN0cyhwYXNzZXMsICdFeHBlY3RlZCB0byB0aW1l
b3V0LCBidXQgcGFzc2VkJywgdGVzdCkKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9saXN0cyhwYXNzZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdFeHBlY3RlZCB0byBmYWlsLCBidXQgcGFzc2VkJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCkKKyAgICAgICAg
ICAgICAgICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMocGFzc2VzLCAnRXhwZWN0ZWQgdG8gZmFp
bCwgYnV0IHBhc3NlZCcsIHRlc3QpCiAgICAgICAgICAgICBlbGlmIGxlbihhY3R1YWwpID4gMToK
ICAgICAgICAgICAgICAgICAjIFdlIGdyb3VwIGZsYWt5IHRlc3RzIGJ5IHRoZSBmaXJzdCBhY3R1
YWwgcmVzdWx0IHdlIGdvdC4KICAgICAgICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9saXN0cyhm
bGFreSwgYWN0dWFsWzBdLCB0ZXN0KQpAQCAtNTY4LDIzICs0MDEsMjEgQEAgY2xhc3MgUHJpbnRl
cihvYmplY3QpOgogICAgICAgICByZXN1bHRzanNvbnBhcnNlci5mb3JfZWFjaF90ZXN0KHVuZXhw
ZWN0ZWRfcmVzdWx0c1sndGVzdHMnXSwgYWRkX3Jlc3VsdCkKIAogICAgICAgICBpZiBsZW4ocGFz
c2VzKSBvciBsZW4oZmxha3kpIG9yIGxlbihyZWdyZXNzaW9ucyk6Ci0gICAgICAgICAgICBzZWxm
Ll9idWlsZGJvdF9zdHJlYW0ud3JpdGUoIlxuIikKLQorICAgICAgICAgICAgc2VsZi5fcHJpbnRf
Zm9yX2JvdCgiXG4iKQogICAgICAgICBpZiBsZW4ocGFzc2VzKToKICAgICAgICAgICAgIGZvciBr
ZXksIHRlc3RzIGluIHBhc3Nlcy5pdGVyaXRlbXMoKToKLSAgICAgICAgICAgICAgICBzZWxmLl9i
dWlsZGJvdF9zdHJlYW0ud3JpdGUoIiVzOiAoJWQpXG4iICUgKGtleSwgbGVuKHRlc3RzKSkpCisg
ICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiJXM6ICglZCkiICUgKGtleSwgbGVu
KHRlc3RzKSkpCiAgICAgICAgICAgICAgICAgdGVzdHMuc29ydCgpCiAgICAgICAgICAgICAgICAg
Zm9yIHRlc3QgaW4gdGVzdHM6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0
cmVhbS53cml0ZSgiICAlc1xuIiAlIHRlc3QpCi0gICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRi
b3Rfc3RyZWFtLndyaXRlKCJcbiIpCi0gICAgICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0u
d3JpdGUoIlxuIikKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiICAl
cyIgJSB0ZXN0KQorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiIpCisgICAg
ICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQogCiAgICAgICAgIGlmIGxlbihmbGFreSk6
CiAgICAgICAgICAgICBkZXNjcmlwdGlvbnMgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9O
X0RFU0NSSVBUSU9OUwogICAgICAgICAgICAgZm9yIGtleSwgdGVzdHMgaW4gZmxha3kuaXRlcml0
ZW1zKCk6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RB
VElPTlNba2V5Lmxvd2VyKCldCi0gICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFt
LndyaXRlKCJVbmV4cGVjdGVkIGZsYWtpbmVzczogJXMgKCVkKVxuIgotICAgICAgICAgICAgICAg
ICAgICAlIChkZXNjcmlwdGlvbnNbcmVzdWx0XVsxXSwgbGVuKHRlc3RzKSkpCisgICAgICAgICAg
ICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiVW5leHBlY3RlZCBmbGFraW5lc3M6ICVzICglZClc
biIgJSAoZGVzY3JpcHRpb25zW3Jlc3VsdF1bMV0sIGxlbih0ZXN0cykpKQogICAgICAgICAgICAg
ICAgIHRlc3RzLnNvcnQoKQogCiAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6CkBA
IC01OTMsNDEgKzQyNCw0MiBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICAg
ICAgICAgIGV4cGVjdGVkID0gcmVzdWx0WydleHBlY3RlZCddLnNwbGl0KCIgIikKICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTlNba2V5Lmxv
d2VyKCldCiAgICAgICAgICAgICAgICAgICAgIG5ld19leHBlY3RhdGlvbnNfbGlzdCA9IGxpc3Qo
c2V0KGFjdHVhbCkgfCBzZXQoZXhwZWN0ZWQpKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9i
dWlsZGJvdF9zdHJlYW0ud3JpdGUoIiAgJXMgPSAlc1xuIiAlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAodGVzdCwgIiAiLmpvaW4obmV3X2V4cGVjdGF0aW9uc19saXN0KSkpCi0gICAgICAgICAg
ICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtLndyaXRlKCJcbiIpCi0gICAgICAgICAgICBzZWxm
Ll9idWlsZGJvdF9zdHJlYW0ud3JpdGUoIlxuIikKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5f
cHJpbnRfZm9yX2JvdCgiICAlcyA9ICVzXG4iICUgKHRlc3QsICIgIi5qb2luKG5ld19leHBlY3Rh
dGlvbnNfbGlzdCkpKQorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIlxuIikK
KyAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIlxuIikKIAogICAgICAgICBpZiBsZW4o
cmVncmVzc2lvbnMpOgogICAgICAgICAgICAgZGVzY3JpcHRpb25zID0gVGVzdEV4cGVjdGF0aW9u
cy5FWFBFQ1RBVElPTl9ERVNDUklQVElPTlMKICAgICAgICAgICAgIGZvciBrZXksIHRlc3RzIGlu
IHJlZ3Jlc3Npb25zLml0ZXJpdGVtcygpOgogICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRlc3RF
eHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TW2tleS5sb3dlcigpXQotICAgICAgICAgICAgICAgIHNl
bGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgKLSAgICAgICAgICAgICAgICAgICAgIlJlZ3Jlc3Np
b25zOiBVbmV4cGVjdGVkICVzIDogKCVkKVxuIiAlICgKLSAgICAgICAgICAgICAgICAgICAgZGVz
Y3JpcHRpb25zW3Jlc3VsdF1bMV0sIGxlbih0ZXN0cykpKQorICAgICAgICAgICAgICAgIHNlbGYu
X3ByaW50X2Zvcl9ib3QoIlJlZ3Jlc3Npb25zOiBVbmV4cGVjdGVkICVzIDogKCVkKVxuIiAlIChk
ZXNjcmlwdGlvbnNbcmVzdWx0XVsxXSwgbGVuKHRlc3RzKSkpCiAgICAgICAgICAgICAgICAgdGVz
dHMuc29ydCgpCiAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgiICAlcyA9ICVzXG4iICUgKHRl
c3QsIGtleSkpCi0gICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtLndyaXRlKCJc
biIpCi0gICAgICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUoIlxuIikKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiICAlcyA9ICVzXG4iICUgKHRlc3Qs
IGtleSkpCisgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiXG4iKQorICAgICAg
ICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiXG4iKQogCiAgICAgICAgIGlmIGxlbih1bmV4cGVj
dGVkX3Jlc3VsdHNbJ3Rlc3RzJ10pIGFuZCBzZWxmLl9vcHRpb25zLmRlYnVnX3J3dF9sb2dnaW5n
OgotICAgICAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtLndyaXRlKCIlc1xuIiAlICgiLSIg
KiA3OCkpCisgICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIlc1xuIiAlICgiLSIgKiA3
OCkpCiAKLSAgICBkZWYgd3JpdGVfdXBkYXRlKHNlbGYsIG1zZyk6Ci0gICAgICAgIGlmIHNlbGYu
ZGlzYWJsZWQoJ3VwZGF0ZXMnKToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLl9t
ZXRlci53cml0ZV91cGRhdGUobXNnKQorICAgIGRlZiBfcHJpbnRfcXVpZXQoc2VsZiwgbXNnKToK
KyAgICAgICAgc2VsZi53cml0ZWxuKG1zZykKIAotICAgIGRlZiB3cml0ZShzZWxmLCBtc2csIG9w
dGlvbj0ibWlzYyIpOgotICAgICAgICBpZiBzZWxmLmRpc2FibGVkKG9wdGlvbik6Ci0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5fd3JpdGUobXNnKQorICAgIGRlZiBfcHJpbnRfZGVm
YXVsdChzZWxmLCBtc2cpOgorICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5xdWlldDoKKyAg
ICAgICAgICAgIHNlbGYud3JpdGVsbihtc2cpCisKKyAgICBkZWYgX3ByaW50X2RlYnVnKHNlbGYs
IG1zZyk6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZGVidWdfcnd0X2xvZ2dpbmc6CisgICAg
ICAgICAgICBzZWxmLndyaXRlbG4obXNnKQorCisgICAgZGVmIF9wcmludF9mb3JfYm90KHNlbGYs
IG1zZyk6CisgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZShtc2cgKyAiXG4iKQog
Ci0gICAgZGVmIHdyaXRlbG4oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5f
bWV0ZXIud3JpdGVsbigqYXJncywgKiprd2FyZ3MpCisgICAgZGVmIHdyaXRlX3VwZGF0ZShzZWxm
LCBtc2cpOgorICAgICAgICBzZWxmLl9tZXRlci53cml0ZV91cGRhdGUobXNnKQogCi0gICAgZGVm
IF93cml0ZShzZWxmLCBtc2cpOgorICAgIGRlZiB3cml0ZWxuKHNlbGYsIG1zZyk6CiAgICAgICAg
IHNlbGYuX21ldGVyLndyaXRlbG4obXNnKQogCiAgICAgZGVmIGZsdXNoKHNlbGYpOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9w
cmludGluZ191bml0dGVzdC5weQppbmRleCBmYTgwYWNhMDMwMGViYmI1MWE2NTc5OGQzNWZiMDEx
OWRmNjBlNjUxLi41YTcyMWEwNTIzZDI2NDY5YjEyZDYyMTJkMDAzNDJlOWNhOWVlOWY3IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGlu
Z191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92
aWV3cy9wcmludGluZ191bml0dGVzdC5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyAgVGVzdHBy
aW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzdHJlYW0uYnVmbGlzdCA9IFtdCiAg
ICAgICAgIHN0cmVhbS5idWYgPSAnJwogCi0gICAgZGVmIGdldF9wcmludGVyKHNlbGYsIGFyZ3M9
Tm9uZSwgdHR5PUZhbHNlKToKKyAgICBkZWYgZ2V0X3ByaW50ZXIoc2VsZiwgYXJncz1Ob25lKToK
ICAgICAgICAgYXJncyA9IGFyZ3Mgb3IgW10KICAgICAgICAgcHJpbnRpbmdfb3B0aW9ucyA9IHBy
aW50aW5nLnByaW50X29wdGlvbnMoKQogICAgICAgICBvcHRpb25fcGFyc2VyID0gb3B0cGFyc2Uu
T3B0aW9uUGFyc2VyKG9wdGlvbl9saXN0PXByaW50aW5nX29wdGlvbnMpCkBAIC04Miw3ICs4Miw2
IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIG5wcm9j
ID0gMgogCiAgICAgICAgIHJlZ3VsYXJfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAg
ICAgICByZWd1bGFyX291dHB1dC5pc2F0dHkgPSBsYW1iZGE6IHR0eQogICAgICAgICBidWlsZGJv
dF9vdXRwdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCiAgICAgICAgIHByaW50ZXIgPSBwcmludGlu
Zy5QcmludGVyKHNlbGYuX3BvcnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0LCBidWlsZGJvdF9v
dXRwdXQpCiAgICAgICAgIHJldHVybiBwcmludGVyLCByZWd1bGFyX291dHB1dCwgYnVpbGRib3Rf
b3V0cHV0CkBAIC0xMjIsMjUgKzEyMSwzMCBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICBwcmludGVyLnByaW50X2NvbmZpZygpCiAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgnQmFzZWxpbmUgc2VhcmNoIHBhdGg6IHRlc3QtbWFjLWxlb3BhcmQgLT4gdGVz
dC1tYWMtc25vd2xlb3BhcmQgLT4gZ2VuZXJpYycgaW4gZXJyLmdldHZhbHVlKCkpCiAKKyAgICAg
ICAgc2VsZi5yZXNldChlcnIpCisgICAgICAgIHByaW50ZXIuX29wdGlvbnMucXVpZXQgPSBUcnVl
CisgICAgICAgIHByaW50ZXIucHJpbnRfY29uZmlnKCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZSgnQmFzZWxpbmUgc2VhcmNoIHBhdGg6IHRlc3QtbWFjLWxlb3BhcmQgLT4gdGVzdC1tYWMtc25v
d2xlb3BhcmQgLT4gZ2VuZXJpYycgaW4gZXJyLmdldHZhbHVlKCkpCisKICAgICBkZWYgdGVzdF9w
cmludF9vbmVfbGluZV9zdW1tYXJ5KHNlbGYpOgogICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9
IHNlbGYuZ2V0X3ByaW50ZXIoKQotICAgICAgICBwcmludGVyLnByaW50X29uZV9saW5lX3N1bW1h
cnkoMSwgMSwgMCkKKyAgICAgICAgcHJpbnRlci5fcHJpbnRfb25lX2xpbmVfc3VtbWFyeSgxLCAx
LCAwKQogICAgICAgICBzZWxmLmFzc2VydFdyaXR0ZW4oZXJyLCBbIlRoZSB0ZXN0IHJhbiBhcyBl
eHBlY3RlZC5cbiIsICJcbiJdKQogCiAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5n
ZXRfcHJpbnRlcigpCi0gICAgICAgIHByaW50ZXIucHJpbnRfb25lX2xpbmVfc3VtbWFyeSgxLCAx
LCAwKQorICAgICAgICBwcmludGVyLl9wcmludF9vbmVfbGluZV9zdW1tYXJ5KDEsIDEsIDApCiAg
ICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsiVGhlIHRlc3QgcmFuIGFzIGV4cGVjdGVk
LlxuIiwgIlxuIl0pCiAKICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmlu
dGVyKCkKLSAgICAgICAgcHJpbnRlci5wcmludF9vbmVfbGluZV9zdW1tYXJ5KDIsIDEsIDEpCisg
ICAgICAgIHByaW50ZXIuX3ByaW50X29uZV9saW5lX3N1bW1hcnkoMiwgMSwgMSkKICAgICAgICAg
c2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWyIxIHRlc3QgcmFuIGFzIGV4cGVjdGVkLCAxIGRpZG4n
dDpcbiIsICJcbiJdKQogCiAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJp
bnRlcigpCi0gICAgICAgIHByaW50ZXIucHJpbnRfb25lX2xpbmVfc3VtbWFyeSgzLCAyLCAxKQor
ICAgICAgICBwcmludGVyLl9wcmludF9vbmVfbGluZV9zdW1tYXJ5KDMsIDIsIDEpCiAgICAgICAg
IHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsiMiB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQsIDEgZGlk
bid0OlxuIiwgIlxuIl0pCiAKICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9w
cmludGVyKCkKLSAgICAgICAgcHJpbnRlci5wcmludF9vbmVfbGluZV9zdW1tYXJ5KDMsIDIsIDAp
CisgICAgICAgIHByaW50ZXIuX3ByaW50X29uZV9saW5lX3N1bW1hcnkoMywgMiwgMCkKICAgICAg
ICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWydcbicsICIyIHRlc3RzIHJhbiBhcyBleHBlY3Rl
ZCAoMSBkaWRuJ3QgcnVuKS5cbiIsICdcbiddKQogCiAgICAgZGVmIHRlc3RfcHJpbnRfdW5leHBl
Y3RlZF9yZXN1bHRzKHNlbGYpOgpAQCAtMTk5LDI3ICsyMDMsMjcgQEAgY2xhc3MgIFRlc3Rwcmlu
dGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICAjIHRlc3QgZXZlcnl0aGluZyBydW5u
aW5nIGFzIGV4cGVjdGVkCiAgICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBl
Y3RlZD1UcnVlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKLSAgICAgICAgcHJpbnRlci5w
cmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHByaW50ZXIuX3ByaW50X3VuZXhw
ZWN0ZWRfcmVzdWx0cyh1cikKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RW1wdHkob3V0KQogCiAgICAgICAgICMgdGVzdCBmYWlsdXJlcwogICAgICAg
ICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICB1ciA9IGdl
dF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5
PUZhbHNlKQotICAgICAgICBwcmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKKyAg
ICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQogICAgICAgICBzZWxm
LmFzc2VydEVtcHR5KGVycikKICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQpCiAKICAg
ICAgICAgIyB0ZXN0IHVuZXhwZWN0ZWQgZmxha3kKICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQg
PSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRz
KGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1UcnVlKQotICAgICAgICBwcmlu
dGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKKyAgICAgICAgcHJpbnRlci5fcHJpbnRf
dW5leHBlY3RlZF9yZXN1bHRzKHVyKQogICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKICAg
ICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQpCiAKICAgICAgICAgcHJpbnRlciwgZXJyLCBv
dXQgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1
bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKLSAgICAgICAg
cHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHByaW50ZXIuX3By
aW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIp
CiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQogCkBAIC0yMjksMTMgKzIzMywxMyBA
QCBCVUdYIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sID0gVElNRU9VVAogIiIiCiAg
ICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAgICAgIHVy
ID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxzZSwgcGFzc2luZz1GYWxzZSwg
Zmxha3k9RmFsc2UpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVy
KQorICAgICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQogICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkK
IAogICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAg
ICB1ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9VHJ1
ZSwgZmxha3k9RmFsc2UpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRz
KHVyKQorICAgICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQogICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91
dCkKIApAQCAtMjQ3LDI5ICsyNTEsNyBAQCBCVUdYIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91
dC5odG1sID0gVElNRU9VVAogICAgIGRlZiB0ZXN0X2RldGFpbHMoc2VsZik6CiAgICAgICAgIHBy
aW50ZXIsIGVyciwgXyA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLWRldGFpbHMnXSkKICAgICAgICAg
cmVzdWx0ID0gc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvaW1hZ2UuaHRtbCcpCi0gICAgICAgIHBy
aW50ZXIucHJpbnRfdGVzdF9yZXN1bHQocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgZXhwX3N0cj0n
JywgZ290X3N0cj0nJykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShlcnIpCi0KLSAgICBk
ZWYgdGVzdF9kZWZhdWx0KHNlbGYpOgotICAgICAgICBwcmludGVyLCBlcnIsIF8gPSBzZWxmLmdl
dF9wcmludGVyKCkKLSAgICAgICAgcHJpbnRlci5wcmludF90aW1pbmcoImZvbyIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQotICAgICAgICBwcmludGVyLl9wcmludF9jb25maWcoImZv
byIpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQotCi0gICAgZGVmIHRlc3RfcXVp
ZXQoc2VsZik6Ci0gICAgICAgIHByaW50ZXIsIGVyciwgXyA9IHNlbGYuZ2V0X3ByaW50ZXIoWyct
LXF1aWV0J10pCi0gICAgICAgIHByaW50ZXIuX3ByaW50X2NvbmZpZygiZm9vIikKLSAgICAgICAg
cHJpbnRlci5wcmludF90aW1pbmcoImZvbyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJy
KQotCi0gICAgZGVmIHRlc3RfdmVyYm9zZShzZWxmKToKLSAgICAgICAgcHJpbnRlciwgZXJyLCBf
ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tdmVyYm9zZSddKQotICAgICAgICBwcmludGVyLnByaW50
X3RpbWluZygiZm9vIikKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShlcnIpCi0KLSAgICAg
ICAgcHJpbnRlciwgZXJyLCBfID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tdmVyYm9zZSddKQotICAg
ICAgICBwcmludGVyLl9wcmludF9jb25maWcoImZvbyIpCisgICAgICAgIHByaW50ZXIuX3ByaW50
X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQ9RmFsc2UsIGV4cF9zdHI9JycsIGdvdF9zdHI9
JycpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156217</attachid>
            <date>2012-08-02 17:41:07 -0700</date>
            <delta_ts>2012-08-02 18:04:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-93026-20120802174048.patch</filename>
            <type>text/plain</type>
            <size>46226</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWIwZmNhZTY1MzJiNzVmMzEwMzIyY2E0MzUwNTM5MGQ4
OTgzNjAzNS4uNWNiMWY1MDAyYzA0NjMyNzUyZTUwY2Y0NDYxZGQ2MDJiYTU4NzIzZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYw
IEBACiAyMDEyLTA4LTAyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IGNsZWFuIHVwIHByaW50aW5nLnB5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2xlYW5zIHVwIHRoZSBpbXBsZW1l
bnRhdGlvbiBvZiBwcmludGluZy5weSBub3cKKyAgICAgICAgdGhhdCB3ZSdyZSBub3QgdXNpbmcg
YWxsIHRoZSBvcmlnaW5hbCBjb21wbGV4aXR5LgorCisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBu
byBjaGFuZ2VzIGluIGZ1bmN0aW9uYWxpdHkgYW5kIGV2ZXJ5dGhpbmcKKyAgICAgICAgc2hvdWxk
IGJlIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5Ogor
ICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5ydW5fdGVzdHMpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5OgorICAgICAgICAoUHJpbnRl
ci5fX2luaXRfXyk6CisgICAgICAgIChQcmludGVyLl9fZGVsX18pOgorICAgICAgICAoUHJpbnRl
ci5wcmludF9jb25maWcpOgorICAgICAgICAoUHJpbnRlci5wcmludF9mb3VuZCk6CisgICAgICAg
IChQcmludGVyLnByaW50X2V4cGVjdGVkKToKKyAgICAgICAgKFByaW50ZXIucHJpbnRfd29ya2Vy
c19hbmRfc2hhcmRzKToKKyAgICAgICAgKFByaW50ZXIpOgorICAgICAgICAoUHJpbnRlci5fcHJp
bnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKToKKyAgICAgICAgKFByaW50ZXIucHJpbnRfcmVz
dWx0cyk6CisgICAgICAgIChQcmludGVyLl9wcmludF90aW1pbmdfc3RhdGlzdGljcyk6CisgICAg
ICAgIChQcmludGVyLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKToKKyAgICAgICAg
KFByaW50ZXIuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyk6CisgICAgICAgIChQcmludGVy
Ll9wcmludF90ZXN0X2xpc3RfdGltaW5nKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2RpcmVj
dG9yeV90aW1pbmdzKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rl
c3RfdGltaW5ncyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeSk6Cisg
ICAgICAgIChQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeSk6CisgICAgICAgIChQ
cmludGVyLl9wcmludF9vbmVfbGluZV9zdW1tYXJ5KToKKyAgICAgICAgKFByaW50ZXIucHJpbnRf
ZmluaXNoZWRfdGVzdCk6CisgICAgICAgIChQcmludGVyLl9wcmludF90ZXN0X3Jlc3VsdCk6Cisg
ICAgICAgIChQcmludGVyLl9wcmludF90ZXN0X3RyYWNlKToKKyAgICAgICAgKFByaW50ZXIuX3By
aW50X2Jhc2VsaW5lKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X3VuZXhwZWN0ZWRfdGVzdF9y
ZXN1bHQpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfcHJvZ3Jlc3MpOgorICAgICAgICAoUHJp
bnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50
X3VuZXhwZWN0ZWRfcmVzdWx0cy5hZGRfcmVzdWx0KToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50
X3F1aWV0KToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2RlZmF1bHQpOgorICAgICAgICAoUHJp
bnRlci5fcHJpbnRfZGVidWcpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfZm9yX2JvdCk6Cisg
ICAgICAgIChQcmludGVyLndyaXRlX3VwZGF0ZSk6CisgICAgICAgIChQcmludGVyLndyaXRlbG4p
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5n
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdHByaW50ZXIuZ2V0X3ByaW50ZXIpOgorICAgICAg
ICAoVGVzdHByaW50ZXIudGVzdF9wcmludF9jb25maWcpOgorICAgICAgICAoVGVzdHByaW50ZXIu
dGVzdF9wcmludF9vbmVfbGluZV9zdW1tYXJ5KToKKyAgICAgICAgKFRlc3RwcmludGVyLnRlc3Rf
cHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKHRlc3RfZGV0YWlscyk6CisKKzIw
MTItMDgtMDIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAg
bnJ3dDogY2xlYW4gdXAgbG9nZ2luZywgcGFydCAxCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzAxOAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRf
dGVzdF9ydW5uZXIucHkKaW5kZXggYTVkZWY5Yjk5ZWZmNDMwN2IyNmI5NjQwMTZjMTdiYTY4ZjU0
MTE2NS4uYTE5OTAzMzc0NDY2NTAwNGYwOTM2Y2U4ZGQwOWE3NzBkM2EyZjgwMyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0
X3Rlc3RfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQpAQCAtMTQwLDcgKzE0MCw3IEBAIGNs
YXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBwb29sLnJ1bigo
J3Rlc3RfbGlzdCcsIHNoYXJkLm5hbWUsIHNoYXJkLnRlc3RfaW5wdXRzKSBmb3Igc2hhcmQgaW4g
YWxsX3NoYXJkcykKICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgICAg
ICAgc2VsZi5fcHJpbnRlci5mbHVzaCgpCi0gICAgICAgICAgICBzZWxmLl9wcmludGVyLndyaXRl
KCdJbnRlcnJ1cHRlZCwgZXhpdGluZyAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53
cml0ZWxuKCdJbnRlcnJ1cHRlZCwgZXhpdGluZyAuLi4nKQogICAgICAgICAgICAga2V5Ym9hcmRf
aW50ZXJydXB0ZWQgPSBUcnVlCiAgICAgICAgIGV4Y2VwdCBUZXN0UnVuSW50ZXJydXB0ZWRFeGNl
cHRpb24sIGU6CiAgICAgICAgICAgICBfbG9nLndhcm5pbmcoZS5yZWFzb24pCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5w
eQppbmRleCBhYmRiOGE3Mzc2OTMzZTk5MWQyNDFmYzg3ODE3NGYyNTI4YWViZGEwLi5iNjg0MmJk
NDI4ZjhmYjVmYzlkNWFiZWFkMTZjZTI3MmEzZmIxYmEzIDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTM2
Myw3ICszNjMsNiBAQCBkZWYgcGFyc2VfYXJncyhhcmdzPU5vbmUpOgogICAgICAgICBvcHRwYXJz
ZS5tYWtlX29wdGlvbigiLW4iLCAiLS1kcnktcnVuIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAg
ICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICBoZWxwPSJEbyBldmVyeXRoaW5n
IGJ1dCBhY3R1YWxseSBydW4gdGhlIHRlc3RzIG9yIHVwbG9hZCByZXN1bHRzLiIpLAotICAgICAg
ICAjIG9sZC1ydW4td2Via2l0LXRlc3RzIGhhcyAtLXZhbGdyaW5kIGluc3RlYWQgb2Ygd3JhcHBl
ci4KICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0td3JhcHBlciIsCiAgICAgICAgICAg
ICBoZWxwPSJ3cmFwcGVyIGNvbW1hbmQgdG8gaW5zZXJ0IGJlZm9yZSBpbnZvY2F0aW9ucyBvZiAi
CiAgICAgICAgICAgICAgICAgICJEdW1wUmVuZGVyVHJlZTsgb3B0aW9uIGlzIHNwbGl0IG9uIHdo
aXRlc3BhY2UgYmVmb3JlICIKQEAgLTM3OCw3ICszNzcsNiBAQCBkZWYgcGFyc2VfYXJncyhhcmdz
PU5vbmUpOgogICAgICAgICAgICAgaGVscD0iUnVuIGFsbCB0ZXN0cywgZXZlbiB0aG9zZSBtYXJr
ZWQgU0tJUCBpbiB0aGUgdGVzdCBsaXN0IChzYW1lIGFzIC0tc2tpcHBlZD1pZ25vcmUpIiksCiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXRpbWUtb3V0LW1zIiwKICAgICAgICAgICAg
IGhlbHA9IlNldCB0aGUgdGltZW91dCBmb3IgZWFjaCB0ZXN0IiksCi0gICAgICAgICMgb2xkLXJ1
bi13ZWJraXQtdGVzdHMgY2FsbHMgLS1yYW5kb21pemUtb3JkZXIgLS1yYW5kb206CiAgICAgICAg
IG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXJhbmRvbWl6ZS1vcmRlciIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsCiAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSgiUnVuIHRlc3RzIGluIHJh
bmRvbSBvcmRlciAodXNlZnVsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZv
ciB0cmFja2luZyBkb3duIGNvcnJ1cHRpb24pIikpLApAQCAtMzg3LDEzICszODUsMTAgQEAgZGVm
IHBhcnNlX2FyZ3MoYXJncz1Ob25lKToKICAgICAgICAgICAgICAgICAgIm9mIHRoZSBsYXlvdXQg
dGVzdHMiKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXJ1bi1wYXJ0IiwgaGVs
cD0oIlJ1biBhIHNwZWNpZmllZCBwYXJ0IChuOm0pLCAiCiAgICAgICAgICAgICAgICAgICAidGhl
IG50aCBvZiBtIHBhcnRzLCBvZiB0aGUgbGF5b3V0IHRlc3RzIikpLAotICAgICAgICAjIG9sZC1y
dW4td2Via2l0LXRlc3RzIGNhbGxzIC0tYmF0Y2gtc2l6ZTogLS1udGhseSBuCi0gICAgICAgICMg
ICBSZXN0YXJ0IER1bXBSZW5kZXJUcmVlIGV2ZXJ5IG4gdGVzdHMgKGRlZmF1bHQ6IDEwMDApCiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLWJhdGNoLXNpemUiLAogICAgICAgICAgICAg
aGVscD0oIlJ1biBhIHRoZSB0ZXN0cyBpbiBiYXRjaGVzIChuKSwgYWZ0ZXIgZXZlcnkgbiB0ZXN0
cywgIgogICAgICAgICAgICAgICAgICAgIkR1bXBSZW5kZXJUcmVlIGlzIHJlbGF1bmNoZWQuIiks
IHR5cGU9ImludCIsIGRlZmF1bHQ9Tm9uZSksCi0gICAgICAgICMgb2xkLXJ1bi13ZWJraXQtdGVz
dHMgY2FsbHMgLS1ydW4tc2luZ2x5OiAtMXwtLXNpbmdseQotICAgICAgICAjIElzb2xhdGUgZWFj
aCB0ZXN0IGNhc2UgcnVuIChpbXBsaWVzIC0tbnRobHkgMSAtLXZlcmJvc2UpCisgICAgICAgICMg
b2xkLXJ1bi13ZWJraXQtdGVzdHMgaGFzIC0tcnVuLXNpbmdseSBpbXBseSAtLXZlcmJvc2UuCiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXJ1bi1zaW5nbHkiLCBhY3Rpb249InN0b3Jl
X3RydWUiLAogICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0icnVuIGEgc2VwYXJhdGUg
RHVtcFJlbmRlclRyZWUgZm9yIGVhY2ggdGVzdCIpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29w
dGlvbigiLS1jaGlsZC1wcm9jZXNzZXMiLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVn
cmF0aW9udGVzdC5weQppbmRleCBmYzY5OWJjNDIzNzZkYTg5MGU4Yzc2Y2VlNGQ3ZWVlMzRmNzYw
NDIwLi4xNjJhMDc5NTNmNmEwYzJmMTM4Mjk2M2IwMGNkZTU3MmIzZjFhNzZiIDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2lu
dGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQpAQCAtNzQ5LDEwICs3NDksMTAg
QEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6
CiAKICAgICBkZWYgdGVzdF9yZXRyeWluZ19hbmRfZmxha3lfdGVzdHMoc2VsZik6CiAgICAgICAg
IGhvc3QgPSBNb2NrSG9zdCgpCi0gICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1
bihbJ2ZhaWx1cmVzL2ZsYWt5J10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAg
ICAgICAgcmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1kZWJ1Zy1yd3QtbG9nZ2lu
ZycsICdmYWlsdXJlcy9mbGFreSddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgMCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KCdSZXRyeWluZycgaW4gZXJyLmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
VW5leHBlY3RlZCBmbGFraW5lc3MnIGluIG91dC5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUoJ3VuZXhwZWN0ZWQgZmxha2luZXNzJyBpbiBvdXQuZ2V0dmFsdWUoKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGhvc3QuZmlsZXN5c3RlbS5leGlzdHMoJy90bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9mYWlsdXJlcy9mbGFreS90ZXh0LWFjdHVhbC50eHQnKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGhvc3QuZmlsZXN5c3RlbS5leGlzdHMoJy90bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9yZXRyaWVzL3Rlc3RzX3J1bjAudHh0JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
aG9zdC5maWxlc3lzdGVtLmV4aXN0cygnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3JldHJpZXMv
ZmFpbHVyZXMvZmxha3kvdGV4dC1hY3R1YWwudHh0JykpCkBAIC03NjQsOCArNzY0LDggQEAgY2xh
c3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgMSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdD
bG9iYmVyaW5nIG9sZCByZXN1bHRzJyBpbiBlcnIuZ2V0dmFsdWUoKSkKICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKCdmbGFreS90ZXh0Lmh0bWwnIGluIGVyci5nZXR2YWx1ZSgpKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoJ1VuZXhwZWN0ZWQgdGV4dCBkaWZmJyBpbiBvdXQuZ2V0dmFsdWUoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnVW5leHBlY3RlZCBmbGFraW5lc3MnIGluIG91dC5n
ZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3VuZXhwZWN0ZWQgdGV4dCBkaWZm
JyBpbiBvdXQuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgndW5leHBlY3Rl
ZCBmbGFraW5lc3MnIGluIG91dC5nZXR2YWx1ZSgpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
aG9zdC5maWxlc3lzdGVtLmV4aXN0cygnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVz
L2ZsYWt5L3RleHQtYWN0dWFsLnR4dCcpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhvc3Qu
ZmlsZXN5c3RlbS5leGlzdHMoJ3JldHJpZXMnKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQppbmRleCBiMjE4MTJkZmNh
ZTI0NDU5M2Q3OGE5ODE3NmUzNzRiODZhM2QyM2E5Li41OTNjNWUyZThjMTJiMDE2MTk0Mjc0ZTdk
ZmU5ZDZkZmYzOGQ0OTc1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy92aWV3cy9wcmludGluZy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQpAQCAtMzgsMTEgKzM4LDkgQEAgZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfZXhwZWN0YXRpb25zIGltcG9ydCBUZXN0
RXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy52aWV3cy5tZXRlcmVkX3N0
cmVhbSBpbXBvcnQgTWV0ZXJlZFN0cmVhbQogCisKIE5VTV9TTE9XX1RFU1RTX1RPX0xPRyA9IDEw
CiAKLVBSSU5UX1FVSUVUID0gIm9uZS1saW5lLXByb2dyZXNzLG9uZS1saW5lLXN1bW1hcnksdW5l
eHBlY3RlZCx1bmV4cGVjdGVkLXJlc3VsdHMsdXBkYXRlcyIKLVBSSU5UX0RFRkFVTFQgPSAiY29u
ZmlnLG1pc2Msb25lLWxpbmUtcHJvZ3Jlc3Msb25lLWxpbmUtc3VtbWFyeSx1bmV4cGVjdGVkLHVu
ZXhwZWN0ZWQtcmVzdWx0cyx1cGRhdGVzIgotUFJJTlRfRVZFUllUSElORyA9ICJhY3R1YWwsY29u
ZmlnLGV4cGVjdGVkLG1pc2Msb25lLWxpbmUtcHJvZ3Jlc3Msb25lLWxpbmUtc3VtbWFyeSxzbG93
ZXN0LHRpbWluZyx1bmV4cGVjdGVkLHVuZXhwZWN0ZWQtcmVzdWx0cyx1cGRhdGVzIgogCiBkZWYg
cHJpbnRfb3B0aW9ucygpOgogICAgIHJldHVybiBbCkBAIC01MSw3ICs0OSw3IEBAIGRlZiBwcmlu
dF9vcHRpb25zKCk6CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctdicsICctLXZlcmJv
c2UnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLCBkZXN0PSdkZWJ1Z19yd3Rf
bG9nZ2luZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NhbWUgYXMgLS1k
ZWJ1Zy1yd3QtbG9nZ2luZyAoZm9yIG5vdyknKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRp
b24oJy0tZGV0YWlscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3ByaW50IGRldGFpbGVkIGluZm9ybWF0aW9u
IGFib3V0IGVhY2ggdGVzdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdw
cmludCBkZXRhaWxlZCByZXN1bHRzIGZvciBldmVyeSB0ZXN0JyksCiAgICAgICAgIG9wdHBhcnNl
Lm1ha2Vfb3B0aW9uKCctLWRlYnVnLXJ3dC1sb2dnaW5nJywgYWN0aW9uPSdzdG9yZV90cnVlJywg
ZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncHJpbnQg
dGltZXN0YW1wcyBhbmQgZGVidWcgaW5mb3JtYXRpb24gZm9yIHJ1bi13ZWJraXQtdGVzdHMgaXRz
ZWxmJyksCiAgICAgXQpAQCAtNzAsMzAgKzY4LDkgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgog
ICAgIEJ5IGRlZmF1bHQgdGhlIGJ1aWxkYm90LXBhcnNlZCBjb2RlIGdldHMgbG9nZ2VkIHRvIHN0
ZG91dCwgYW5kIHJlZ3VsYXIKICAgICBvdXRwdXQgZ2V0cyBsb2dnZWQgdG8gc3RkZXJyLiIiIgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCByZWd1bGFyX291dHB1dCwgYnVp
bGRib3Rfb3V0cHV0LCBsb2dnZXI9Tm9uZSk6Ci0gICAgICAgICIiIgotICAgICAgICBBcmdzCi0g
ICAgICAgICAgcG9ydCAgICAgICAgICAgICAgIGludGVyZmFjZSB0byBwb3J0LXNwZWNpZmljIHJv
dXRpbmVzCi0gICAgICAgICAgb3B0aW9ucyAgICAgICAgICAgIE9wdGlvblBhcnNlciBvYmplY3Qg
d2l0aCBjb21tYW5kIGxpbmUgc2V0dGluZ3MKLSAgICAgICAgICByZWd1bGFyX291dHB1dCAgICAg
c3RyZWFtIHRvIHdoaWNoIG91dHB1dCBpbnRlbmRlZCBvbmx5IGZvciBodW1hbnMKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHdyaXR0ZW4KLSAgICAgICAgICBidWlsZGJv
dF9vdXRwdXQgICAgc3RyZWFtIHRvIHdoaWNoIG91dHB1dCBpbnRlbmRlZCB0byBiZSByZWFkIGJ5
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBidWlsZGJvdHMgKGFuZCBodW1hbnMp
IHNob3VsZCBiZSB3cml0dGVuCi0gICAgICAgICAgbG9nZ2VyICAgICAgICAgICAgIG9wdGlvbmFs
IGxvZ2dlciB0byBpbnRlZ3JhdGUgaW50byB0aGUgc3RyZWFtLgotICAgICAgICAiIiIKICAgICAg
ICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAg
ICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtID0gYnVpbGRib3Rfb3V0cHV0Ci0KLSAgICAgICAg
aWYgb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZzoKLSAgICAgICAgICAgIHNlbGYuc3dpdGNoZXMg
PSBQUklOVF9FVkVSWVRISU5HLnNwbGl0KCcsJykKLSAgICAgICAgZWxpZiBvcHRpb25zLnF1aWV0
OgotICAgICAgICAgICAgc2VsZi5zd2l0Y2hlcyA9IFBSSU5UX1FVSUVULnNwbGl0KCcsJykKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuc3dpdGNoZXMgPSBQUklOVF9ERUZBVUxULnNw
bGl0KCcsJykKLQotICAgICAgICBpZiBvcHRpb25zLmRldGFpbHM6Ci0gICAgICAgICAgICBzZWxm
LnN3aXRjaGVzLmFwcGVuZCgndHJhY2UtZXZlcnl0aGluZycpCi0KICAgICAgICAgc2VsZi5fbWV0
ZXIgPSBNZXRlcmVkU3RyZWFtKHJlZ3VsYXJfb3V0cHV0LCBvcHRpb25zLmRlYnVnX3J3dF9sb2dn
aW5nLCBsb2dnZXI9bG9nZ2VyKQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6CkBAIC0xMDIsNzIg
Kzc5LDU0IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICBkZWYgX19kZWxfXyhzZWxmKToK
ICAgICAgICAgc2VsZi5jbGVhbnVwKCkKIAotICAgICMgVGhlc2UgdHdvIHJvdXRpbmVzIGp1c3Qg
aGlkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHN3aXRjaGVzLgotICAgIGRlZiBkaXNhYmxl
ZChzZWxmLCBvcHRpb24pOgotICAgICAgICByZXR1cm4gbm90IG9wdGlvbiBpbiBzZWxmLnN3aXRj
aGVzCi0KLSAgICBkZWYgZW5hYmxlZChzZWxmLCBvcHRpb24pOgotICAgICAgICByZXR1cm4gb3B0
aW9uIGluIHNlbGYuc3dpdGNoZXMKLQogICAgIGRlZiBwcmludF9jb25maWcoc2VsZik6Ci0gICAg
ICAgICIiIlByaW50cyB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRlc3QgcnVuLiIiIgotICAg
ICAgICBzZWxmLl9wcmludF9jb25maWcoIlVzaW5nIHBvcnQgJyVzJyIgJSBzZWxmLl9wb3J0Lm5h
bWUoKSkKLSAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJUZXN0IGNvbmZpZ3VyYXRpb246ICVz
IiAlIHNlbGYuX3BvcnQudGVzdF9jb25maWd1cmF0aW9uKCkpCi0gICAgICAgIHNlbGYuX3ByaW50
X2NvbmZpZygiUGxhY2luZyB0ZXN0IHJlc3VsdHMgaW4gJXMiICUgc2VsZi5fb3B0aW9ucy5yZXN1
bHRzX2RpcmVjdG9yeSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgiVXNpbmcgcG9ydCAn
JXMnIiAlIHNlbGYuX3BvcnQubmFtZSgpKQorICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCJU
ZXN0IGNvbmZpZ3VyYXRpb246ICVzIiAlIHNlbGYuX3BvcnQudGVzdF9jb25maWd1cmF0aW9uKCkp
CisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoIlBsYWNpbmcgdGVzdCByZXN1bHRzIGluICVz
IiAlIHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnkpCiAKICAgICAgICAgIyBGSVhNRTog
c2hvdWxkIHRoZXNlIG9wdGlvbnMgYmUgaW4gcHJpbnRpbmdfb3B0aW9ucz8KICAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5uZXdfYmFzZWxpbmU6Ci0gICAgICAgICAgICBzZWxmLl9wcmludF9jb25m
aWcoIlBsYWNpbmcgbmV3IGJhc2VsaW5lcyBpbiAlcyIgJSBzZWxmLl9wb3J0LmJhc2VsaW5lX3Bh
dGgoKSkKKyAgICAgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoIlBsYWNpbmcgbmV3IGJhc2Vs
aW5lcyBpbiAlcyIgJSBzZWxmLl9wb3J0LmJhc2VsaW5lX3BhdGgoKSkKIAogICAgICAgICBmcyA9
IHNlbGYuX3BvcnQuaG9zdC5maWxlc3lzdGVtCiAgICAgICAgIGZhbGxiYWNrX3BhdGggPSBbZnMu
c3BsaXQoeClbMV0gZm9yIHggaW4gc2VsZi5fcG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpXQot
ICAgICAgICBzZWxmLl9wcmludF9jb25maWcoIkJhc2VsaW5lIHNlYXJjaCBwYXRoOiAlcyAtPiBn
ZW5lcmljIiAlICIgLT4gIi5qb2luKGZhbGxiYWNrX3BhdGgpKQorICAgICAgICBzZWxmLl9wcmlu
dF9kZWZhdWx0KCJCYXNlbGluZSBzZWFyY2ggcGF0aDogJXMgLT4gZ2VuZXJpYyIgJSAiIC0+ICIu
am9pbihmYWxsYmFja19wYXRoKSkKIAotICAgICAgICBzZWxmLl9wcmludF9jb25maWcoIlVzaW5n
ICVzIGJ1aWxkIiAlIHNlbGYuX29wdGlvbnMuY29uZmlndXJhdGlvbikKKyAgICAgICAgc2VsZi5f
cHJpbnRfZGVmYXVsdCgiVXNpbmcgJXMgYnVpbGQiICUgc2VsZi5fb3B0aW9ucy5jb25maWd1cmF0
aW9uKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzOgotICAgICAgICAgICAg
c2VsZi5fcHJpbnRfY29uZmlnKCJQaXhlbCB0ZXN0cyBlbmFibGVkIikKKyAgICAgICAgICAgIHNl
bGYuX3ByaW50X2RlZmF1bHQoIlBpeGVsIHRlc3RzIGVuYWJsZWQiKQogICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJQaXhlbCB0ZXN0cyBkaXNhYmxlZCIpCisg
ICAgICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCJQaXhlbCB0ZXN0cyBkaXNhYmxlZCIpCiAK
LSAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJSZWd1bGFyIHRpbWVvdXQ6ICVzLCBzbG93IHRl
c3QgdGltZW91dDogJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9vcHRp
b25zLnRpbWVfb3V0X21zLCBzZWxmLl9vcHRpb25zLnNsb3dfdGltZV9vdXRfbXMpKQorICAgICAg
ICBzZWxmLl9wcmludF9kZWZhdWx0KCJSZWd1bGFyIHRpbWVvdXQ6ICVzLCBzbG93IHRlc3QgdGlt
ZW91dDogJXMiICUKKyAgICAgICAgICAgICAgICAgIChzZWxmLl9vcHRpb25zLnRpbWVfb3V0X21z
LCBzZWxmLl9vcHRpb25zLnNsb3dfdGltZV9vdXRfbXMpKQogCi0gICAgICAgIHNlbGYuX3ByaW50
X2NvbmZpZygnQ29tbWFuZCBsaW5lOiAnICsgJyAnLmpvaW4oc2VsZi5fcG9ydC5kcml2ZXJfY21k
X2xpbmUoKSkpCi0gICAgICAgIHNlbGYuX3ByaW50X2NvbmZpZygnJykKKyAgICAgICAgc2VsZi5f
cHJpbnRfZGVmYXVsdCgnQ29tbWFuZCBsaW5lOiAnICsgJyAnLmpvaW4oc2VsZi5fcG9ydC5kcml2
ZXJfY21kX2xpbmUoKSkpCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoJycpCiAKICAgICBk
ZWYgcHJpbnRfZm91bmQoc2VsZiwgbnVtX2FsbF90ZXN0X2ZpbGVzLCBudW1fdG9fcnVuLCByZXBl
YXRfZWFjaCwgaXRlcmF0aW9ucyk6CiAgICAgICAgIGZvdW5kX3N0ciA9ICdGb3VuZCAlczsgcnVu
bmluZyAlZCcgJSAoZ3JhbW1hci5wbHVyYWxpemUoJ3Rlc3QnLCBudW1fYWxsX3Rlc3RfZmlsZXMp
LCBudW1fdG9fcnVuKQogICAgICAgICBpZiByZXBlYXRfZWFjaCAqIGl0ZXJhdGlvbnMgPiAxOgog
ICAgICAgICAgICAgZm91bmRfc3RyICs9ICcgKCVkIHRpbWVzIGVhY2g6IC0tcmVwZWF0LWVhY2g9
JWQgLS1pdGVyYXRpb25zPSVkKScgJSAocmVwZWF0X2VhY2ggKiBpdGVyYXRpb25zLCByZXBlYXRf
ZWFjaCwgaXRlcmF0aW9ucykKICAgICAgICAgZm91bmRfc3RyICs9ICcsIHNraXBwaW5nICVkJyAl
IChudW1fYWxsX3Rlc3RfZmlsZXMgLSBudW1fdG9fcnVuKQotICAgICAgICBzZWxmLl9wcmludF9l
eHBlY3RlZChmb3VuZF9zdHIgKyAnLicpCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoZm91
bmRfc3RyICsgJy4nKQogCiAgICAgZGVmIHByaW50X2V4cGVjdGVkKHNlbGYsIHJlc3VsdF9zdW1t
YXJ5LCB0ZXN0c193aXRoX3Jlc3VsdF90eXBlX2NhbGxiYWNrKToKICAgICAgICAgc2VsZi5fcHJp
bnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4cGVjdGF0
aW9ucy5QQVNTLCAicGFzc2VzIiwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjaykKICAg
ICAgICAgc2VsZi5fcHJpbnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKHJlc3VsdF9zdW1tYXJ5
LCB0ZXN0X2V4cGVjdGF0aW9ucy5GQUlMLCAiZmFpbHVyZXMiLCB0ZXN0c193aXRoX3Jlc3VsdF90
eXBlX2NhbGxiYWNrKQogICAgICAgICBzZWxmLl9wcmludF9leHBlY3RlZF9yZXN1bHRzX29mX3R5
cGUocmVzdWx0X3N1bW1hcnksIHRlc3RfZXhwZWN0YXRpb25zLkZMQUtZLCAiZmxha3kiLCB0ZXN0
c193aXRoX3Jlc3VsdF90eXBlX2NhbGxiYWNrKQotICAgICAgICBzZWxmLl9wcmludF9leHBlY3Rl
ZCgnJykKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoJycpCiAKICAgICBkZWYgcHJpbnRfd29y
a2Vyc19hbmRfc2hhcmRzKHNlbGYsIG51bV93b3JrZXJzLCBudW1fc2hhcmRzLCBudW1fbG9ja2Vk
X3NoYXJkcyk6CiAgICAgICAgIGRyaXZlcl9uYW1lID0gc2VsZi5fcG9ydC5kcml2ZXJfbmFtZSgp
CiAgICAgICAgIGlmIG51bV93b3JrZXJzID09IDE6Ci0gICAgICAgICAgICBzZWxmLl9wcmludF9j
b25maWcoIlJ1bm5pbmcgMSAlcyBvdmVyICVzLiIgJQotICAgICAgICAgICAgICAgIChkcml2ZXJf
bmFtZSwgZ3JhbW1hci5wbHVyYWxpemUoJ3NoYXJkJywgbnVtX3NoYXJkcykpKQorICAgICAgICAg
ICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgiUnVubmluZyAxICVzIG92ZXIgJXMuIiAlIChkcml2ZXJf
bmFtZSwgZ3JhbW1hci5wbHVyYWxpemUoJ3NoYXJkJywgbnVtX3NoYXJkcykpKQogICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc2VsZi5fcHJpbnRfY29uZmlnKCJSdW5uaW5nICVkICVzcyBpbiBw
YXJhbGxlbCBvdmVyICVkIHNoYXJkcyAoJWQgbG9ja2VkKS4iICUKKyAgICAgICAgICAgIHNlbGYu
X3ByaW50X2RlZmF1bHQoIlJ1bm5pbmcgJWQgJXNzIGluIHBhcmFsbGVsIG92ZXIgJWQgc2hhcmRz
ICglZCBsb2NrZWQpLiIgJQogICAgICAgICAgICAgICAgIChudW1fd29ya2VycywgZHJpdmVyX25h
bWUsIG51bV9zaGFyZHMsIG51bV9sb2NrZWRfc2hhcmRzKSkKLSAgICAgICAgc2VsZi5fcHJpbnRf
Y29uZmlnKCcnKQotCi0gICAgZGVmIF9wcmludF9leHBlY3RlZF9yZXN1bHRzX29mX3R5cGUoc2Vs
ZiwgcmVzdWx0X3N1bW1hcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBlX3N0ciwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9j
YWxsYmFjayk6Ci0gICAgICAgICIiIlByaW50IHRoZSBudW1iZXIgb2YgdGhlIHRlc3RzIGluIGEg
Z2l2ZW4gcmVzdWx0IGNsYXNzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgcmVzdWx0X3N1
bW1hcnkgLSB0aGUgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZSByZXN1bHRzIHRvIHJlcG9ydCBv
bgotICAgICAgICAgIHJlc3VsdF90eXBlIC0gdGhlIHBhcnRpY3VsYXIgcmVzdWx0IHR5cGUgdG8g
cmVwb3J0IGluIHRoZSBzdW1tYXJ5LgotICAgICAgICAgIHJlc3VsdF90eXBlX3N0ciAtIGEgc3Ry
aW5nIGRlc2NyaXB0aW9uIG9mIHRoZSByZXN1bHRfdHlwZS4KLSAgICAgICAgICBleHBlY3RhdGlv
bnMgLSBwb3B1bGF0ZWQgVGVzdEV4cGVjdGF0aW9ucyBvYmplY3QgZm9yIHN0YXRzCi0gICAgICAg
ICIiIgorICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCcnKQorCisgICAgZGVmIF9wcmludF9l
eHBlY3RlZF9yZXN1bHRzX29mX3R5cGUoc2VsZiwgcmVzdWx0X3N1bW1hcnksIHJlc3VsdF90eXBl
LCByZXN1bHRfdHlwZV9zdHIsIHRlc3RzX3dpdGhfcmVzdWx0X3R5cGVfY2FsbGJhY2spOgogICAg
ICAgICB0ZXN0cyA9IHRlc3RzX3dpdGhfcmVzdWx0X3R5cGVfY2FsbGJhY2socmVzdWx0X3R5cGUp
CiAgICAgICAgIG5vdyA9IHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3Rlc3RfZXhw
ZWN0YXRpb25zLk5PV10KICAgICAgICAgd29udGZpeCA9IHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5
X3RpbWVsaW5lW3Rlc3RfZXhwZWN0YXRpb25zLldPTlRGSVhdCkBAIC0xNzYsMTIgKzEzNSw5IEBA
IGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgIyBuaWNlbHktYWxpZ25lZCB0YWJsZS4K
ICAgICAgICAgZm10c3RyID0gKCJFeHBlY3Q6ICUlNWQgJSUtOHMgKCUlJWRkIG5vdywgJSUlZGQg
d29udGZpeCkiCiAgICAgICAgICAgICAgICAgICAlIChzZWxmLl9udW1fZGlnaXRzKG5vdyksIHNl
bGYuX251bV9kaWdpdHMod29udGZpeCkpKQotICAgICAgICBzZWxmLl9wcmludF9leHBlY3RlZChm
bXRzdHIgJQotICAgICAgICAgICAgKGxlbih0ZXN0cyksIHJlc3VsdF90eXBlX3N0ciwgbGVuKHRl
c3RzICYgbm93KSwgbGVuKHRlc3RzICYgd29udGZpeCkpKQorICAgICAgICBzZWxmLl9wcmludF9k
ZWJ1ZyhmbXRzdHIgJSAobGVuKHRlc3RzKSwgcmVzdWx0X3R5cGVfc3RyLCBsZW4odGVzdHMgJiBu
b3cpLCBsZW4odGVzdHMgJiB3b250Zml4KSkpCiAKICAgICBkZWYgX251bV9kaWdpdHMoc2VsZiwg
bnVtKToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBuZWVkZWQgdG8g
cmVwcmVzZW50IHRoZSBsZW5ndGggb2YgYQotICAgICAgICBzZXF1ZW5jZS4iIiIKICAgICAgICAg
bmRpZ2l0cyA9IDEKICAgICAgICAgaWYgbGVuKG51bSk6CiAgICAgICAgICAgICBuZGlnaXRzID0g
aW50KG1hdGgubG9nMTAobGVuKG51bSkpKSArIDEKQEAgLTE5MCw2MSArMTQ2LDM2IEBAIGNsYXNz
IFByaW50ZXIob2JqZWN0KToKICAgICBkZWYgcHJpbnRfcmVzdWx0cyhzZWxmLCBydW5fdGltZSwg
dGhyZWFkX3RpbWluZ3MsIHRlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIHJl
c3VsdF9zdW1tYXJ5LCB1bmV4cGVjdGVkX3Jlc3VsdHMpOgogICAgICAgICBzZWxmLl9wcmludF90
aW1pbmdfc3RhdGlzdGljcyhydW5fdGltZSwgdGhyZWFkX3RpbWluZ3MsIHRlc3RfdGltaW5ncywg
aW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5KQogICAgICAgICBzZWxmLl9w
cmludF9yZXN1bHRfc3VtbWFyeShyZXN1bHRfc3VtbWFyeSkKLQotICAgICAgICBzZWxmLnByaW50
X29uZV9saW5lX3N1bW1hcnkocmVzdWx0X3N1bW1hcnkudG90YWwgLSByZXN1bHRfc3VtbWFyeS5l
eHBlY3RlZF9za2lwcywgcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQgLSByZXN1bHRfc3VtbWFyeS5l
eHBlY3RlZF9za2lwcywgcmVzdWx0X3N1bW1hcnkudW5leHBlY3RlZCkKLQotICAgICAgICBzZWxm
LnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1bmV4cGVjdGVkX3Jlc3VsdHMpCisgICAgICAgIHNl
bGYuX3ByaW50X29uZV9saW5lX3N1bW1hcnkocmVzdWx0X3N1bW1hcnkudG90YWwgLSByZXN1bHRf
c3VtbWFyeS5leHBlY3RlZF9za2lwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3Nr
aXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5
LnVuZXhwZWN0ZWQpCisgICAgICAgIHNlbGYuX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1bmV4
cGVjdGVkX3Jlc3VsdHMpCiAKICAgICBkZWYgX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHNlbGYs
IHRvdGFsX3RpbWUsIHRocmVhZF90aW1pbmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlyZWN0b3J5X3Rlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeSk6Ci0gICAgICAg
ICIiIlJlY29yZCB0aW1pbmctc3BlY2lmaWMgaW5mb3JtYXRpb24gZm9yIHRoZSB0ZXN0IHJ1bi4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgIHRvdGFsX3RpbWU6IHRvdGFsIGVsYXBzZWQgdGlt
ZSAoaW4gc2Vjb25kcykgZm9yIHRoZSB0ZXN0IHJ1bgotICAgICAgICAgIHRocmVhZF90aW1pbmdz
OiB3YWxsIGNsb2NrIHRpbWUgZWFjaCB0aHJlYWQgcmFuIGZvcgotICAgICAgICAgIGRpcmVjdG9y
eV90ZXN0X3RpbWluZ3M6IHRpbWluZyBieSBkaXJlY3RvcnkKLSAgICAgICAgICBpbmRpdmlkdWFs
X3Rlc3RfdGltaW5nczogdGltaW5nIGJ5IGZpbGUKLSAgICAgICAgICByZXN1bHRfc3VtbWFyeTog
c3VtbWFyeSBvYmplY3QgZm9yIHRoZSB0ZXN0IHJ1bgotICAgICAgICAiIiIKLSAgICAgICAgc2Vs
Zi5wcmludF90aW1pbmcoIlRlc3QgdGltaW5nOiIpCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5n
KCIgICU2LjJmIHRvdGFsIHRlc3RpbmcgdGltZSIgJSB0b3RhbF90aW1lKQotICAgICAgICBzZWxm
LnByaW50X3RpbWluZygiIikKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIlRocmVhZCB0aW1p
bmc6IikKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIlRlc3QgdGltaW5nOiIpCisgICAgICAg
IHNlbGYuX3ByaW50X2RlYnVnKCIgICU2LjJmIHRvdGFsIHRlc3RpbmcgdGltZSIgJSB0b3RhbF90
aW1lKQorICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiIikKKyAgICAgICAgc2VsZi5fcHJpbnRf
ZGVidWcoIlRocmVhZCB0aW1pbmc6IikKICAgICAgICAgY3VtbF90aW1lID0gMAogICAgICAgICBm
b3IgdCBpbiB0aHJlYWRfdGltaW5nczoKLSAgICAgICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIg
ICAgJTEwczogJTVkIHRlc3RzLCAlNi4yZiBzZWNzIiAlCi0gICAgICAgICAgICAgICAgICAodFsn
bmFtZSddLCB0WydudW1fdGVzdHMnXSwgdFsndG90YWxfdGltZSddKSkKKyAgICAgICAgICAgIHNl
bGYuX3ByaW50X2RlYnVnKCIgICAgJTEwczogJTVkIHRlc3RzLCAlNi4yZiBzZWNzIiAlICh0Wydu
YW1lJ10sIHRbJ251bV90ZXN0cyddLCB0Wyd0b3RhbF90aW1lJ10pKQogICAgICAgICAgICAgY3Vt
bF90aW1lICs9IHRbJ3RvdGFsX3RpbWUnXQotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICAg
JTYuMmYgY3VtdWxhdGl2ZSwgJTYuMmYgb3B0aW1hbCIgJQotICAgICAgICAgICAgICAoY3VtbF90
aW1lLCBjdW1sX3RpbWUgLyBpbnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpKSkKLSAg
ICAgICAgc2VsZi5wcmludF90aW1pbmcoIiIpCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIg
ICAlNi4yZiBjdW11bGF0aXZlLCAlNi4yZiBvcHRpbWFsIiAlIChjdW1sX3RpbWUsIGN1bWxfdGlt
ZSAvIGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykpKQorICAgICAgICBzZWxmLl9w
cmludF9kZWJ1ZygiIikKIAogICAgICAgICBzZWxmLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0
aXN0aWNzKGluZGl2aWR1YWxfdGVzdF90aW1pbmdzKQotICAgICAgICBzZWxmLl9wcmludF9pbmRp
dmlkdWFsX3Rlc3RfdGltZXMoaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeSkKKyAgICAgICAgc2Vs
Zi5fcHJpbnRfaW5kaXZpZHVhbF90ZXN0X3RpbWVzKGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCBy
ZXN1bHRfc3VtbWFyeSkKICAgICAgICAgc2VsZi5fcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3MoZGly
ZWN0b3J5X3Rlc3RfdGltaW5ncykKIAogICAgIGRlZiBfcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3Rh
dGlzdGljcyhzZWxmLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyk6Ci0gICAgICAgICIiIlByaW50
cyBhZ2dyZWdhdGUgc3RhdGlzdGljcyAoZS5nLiBtZWRpYW4sIG1lYW4sIGV0Yy4pIGZvciBhbGwg
dGVzdHMuCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3M6
IExpc3Qgb2YgVGVzdFJlc3VsdHMgZm9yIGFsbCB0ZXN0cy4KLSAgICAgICAgIiIiCiAgICAgICAg
IHRpbWVzX2Zvcl9kdW1wX3JlbmRlcl90cmVlID0gW3Rlc3Rfc3RhdHMudGVzdF9ydW5fdGltZSBm
b3IgdGVzdF9zdGF0cyBpbiBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nc10KLSAgICAgICAgc2VsZi5f
cHJpbnRfc3RhdGlzdGljc19mb3JfdGVzdF90aW1pbmdzKCJQRVIgVEVTVCBUSU1FIElOIFRFU1RT
SEVMTCAoc2Vjb25kcyk6IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRpbWVzX2Zvcl9kdW1wX3JlbmRlcl90cmVlKQotCi0gICAgZGVmIF9wcmludF9p
bmRpdmlkdWFsX3Rlc3RfdGltZXMoc2VsZiwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkpOgotICAgICAg
ICAiIiJQcmludHMgdGhlIHJ1biB0aW1lcyBmb3Igc2xvdywgdGltZW91dCBhbmQgY3Jhc2ggdGVz
dHMuCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3M6IExp
c3Qgb2YgVGVzdFN0YXRzIGZvciBhbGwgdGVzdHMuCi0gICAgICAgICAgcmVzdWx0X3N1bW1hcnk6
IHN1bW1hcnkgb2JqZWN0IGZvciB0ZXN0IHJ1bgotICAgICAgICAiIiIKLSAgICAgICAgIyBSZXZl
cnNlLXNvcnQgYnkgdGhlIHRpbWUgc3BlbnQgaW4gRHVtcFJlbmRlclRyZWUuCi0gICAgICAgIGlu
ZGl2aWR1YWxfdGVzdF90aW1pbmdzLnNvcnQobGFtYmRhIGEsIGI6Ci0gICAgICAgICAgICBjbXAo
Yi50ZXN0X3J1bl90aW1lLCBhLnRlc3RfcnVuX3RpbWUpKQorICAgICAgICBzZWxmLl9wcmludF9z
dGF0aXN0aWNzX2Zvcl90ZXN0X3RpbWluZ3MoIlBFUiBURVNUIFRJTUUgSU4gVEVTVFNIRUxMIChz
ZWNvbmRzKToiLCB0aW1lc19mb3JfZHVtcF9yZW5kZXJfdHJlZSkKIAorICAgIGRlZiBfcHJpbnRf
aW5kaXZpZHVhbF90ZXN0X3RpbWVzKHNlbGYsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCByZXN1
bHRfc3VtbWFyeSk6CisgICAgICAgICMgUmV2ZXJzZS1zb3J0IGJ5IHRoZSB0aW1lIHNwZW50IGlu
IER1bXBSZW5kZXJUcmVlLgorICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncy5zb3J0KGxh
bWJkYSBhLCBiOiBjbXAoYi50ZXN0X3J1bl90aW1lLCBhLnRlc3RfcnVuX3RpbWUpKQogICAgICAg
ICBudW1fcHJpbnRlZCA9IDAKICAgICAgICAgc2xvd190ZXN0cyA9IFtdCiAgICAgICAgIHRpbWVv
dXRfb3JfY3Jhc2hfdGVzdHMgPSBbXQpAQCAtMjY3LDYzICsxOTgsMzcgQEAgY2xhc3MgUHJpbnRl
cihvYmplY3QpOgogICAgICAgICAgICAgICAgIG51bV9wcmludGVkID0gbnVtX3ByaW50ZWQgKyAx
CiAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9zbG93X3Rlc3RzLmFwcGVuZCh0ZXN0X3R1cGxl
KQogCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIiKQotICAgICAgICBzZWxmLl9wcmludF90
ZXN0X2xpc3RfdGltaW5nKCIlcyBzbG93ZXN0IHRlc3RzIHRoYXQgYXJlIG5vdCAiCi0gICAgICAg
ICAgICAibWFya2VkIGFzIFNMT1cgYW5kIGRpZCBub3QgdGltZW91dC9jcmFzaDoiICUgTlVNX1NM
T1dfVEVTVFNfVE9fTE9HLCB1bmV4cGVjdGVkX3Nsb3dfdGVzdHMpCi0gICAgICAgIHNlbGYucHJp
bnRfdGltaW5nKCIiKQorICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiIikKKyAgICAgICAgc2Vs
Zi5fcHJpbnRfdGVzdF9saXN0X3RpbWluZygiJXMgc2xvd2VzdCB0ZXN0cyB0aGF0IGFyZSBub3Qg
bWFya2VkIGFzIFNMT1cgYW5kIGRpZCBub3QgdGltZW91dC9jcmFzaDoiICUKKyAgICAgICAgICAg
IE5VTV9TTE9XX1RFU1RTX1RPX0xPRywgdW5leHBlY3RlZF9zbG93X3Rlc3RzKQorICAgICAgICBz
ZWxmLl9wcmludF9kZWJ1ZygiIikKICAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF9saXN0X3RpbWlu
ZygiVGVzdHMgbWFya2VkIGFzIFNMT1c6Iiwgc2xvd190ZXN0cykKLSAgICAgICAgc2VsZi5wcmlu
dF90aW1pbmcoIiIpCi0gICAgICAgIHNlbGYuX3ByaW50X3Rlc3RfbGlzdF90aW1pbmcoIlRlc3Rz
IHRoYXQgdGltZWQgb3V0IG9yIGNyYXNoZWQ6IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lb3V0X29yX2NyYXNoX3Rlc3RzKQotICAgICAgICBzZWxmLnByaW50X3Rp
bWluZygiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCisgICAgICAgIHNlbGYuX3By
aW50X3Rlc3RfbGlzdF90aW1pbmcoIlRlc3RzIHRoYXQgdGltZWQgb3V0IG9yIGNyYXNoZWQ6Iiwg
dGltZW91dF9vcl9jcmFzaF90ZXN0cykKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCiAK
ICAgICBkZWYgX3ByaW50X3Rlc3RfbGlzdF90aW1pbmcoc2VsZiwgdGl0bGUsIHRlc3RfbGlzdCk6
Ci0gICAgICAgICIiIlByaW50IHRpbWluZyBpbmZvIGZvciBlYWNoIHRlc3QuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICB0aXRsZTogc2VjdGlvbiBoZWFkaW5nCi0gICAgICAgICAgdGVzdF9s
aXN0OiB0ZXN0cyB0aGF0IGZhbGwgaW4gdGhpcyBzZWN0aW9uCi0gICAgICAgICIiIgotICAgICAg
ICBpZiBzZWxmLmRpc2FibGVkKCdzbG93ZXN0Jyk6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAg
ICAgICBzZWxmLnByaW50X3RpbWluZyh0aXRsZSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWco
dGl0bGUpCiAgICAgICAgIGZvciB0ZXN0X3R1cGxlIGluIHRlc3RfbGlzdDoKICAgICAgICAgICAg
IHRlc3RfcnVuX3RpbWUgPSByb3VuZCh0ZXN0X3R1cGxlLnRlc3RfcnVuX3RpbWUsIDEpCi0gICAg
ICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICAlcyB0b29rICVzIHNlY29uZHMiICUgKHRlc3Rf
dHVwbGUudGVzdF9uYW1lLCB0ZXN0X3J1bl90aW1lKSkKKyAgICAgICAgICAgIHNlbGYuX3ByaW50
X2RlYnVnKCIgICVzIHRvb2sgJXMgc2Vjb25kcyIgJSAodGVzdF90dXBsZS50ZXN0X25hbWUsIHRl
c3RfcnVuX3RpbWUpKQogCiAgICAgZGVmIF9wcmludF9kaXJlY3RvcnlfdGltaW5ncyhzZWxmLCBk
aXJlY3RvcnlfdGVzdF90aW1pbmdzKToKLSAgICAgICAgIiIiUHJpbnQgdGltaW5nIGluZm8gYnkg
ZGlyZWN0b3J5IGZvciBhbnkgZGlyZWN0b3JpZXMgdGhhdAotICAgICAgICB0YWtlID4gMTAgc2Vj
b25kcyB0byBydW4uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICBkaXJlY3RvcnlfdGVzdF90
aW1pbmc6IHRpbWUgaW5mbyBmb3IgZWFjaCBkaXJlY3RvcnkKLSAgICAgICAgIiIiCiAgICAgICAg
IHRpbWluZ3MgPSBbXQogICAgICAgICBmb3IgZGlyZWN0b3J5IGluIGRpcmVjdG9yeV90ZXN0X3Rp
bWluZ3M6CiAgICAgICAgICAgICBudW1fdGVzdHMsIHRpbWVfZm9yX2RpcmVjdG9yeSA9IGRpcmVj
dG9yeV90ZXN0X3RpbWluZ3NbZGlyZWN0b3J5XQotICAgICAgICAgICAgdGltaW5ncy5hcHBlbmQo
KHJvdW5kKHRpbWVfZm9yX2RpcmVjdG9yeSwgMSksIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBudW1fdGVzdHMpKQorICAgICAgICAgICAgdGltaW5ncy5hcHBlbmQoKHJv
dW5kKHRpbWVfZm9yX2RpcmVjdG9yeSwgMSksIGRpcmVjdG9yeSwgbnVtX3Rlc3RzKSkKICAgICAg
ICAgdGltaW5ncy5zb3J0KCkKIAotICAgICAgICBzZWxmLnByaW50X3RpbWluZygiVGltZSB0byBw
cm9jZXNzIHNsb3dlc3Qgc3ViZGlyZWN0b3JpZXM6IikKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVi
dWcoIlRpbWUgdG8gcHJvY2VzcyBzbG93ZXN0IHN1YmRpcmVjdG9yaWVzOiIpCiAgICAgICAgIG1p
bl9zZWNvbmRzX3RvX3ByaW50ID0gMTAKICAgICAgICAgZm9yIHRpbWluZyBpbiB0aW1pbmdzOgog
ICAgICAgICAgICAgaWYgdGltaW5nWzBdID4gbWluX3NlY29uZHNfdG9fcHJpbnQ6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5wcmludF90aW1pbmcoCi0gICAgICAgICAgICAgICAgICAgICIgICVzIHRv
b2sgJXMgc2Vjb25kcyB0byBydW4gJXMgdGVzdHMuIiAlICh0aW1pbmdbMV0sCi0gICAgICAgICAg
ICAgICAgICAgIHRpbWluZ1swXSwgdGltaW5nWzJdKSkKLSAgICAgICAgc2VsZi5wcmludF90aW1p
bmcoIiIpCisgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAgJXMgdG9vayAlcyBz
ZWNvbmRzIHRvIHJ1biAlcyB0ZXN0cy4iICUgKHRpbWluZ1sxXSwgdGltaW5nWzBdLCB0aW1pbmdb
Ml0pKQorICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiIikKIAogICAgIGRlZiBfcHJpbnRfc3Rh
dGlzdGljc19mb3JfdGVzdF90aW1pbmdzKHNlbGYsIHRpdGxlLCB0aW1pbmdzKToKLSAgICAgICAg
IiIiUHJpbnRzIHRoZSBtZWRpYW4sIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiBvZiB0aGUg
dmFsdWVzIGluCi0gICAgICAgIHRpbWluZ3MuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0
aXRsZTogVGl0bGUgZm9yIHRoZXNlIHRpbWluZ3MuCi0gICAgICAgICAgdGltaW5nczogQSBsaXN0
IG9mIGZsb2F0cyByZXByZXNlbnRpbmcgdGltZXMuCi0gICAgICAgICIiIgotICAgICAgICBzZWxm
LnByaW50X3RpbWluZyh0aXRsZSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcodGl0bGUpCiAg
ICAgICAgIHRpbWluZ3Muc29ydCgpCiAKICAgICAgICAgbnVtX3Rlc3RzID0gbGVuKHRpbWluZ3Mp
CkBAIC0zNDUsMTkgKzI1MCwxNyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAg
ICBzdW1fb2ZfZGV2aWF0aW9ucyA9IG1hdGgucG93KHRpbWluZyAtIG1lYW4sIDIpCiAKICAgICAg
ICAgc3RkX2RldmlhdGlvbiA9IG1hdGguc3FydChzdW1fb2ZfZGV2aWF0aW9ucyAvIG51bV90ZXN0
cykKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgTWVkaWFuOiAgICAgICAgICAlNi4zZiIg
JSBtZWRpYW4pCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIE1lYW46ICAgICAgICAgICAg
JTYuM2YiICUgbWVhbikKLSAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgOTB0aCBwZXJjZW50
aWxlOiAlNi4zZiIgJSBwZXJjZW50aWxlOTApCi0gICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIg
IDk5dGggcGVyY2VudGlsZTogJTYuM2YiICUgcGVyY2VudGlsZTk5KQotICAgICAgICBzZWxmLnBy
aW50X3RpbWluZygiICBTdGFuZGFyZCBkZXY6ICAgICU2LjNmIiAlIHN0ZF9kZXZpYXRpb24pCi0g
ICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIiKQorICAgICAgICBzZWxmLl9wcmludF9kZWJ1Zygi
ICBNZWRpYW46ICAgICAgICAgICU2LjNmIiAlIG1lZGlhbikKKyAgICAgICAgc2VsZi5fcHJpbnRf
ZGVidWcoIiAgTWVhbjogICAgICAgICAgICAlNi4zZiIgJSBtZWFuKQorICAgICAgICBzZWxmLl9w
cmludF9kZWJ1ZygiICA5MHRoIHBlcmNlbnRpbGU6ICU2LjNmIiAlIHBlcmNlbnRpbGU5MCkKKyAg
ICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAgOTl0aCBwZXJjZW50aWxlOiAlNi4zZiIgJSBwZXJj
ZW50aWxlOTkpCisgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIgIFN0YW5kYXJkIGRldjogICAg
JTYuM2YiICUgc3RkX2RldmlhdGlvbikKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCiAK
ICAgICBkZWYgX3ByaW50X3Jlc3VsdF9zdW1tYXJ5KHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKLSAg
ICAgICAgIiIiUHJpbnQgYSBzaG9ydCBzdW1tYXJ5IGFib3V0IGhvdyBtYW55IHRlc3RzIHBhc3Nl
ZC4KKyAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMuZGVidWdfcnd0X2xvZ2dpbmc6CisgICAg
ICAgICAgICByZXR1cm4KIAotICAgICAgICBBcmdzOgotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5
OiBpbmZvcm1hdGlvbiB0byBsb2cKLSAgICAgICAgIiIiCiAgICAgICAgIGZhaWxlZCA9IHJlc3Vs
dF9zdW1tYXJ5LnRvdGFsX2ZhaWx1cmVzCiAgICAgICAgIHRvdGFsID0gcmVzdWx0X3N1bW1hcnku
dG90YWwgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9za2lwcwogICAgICAgICBwYXNzZWQgPSB0
b3RhbCAtIGZhaWxlZCAtIHJlc3VsdF9zdW1tYXJ5LnJlbWFpbmluZwpAQCAtMzY1LDM0ICsyNjgs
MjIgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICBpZiB0b3RhbCA+IDA6CiAgICAg
ICAgICAgICBwY3RfcGFzc2VkID0gZmxvYXQocGFzc2VkKSAqIDEwMCAvIHRvdGFsCiAKLSAgICAg
ICAgc2VsZi5wcmludF9hY3R1YWwoIiIpCi0gICAgICAgIHNlbGYucHJpbnRfYWN0dWFsKCI9PiBS
ZXN1bHRzOiAlZC8lZCB0ZXN0cyBwYXNzZWQgKCUuMWYlJSkiICUKLSAgICAgICAgICAgICAgICAg
ICAgIChwYXNzZWQsIHRvdGFsLCBwY3RfcGFzc2VkKSkKLSAgICAgICAgc2VsZi5wcmludF9hY3R1
YWwoIiIpCi0gICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9z
dW1tYXJ5LAotICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuTk9XLCAiVGVzdHMgdG8gYmUg
Zml4ZWQiKQorICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCI9PiBSZXN1bHRzOiAlZC8lZCB0
ZXN0cyBwYXNzZWQgKCUuMWYlJSkiICUgKHBhc3NlZCwgdG90YWwsIHBjdF9wYXNzZWQpKQorICAg
ICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQorICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRf
c3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFyeSwgdGVzdF9leHBlY3RhdGlvbnMuTk9XLCAiVGVz
dHMgdG8gYmUgZml4ZWQiKQogCi0gICAgICAgIHNlbGYucHJpbnRfYWN0dWFsKCIiKQorICAgICAg
ICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQogICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgYmUg
c2tpcHBpbmcgYW55dGhpbmcgbWFya2VkIFdPTlRGSVgsIHNvIHdlIHNob3VsZG4ndCBib3RoZXIg
bG9nZ2luZyB0aGVzZSBzdGF0cy4KLSAgICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlf
ZW50cnkocmVzdWx0X3N1bW1hcnksCi0gICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5XT05U
RklYLAorICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3Vt
bWFyeSwgdGVzdF9leHBlY3RhdGlvbnMuV09OVEZJWCwKICAgICAgICAgICAgICJUZXN0cyB0aGF0
IHdpbGwgb25seSBiZSBmaXhlZCBpZiB0aGV5IGNyYXNoIChXT05URklYKSIpCi0gICAgICAgIHNl
bGYucHJpbnRfYWN0dWFsKCIiKQorICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQogCi0g
ICAgZGVmIF9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShzZWxmLCByZXN1bHRfc3VtbWFyeSwg
dGltZWxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nKToK
LSAgICAgICAgIiIiUHJpbnQgYSBzdW1tYXJ5IGJsb2NrIG9mIHJlc3VsdHMgZm9yIGEgcGFydGlj
dWxhciB0aW1lbGluZSBvZiB0ZXN0LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgcmVzdWx0
X3N1bW1hcnk6IHN1bW1hcnkgdG8gcHJpbnQgcmVzdWx0cyBmb3IKLSAgICAgICAgICB0aW1lbGlu
ZTogdGhlIHRpbWVsaW5lIHRvIHByaW50IHJlc3VsdHMgZm9yIChOT1csIFdPTlRGSVgsIGV0Yy4p
Ci0gICAgICAgICAgaGVhZGluZzogYSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSB0aW1lbGlu
ZQotICAgICAgICAiIiIKKyAgICBkZWYgX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHNlbGYs
IHJlc3VsdF9zdW1tYXJ5LCB0aW1lbGluZSwgaGVhZGluZyk6CiAgICAgICAgIHRvdGFsID0gbGVu
KHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkKICAgICAgICAgbm90
X3Bhc3NpbmcgPSAodG90YWwgLQogICAgICAgICAgICBsZW4ocmVzdWx0X3N1bW1hcnkudGVzdHNf
YnlfZXhwZWN0YXRpb25bdGVzdF9leHBlY3RhdGlvbnMuUEFTU10gJgogICAgICAgICAgICAgICAg
cmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGltZWxpbmVdKSkKLSAgICAgICAgc2Vs
Zi5wcmludF9hY3R1YWwoIj0+ICVzICglZCk6IiAlIChoZWFkaW5nLCBub3RfcGFzc2luZykpCisg
ICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIj0+ICVzICglZCk6IiAlIChoZWFkaW5nLCBub3Rf
cGFzc2luZykpCiAKICAgICAgICAgZm9yIHJlc3VsdCBpbiBUZXN0RXhwZWN0YXRpb25zLkVYUEVD
VEFUSU9OX09SREVSOgogICAgICAgICAgICAgaWYgcmVzdWx0IGluICh0ZXN0X2V4cGVjdGF0aW9u
cy5QQVNTLCB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQKToKQEAgLTQwMiwxMDIgKzI5Myw2MCBAQCBj
bGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICBkZXNjID0gVGVzdEV4cGVjdGF0aW9u
cy5FWFBFQ1RBVElPTl9ERVNDUklQVElPTlNbcmVzdWx0XQogICAgICAgICAgICAgaWYgbm90X3Bh
c3NpbmcgYW5kIGxlbihyZXN1bHRzKToKICAgICAgICAgICAgICAgICBwY3QgPSBsZW4ocmVzdWx0
cykgKiAxMDAuMCAvIG5vdF9wYXNzaW5nCi0gICAgICAgICAgICAgICAgc2VsZi5wcmludF9hY3R1
YWwoIiAgJTVkICUtMjRzICglNC4xZiUlKSIgJQotICAgICAgICAgICAgICAgICAgICAobGVuKHJl
c3VsdHMpLCBkZXNjW2xlbihyZXN1bHRzKSAhPSAxXSwgcGN0KSkKLQotCi0gICAgZGVmIHByaW50
X2FjdHVhbChzZWxmLCBtc2cpOgotICAgICAgICBpZiBzZWxmLmRpc2FibGVkKCdhY3R1YWwnKToK
LSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUo
IiVzXG4iICUgbXNnKQotCi0gICAgZGVmIF9wcmludF9jb25maWcoc2VsZiwgbXNnKToKLSAgICAg
ICAgc2VsZi53cml0ZShtc2csICdjb25maWcnKQotCi0gICAgZGVmIF9wcmludF9leHBlY3RlZChz
ZWxmLCBtc2cpOgotICAgICAgICBzZWxmLndyaXRlKG1zZywgJ2V4cGVjdGVkJykKLQotICAgIGRl
ZiBwcmludF90aW1pbmcoc2VsZiwgbXNnKToKLSAgICAgICAgc2VsZi53cml0ZShtc2csICd0aW1p
bmcnKQotCi0gICAgZGVmIHByaW50X29uZV9saW5lX3N1bW1hcnkoc2VsZiwgdG90YWwsIGV4cGVj
dGVkLCB1bmV4cGVjdGVkKToKLSAgICAgICAgIiIiUHJpbnQgYSBvbmUtbGluZSBzdW1tYXJ5IG9m
IHRoZSB0ZXN0IHJ1biB0byBzdGRvdXQuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0b3Rh
bDogdG90YWwgbnVtYmVyIG9mIHRlc3RzIHJ1bgotICAgICAgICAgIGV4cGVjdGVkOiBudW1iZXIg
b2YgZXhwZWN0ZWQgcmVzdWx0cwotICAgICAgICAgIHVuZXhwZWN0ZWQ6IG51bWJlciBvZiB1bmV4
cGVjdGVkIHJlc3VsdHMKLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ29u
ZS1saW5lLXN1bW1hcnknKToKLSAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHNl
bGYuX3ByaW50X2Zvcl9ib3QoIiAgJTVkICUtMjRzICglNC4xZiUlKSIgJSAobGVuKHJlc3VsdHMp
LCBkZXNjW2xlbihyZXN1bHRzKSAhPSAxXSwgcGN0KSkKIAorICAgIGRlZiBfcHJpbnRfb25lX2xp
bmVfc3VtbWFyeShzZWxmLCB0b3RhbCwgZXhwZWN0ZWQsIHVuZXhwZWN0ZWQpOgogICAgICAgICBp
bmNvbXBsZXRlID0gdG90YWwgLSBleHBlY3RlZCAtIHVuZXhwZWN0ZWQKICAgICAgICAgaW5jb21w
bGV0ZV9zdHIgPSAnJwogICAgICAgICBpZiBpbmNvbXBsZXRlOgotICAgICAgICAgICAgc2VsZi5f
d3JpdGUoIiIpCisgICAgICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCIiKQogICAgICAgICAg
ICAgaW5jb21wbGV0ZV9zdHIgPSAiICglZCBkaWRuJ3QgcnVuKSIgJSBpbmNvbXBsZXRlCiAKKyAg
ICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZyBvciB1bmV4cGVjdGVkOgor
ICAgICAgICAgICAgc2VsZi53cml0ZWxuKCIiKQorCisgICAgICAgIHN1bW1hcnkgPSAnJwogICAg
ICAgICBpZiB1bmV4cGVjdGVkID09IDA6CiAgICAgICAgICAgICBpZiBleHBlY3RlZCA9PSB0b3Rh
bDoKICAgICAgICAgICAgICAgICBpZiBleHBlY3RlZCA+IDE6Ci0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3dyaXRlKCJBbGwgJWQgdGVzdHMgcmFuIGFzIGV4cGVjdGVkLiIgJSBleHBlY3RlZCkK
KyAgICAgICAgICAgICAgICAgICAgc3VtbWFyeSA9ICJBbGwgJWQgdGVzdHMgcmFuIGFzIGV4cGVj
dGVkLiIgJSBleHBlY3RlZAogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3dyaXRlKCJUaGUgdGVzdCByYW4gYXMgZXhwZWN0ZWQuIikKKyAgICAgICAgICAg
ICAgICAgICAgc3VtbWFyeSA9ICJUaGUgdGVzdCByYW4gYXMgZXhwZWN0ZWQuIgogICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZSgiJXMgcmFuIGFzIGV4cGVjdGVk
JXMuIiAlIChncmFtbWFyLnBsdXJhbGl6ZSgndGVzdCcsIGV4cGVjdGVkKSwgaW5jb21wbGV0ZV9z
dHIpKQorICAgICAgICAgICAgICAgIHN1bW1hcnkgPSAiJXMgcmFuIGFzIGV4cGVjdGVkJXMuIiAl
IChncmFtbWFyLnBsdXJhbGl6ZSgndGVzdCcsIGV4cGVjdGVkKSwgaW5jb21wbGV0ZV9zdHIpCiAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZSgiJXMgcmFuIGFzIGV4cGVjdGVk
LCAlZCBkaWRuJ3QlczoiICUgKGdyYW1tYXIucGx1cmFsaXplKCd0ZXN0JywgZXhwZWN0ZWQpLCB1
bmV4cGVjdGVkLCBpbmNvbXBsZXRlX3N0cikpCi0gICAgICAgIHNlbGYuX3dyaXRlKCIiKQorICAg
ICAgICAgICAgc3VtbWFyeSA9ICIlcyByYW4gYXMgZXhwZWN0ZWQsICVkIGRpZG4ndCVzOiIgJSAo
Z3JhbW1hci5wbHVyYWxpemUoJ3Rlc3QnLCBleHBlY3RlZCksIHVuZXhwZWN0ZWQsIGluY29tcGxl
dGVfc3RyKQorCisgICAgICAgIHNlbGYuX3ByaW50X3F1aWV0KHN1bW1hcnkpCisgICAgICAgIHNl
bGYuX3ByaW50X3F1aWV0KCIiKQogCiAgICAgZGVmIHByaW50X2ZpbmlzaGVkX3Rlc3Qoc2VsZiwg
cmVzdWx0LCBleHBlY3RlZCwgZXhwX3N0ciwgZ290X3N0ciwgcmVzdWx0X3N1bW1hcnksIHJldHJ5
aW5nLCB0ZXN0X2ZpbGVzX2xpc3QpOgotICAgICAgICBzZWxmLnByaW50X3Rlc3RfcmVzdWx0KHJl
c3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIsIGdvdF9zdHIpCi0gICAgICAgIHNlbGYucHJpbnRfcHJv
Z3Jlc3MocmVzdWx0X3N1bW1hcnksIHJldHJ5aW5nLCB0ZXN0X2ZpbGVzX2xpc3QpCi0KLSAgICBk
ZWYgcHJpbnRfdGVzdF9yZXN1bHQoc2VsZiwgcmVzdWx0LCBleHBlY3RlZCwgZXhwX3N0ciwgZ290
X3N0cik6Ci0gICAgICAgICIiIlByaW50IHRoZSByZXN1bHQgb2YgdGhlIHRlc3QgYXMgZGV0ZXJt
aW5lZCBieSAtLXByaW50LgotCi0gICAgICAgIFRoaXMgcm91dGluZSBpcyB1c2VkIHRvIHByaW50
IHRoZSBkZXRhaWxzIG9mIGVhY2ggdGVzdCBhcyBpdCBjb21wbGV0ZXMuCi0KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICAgIHJlc3VsdCAgIC0gVGhlIGFjdHVhbCBUZXN0UmVzdWx0IG9iamVjdAot
ICAgICAgICAgICAgZXhwZWN0ZWQgLSBXaGV0aGVyIHRoZSByZXN1bHQgd2UgZ290IHdhcyBhbiBl
eHBlY3RlZCByZXN1bHQKLSAgICAgICAgICAgIGV4cF9zdHIgIC0gV2hhdCB3ZSBleHBlY3RlZCB0
byBnZXQgKHVzZWQgZm9yIHRyYWNpbmcpCi0gICAgICAgICAgICBnb3Rfc3RyICAtIFdoYXQgd2Ug
YWN0dWFsbHkgZ290ICh1c2VkIGZvciB0cmFjaW5nKQotCi0gICAgICAgIE5vdGUgdGhhdCB3ZSBu
ZWVkIGFsbCBvZiB0aGVzZSBhcmd1bWVudHMgZXZlbiB0aG91Z2ggdGhleSBzZWVtCi0gICAgICAg
IHNvbWV3aGF0IHJlZHVuZGFudCwgaW4gb3JkZXIgdG8ga2VlcCB0aGlzIHJvdXRpbmUgZnJvbSBo
YXZpbmcgdG8KLSAgICAgICAga25vd24gYW55dGhpbmcgYWJvdXQgdGhlIHNldCBvZiBleHBlY3Rh
dGlvbnMuCi0gICAgICAgICIiIgotICAgICAgICBpZiAoc2VsZi5lbmFibGVkKCd0cmFjZS1ldmVy
eXRoaW5nJykgb3IKLSAgICAgICAgICAgIHNlbGYuZW5hYmxlZCgndHJhY2UtdW5leHBlY3RlZCcp
IGFuZCBub3QgZXhwZWN0ZWQpOgorICAgICAgICBzZWxmLl9wcmludF90ZXN0X3Jlc3VsdChyZXN1
bHQsIGV4cGVjdGVkLCBleHBfc3RyLCBnb3Rfc3RyKQorICAgICAgICBzZWxmLl9wcmludF9wcm9n
cmVzcyhyZXN1bHRfc3VtbWFyeSwgcmV0cnlpbmcsIHRlc3RfZmlsZXNfbGlzdCkKKworICAgIGRl
ZiBfcHJpbnRfdGVzdF9yZXN1bHQoc2VsZiwgcmVzdWx0LCBleHBlY3RlZCwgZXhwX3N0ciwgZ290
X3N0cik6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZGV0YWlsczoKICAgICAgICAgICAgIHNl
bGYuX3ByaW50X3Rlc3RfdHJhY2UocmVzdWx0LCBleHBfc3RyLCBnb3Rfc3RyKQotICAgICAgICBl
bGlmIG5vdCBleHBlY3RlZCBhbmQgc2VsZi5lbmFibGVkKCd1bmV4cGVjdGVkJyk6CisgICAgICAg
IGVsaWYgbm90IGV4cGVjdGVkOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRfdW5leHBlY3RlZF90
ZXN0X3Jlc3VsdChyZXN1bHQpCiAKICAgICBkZWYgX3ByaW50X3Rlc3RfdHJhY2Uoc2VsZiwgcmVz
dWx0LCBleHBfc3RyLCBnb3Rfc3RyKToKLSAgICAgICAgIiIiUHJpbnQgZGV0YWlsZWQgcmVzdWx0
cyBvZiBhIHRlc3QgKHRyaWdnZXJlZCBieSAtLXByaW50IHRyYWNlLSopLgotICAgICAgICBGb3Ig
ZWFjaCB0ZXN0LCBwcmludDoKLSAgICAgICAgICAgLSBsb2NhdGlvbiBvZiB0aGUgZXhwZWN0ZWQg
YmFzZWxpbmVzCi0gICAgICAgICAgIC0gZXhwZWN0ZWQgcmVzdWx0cwotICAgICAgICAgICAtIGFj
dHVhbCByZXN1bHQKLSAgICAgICAgICAgLSB0aW1pbmcgaW5mbwotICAgICAgICAiIiIKICAgICAg
ICAgdGVzdF9uYW1lID0gcmVzdWx0LnRlc3RfbmFtZQotICAgICAgICBzZWxmLl93cml0ZSgndHJh
Y2U6ICVzJyAlIHRlc3RfbmFtZSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgndHJhY2U6
ICVzJyAlIHRlc3RfbmFtZSkKIAogICAgICAgICBiYXNlID0gc2VsZi5fcG9ydC5sb29rdXBfdmly
dHVhbF90ZXN0X2Jhc2UodGVzdF9uYW1lKQogICAgICAgICBpZiBiYXNlOgogICAgICAgICAgICAg
YXJncyA9ICcgJy5qb2luKHNlbGYuX3BvcnQubG9va3VwX3ZpcnR1YWxfdGVzdF9hcmdzKHRlc3Rf
bmFtZSkpCi0gICAgICAgICAgICBzZWxmLl93cml0ZSgnIGJhc2U6ICVzJyAlIGJhc2UpCi0gICAg
ICAgICAgICBzZWxmLl93cml0ZSgnIGFyZ3M6ICVzJyAlIGFyZ3MpCisgICAgICAgICAgICBzZWxm
Ll9wcmludF9kZWZhdWx0KCcgYmFzZTogJXMnICUgYmFzZSkKKyAgICAgICAgICAgIHNlbGYuX3By
aW50X2RlZmF1bHQoJyBhcmdzOiAlcycgJSBhcmdzKQogCiAgICAgICAgIGZvciBleHRlbnNpb24g
aW4gKCcudHh0JywgJy5wbmcnLCAnLndhdicsICcud2ViYXJjaGl2ZScpOgogICAgICAgICAgICAg
c2VsZi5fcHJpbnRfYmFzZWxpbmUodGVzdF9uYW1lLCBleHRlbnNpb24pCiAKLSAgICAgICAgc2Vs
Zi5fd3JpdGUoJyAgZXhwOiAlcycgJSBleHBfc3RyKQotICAgICAgICBzZWxmLl93cml0ZSgnICBn
b3Q6ICVzJyAlIGdvdF9zdHIpCi0gICAgICAgIHNlbGYuX3dyaXRlKCcgdG9vazogJS0uM2YnICUg
cmVzdWx0LnRlc3RfcnVuX3RpbWUpCi0gICAgICAgIHNlbGYuX3dyaXRlKCcnKQorICAgICAgICBz
ZWxmLl9wcmludF9kZWZhdWx0KCcgIGV4cDogJXMnICUgZXhwX3N0cikKKyAgICAgICAgc2VsZi5f
cHJpbnRfZGVmYXVsdCgnICBnb3Q6ICVzJyAlIGdvdF9zdHIpCisgICAgICAgIHNlbGYuX3ByaW50
X2RlZmF1bHQoJyB0b29rOiAlLS4zZicgJSByZXN1bHQudGVzdF9ydW5fdGltZSkKKyAgICAgICAg
c2VsZi5fcHJpbnRfZGVmYXVsdCgnJykKIAogICAgIGRlZiBfcHJpbnRfYmFzZWxpbmUoc2VsZiwg
dGVzdF9uYW1lLCBleHRlbnNpb24pOgogICAgICAgICBiYXNlbGluZSA9IHNlbGYuX3BvcnQuZXhw
ZWN0ZWRfZmlsZW5hbWUodGVzdF9uYW1lLCBleHRlbnNpb24pCkBAIC01MDUsMTggKzM1NCwxNCBA
QCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICByZWxwYXRoID0gc2VsZi5fcG9y
dC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKGJhc2VsaW5lKQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgcmVscGF0aCA9ICc8bm9uZT4nCi0gICAgICAgIHNlbGYuX3dyaXRlKCcgICVzOiAlcycg
JSAoZXh0ZW5zaW9uWzE6XSwgcmVscGF0aCkpCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQo
JyAgJXM6ICVzJyAlIChleHRlbnNpb25bMTpdLCByZWxwYXRoKSkKIAogICAgIGRlZiBfcHJpbnRf
dW5leHBlY3RlZF90ZXN0X3Jlc3VsdChzZWxmLCByZXN1bHQpOgotICAgICAgICAiIiJQcmludHMg
b25lIHVuZXhwZWN0ZWQgdGVzdCByZXN1bHQgbGluZS4iIiIKICAgICAgICAgZGVzYyA9IFRlc3RF
eHBlY3RhdGlvbnMuRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TW3Jlc3VsdC50eXBlXVswXQotICAg
ICAgICBzZWxmLndyaXRlKCIgICVzIC0+IHVuZXhwZWN0ZWQgJXMiICUgKHJlc3VsdC50ZXN0X25h
bWUsIGRlc2MpLCAidW5leHBlY3RlZCIpCisgICAgICAgIHNlbGYuX3ByaW50X3F1aWV0KCIgICVz
IC0+IHVuZXhwZWN0ZWQgJXMiICUgKHJlc3VsdC50ZXN0X25hbWUsIGRlc2MpKQogCi0gICAgZGVm
IHByaW50X3Byb2dyZXNzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeWluZywgdGVzdF9saXN0
KToKKyAgICBkZWYgX3ByaW50X3Byb2dyZXNzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeWlu
ZywgdGVzdF9saXN0KToKICAgICAgICAgIiIiUHJpbnQgcHJvZ3Jlc3MgdGhyb3VnaCB0aGUgdGVz
dHMgYXMgZGV0ZXJtaW5lZCBieSAtLXByaW50LiIiIgotICAgICAgICBpZiBzZWxmLmRpc2FibGVk
KCdvbmUtbGluZS1wcm9ncmVzcycpOgotICAgICAgICAgICAgcmV0dXJuCi0KICAgICAgICAgaWYg
cmVzdWx0X3N1bW1hcnkucmVtYWluaW5nID09IDA6CiAgICAgICAgICAgICBzZWxmLl9tZXRlci53
cml0ZV91cGRhdGUoJycpCiAgICAgICAgICAgICByZXR1cm4KQEAgLTUzMSwxMSArMzc2LDggQEAg
Y2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAgKGFjdGlvbiwgcGVyY2VudF9jb21w
bGV0ZSwgcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQsCiAgICAgICAgICAgICAgcmVzdWx0X3N1bW1h
cnkudW5leHBlY3RlZCwgcmVzdWx0X3N1bW1hcnkucmVtYWluaW5nKSkKIAotICAgIGRlZiBwcmlu
dF91bmV4cGVjdGVkX3Jlc3VsdHMoc2VsZiwgdW5leHBlY3RlZF9yZXN1bHRzKToKLSAgICAgICAg
IiIiUHJpbnRzIGEgbGlzdCBvZiB0aGUgdW5leHBlY3RlZCByZXN1bHRzIHRvIHRoZSBidWlsZGJv
dCBzdHJlYW0uIiIiCi0gICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ3VuZXhwZWN0ZWQtcmVzdWx0
cycpOgotICAgICAgICAgICAgcmV0dXJuCi0KKyAgICBkZWYgX3ByaW50X3VuZXhwZWN0ZWRfcmVz
dWx0cyhzZWxmLCB1bmV4cGVjdGVkX3Jlc3VsdHMpOgorICAgICAgICAjIFByaW50cyB0byB0aGUg
YnVpbGRib3Qgc3RyZWFtCiAgICAgICAgIHBhc3NlcyA9IHt9CiAgICAgICAgIGZsYWt5ID0ge30K
ICAgICAgICAgcmVncmVzc2lvbnMgPSB7fQpAQCAtNTQ4LDE3ICszOTAsMTEgQEAgY2xhc3MgUHJp
bnRlcihvYmplY3QpOgogICAgICAgICAgICAgZXhwZWN0ZWQgPSByZXN1bHRzWydleHBlY3RlZCdd
LnNwbGl0KCIgIikKICAgICAgICAgICAgIGlmIGFjdHVhbCA9PSBbJ1BBU1MnXToKICAgICAgICAg
ICAgICAgICBpZiAnQ1JBU0gnIGluIGV4cGVjdGVkOgotICAgICAgICAgICAgICAgICAgICBhZGRf
dG9fZGljdF9vZl9saXN0cyhwYXNzZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdFeHBlY3RlZCB0byBjcmFzaCwgYnV0IHBhc3NlZCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QpCisgICAgICAgICAgICAgICAgICAgIGFk
ZF90b19kaWN0X29mX2xpc3RzKHBhc3NlcywgJ0V4cGVjdGVkIHRvIGNyYXNoLCBidXQgcGFzc2Vk
JywgdGVzdCkKICAgICAgICAgICAgICAgICBlbGlmICdUSU1FT1VUJyBpbiBleHBlY3RlZDoKLSAg
ICAgICAgICAgICAgICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMocGFzc2VzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgdG8gdGltZW91dCwgYnV0
IHBhc3NlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
KQorICAgICAgICAgICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9saXN0cyhwYXNzZXMsICdFeHBl
Y3RlZCB0byB0aW1lb3V0LCBidXQgcGFzc2VkJywgdGVzdCkKICAgICAgICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9saXN0cyhwYXNzZXMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFeHBlY3RlZCB0byBmYWlsLCBi
dXQgcGFzc2VkJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dCkKKyAgICAgICAgICAgICAgICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMocGFzc2VzLCAnRXhw
ZWN0ZWQgdG8gZmFpbCwgYnV0IHBhc3NlZCcsIHRlc3QpCiAgICAgICAgICAgICBlbGlmIGxlbihh
Y3R1YWwpID4gMToKICAgICAgICAgICAgICAgICAjIFdlIGdyb3VwIGZsYWt5IHRlc3RzIGJ5IHRo
ZSBmaXJzdCBhY3R1YWwgcmVzdWx0IHdlIGdvdC4KICAgICAgICAgICAgICAgICBhZGRfdG9fZGlj
dF9vZl9saXN0cyhmbGFreSwgYWN0dWFsWzBdLCB0ZXN0KQpAQCAtNTY4LDIzICs0MDQsMjEgQEAg
Y2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICByZXN1bHRzanNvbnBhcnNlci5mb3JfZWFj
aF90ZXN0KHVuZXhwZWN0ZWRfcmVzdWx0c1sndGVzdHMnXSwgYWRkX3Jlc3VsdCkKIAogICAgICAg
ICBpZiBsZW4ocGFzc2VzKSBvciBsZW4oZmxha3kpIG9yIGxlbihyZWdyZXNzaW9ucyk6Ci0gICAg
ICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUoIlxuIikKLQorICAgICAgICAgICAg
c2VsZi5fcHJpbnRfZm9yX2JvdCgiIikKICAgICAgICAgaWYgbGVuKHBhc3Nlcyk6CiAgICAgICAg
ICAgICBmb3Iga2V5LCB0ZXN0cyBpbiBwYXNzZXMuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtLndyaXRlKCIlczogKCVkKVxuIiAlIChrZXksIGxlbih0
ZXN0cykpKQorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiVzOiAoJWQpIiAl
IChrZXksIGxlbih0ZXN0cykpKQogICAgICAgICAgICAgICAgIHRlc3RzLnNvcnQoKQogICAgICAg
ICAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9i
dWlsZGJvdF9zdHJlYW0ud3JpdGUoIiAgJXNcbiIgJSB0ZXN0KQotICAgICAgICAgICAgICAgIHNl
bGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgiXG4iKQotICAgICAgICAgICAgc2VsZi5fYnVpbGRi
b3Rfc3RyZWFtLndyaXRlKCJcbiIpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zv
cl9ib3QoIiAgJXMiICUgdGVzdCkKKyAgICAgICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90
KCIiKQorICAgICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiIikKIAogICAgICAgICBpZiBs
ZW4oZmxha3kpOgogICAgICAgICAgICAgZGVzY3JpcHRpb25zID0gVGVzdEV4cGVjdGF0aW9ucy5F
WFBFQ1RBVElPTl9ERVNDUklQVElPTlMKICAgICAgICAgICAgIGZvciBrZXksIHRlc3RzIGluIGZs
YWt5Lml0ZXJpdGVtcygpOgogICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRlc3RFeHBlY3RhdGlv
bnMuRVhQRUNUQVRJT05TW2tleS5sb3dlcigpXQotICAgICAgICAgICAgICAgIHNlbGYuX2J1aWxk
Ym90X3N0cmVhbS53cml0ZSgiVW5leHBlY3RlZCBmbGFraW5lc3M6ICVzICglZClcbiIKLSAgICAg
ICAgICAgICAgICAgICAgJSAoZGVzY3JpcHRpb25zW3Jlc3VsdF1bMV0sIGxlbih0ZXN0cykpKQor
ICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoInVuZXhwZWN0ZWQgZmxha2luZXNz
OiAlcyAoJWQpIiAlIChkZXNjcmlwdGlvbnNbcmVzdWx0XVsxXSwgbGVuKHRlc3RzKSkpCiAgICAg
ICAgICAgICAgICAgdGVzdHMuc29ydCgpCiAKICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiB0
ZXN0czoKQEAgLTU5Myw0MSArNDI3LDQxIEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSByZXN1bHRbJ2V4cGVjdGVkJ10uc3BsaXQoIiAiKQog
ICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9O
U1trZXkubG93ZXIoKV0KICAgICAgICAgICAgICAgICAgICAgbmV3X2V4cGVjdGF0aW9uc19saXN0
ID0gbGlzdChzZXQoYWN0dWFsKSB8IHNldChleHBlY3RlZCkpCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgiICAlcyA9ICVzXG4iICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgICh0ZXN0LCAiICIuam9pbihuZXdfZXhwZWN0YXRpb25zX2xpc3QpKSkKLSAg
ICAgICAgICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUoIlxuIikKLSAgICAgICAg
ICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgiXG4iKQorICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9wcmludF9mb3JfYm90KCIgICVzID0gJXMiICUgKHRlc3QsICIgIi5qb2luKG5ld19l
eHBlY3RhdGlvbnNfbGlzdCkpKQorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3Qo
IiIpCisgICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQogCiAgICAgICAgIGlmIGxl
bihyZWdyZXNzaW9ucyk6CiAgICAgICAgICAgICBkZXNjcmlwdGlvbnMgPSBUZXN0RXhwZWN0YXRp
b25zLkVYUEVDVEFUSU9OX0RFU0NSSVBUSU9OUwogICAgICAgICAgICAgZm9yIGtleSwgdGVzdHMg
aW4gcmVncmVzc2lvbnMuaXRlcml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVGVz
dEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTlNba2V5Lmxvd2VyKCldCi0gICAgICAgICAgICAgICAg
c2VsZi5fYnVpbGRib3Rfc3RyZWFtLndyaXRlKAotICAgICAgICAgICAgICAgICAgICAiUmVncmVz
c2lvbnM6IFVuZXhwZWN0ZWQgJXMgOiAoJWQpXG4iICUgKAotICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbnNbcmVzdWx0XVsxXSwgbGVuKHRlc3RzKSkpCisgICAgICAgICAgICAgICAgc2Vs
Zi5fcHJpbnRfZm9yX2JvdCgiUmVncmVzc2lvbnM6IHVuZXhwZWN0ZWQgJXMgOiAoJWQpIiAlIChk
ZXNjcmlwdGlvbnNbcmVzdWx0XVsxXSwgbGVuKHRlc3RzKSkpCiAgICAgICAgICAgICAgICAgdGVz
dHMuc29ydCgpCiAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSgiICAlcyA9ICVzXG4iICUgKHRl
c3QsIGtleSkpCi0gICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtLndyaXRlKCJc
biIpCi0gICAgICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUoIlxuIikKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiICAlcyA9ICVzIiAlICh0ZXN0LCBr
ZXkpKQorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiIpCiAKICAgICAgICAg
aWYgbGVuKHVuZXhwZWN0ZWRfcmVzdWx0c1sndGVzdHMnXSkgYW5kIHNlbGYuX29wdGlvbnMuZGVi
dWdfcnd0X2xvZ2dpbmc6Ci0gICAgICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUo
IiVzXG4iICUgKCItIiAqIDc4KSkKKyAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiVz
IiAlICgiLSIgKiA3OCkpCiAKLSAgICBkZWYgd3JpdGVfdXBkYXRlKHNlbGYsIG1zZyk6Ci0gICAg
ICAgIGlmIHNlbGYuZGlzYWJsZWQoJ3VwZGF0ZXMnKToKLSAgICAgICAgICAgIHJldHVybgotICAg
ICAgICBzZWxmLl9tZXRlci53cml0ZV91cGRhdGUobXNnKQorICAgIGRlZiBfcHJpbnRfcXVpZXQo
c2VsZiwgbXNnKToKKyAgICAgICAgc2VsZi53cml0ZWxuKG1zZykKIAotICAgIGRlZiB3cml0ZShz
ZWxmLCBtc2csIG9wdGlvbj0ibWlzYyIpOgotICAgICAgICBpZiBzZWxmLmRpc2FibGVkKG9wdGlv
bik6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5fd3JpdGUobXNnKQorICAgIGRl
ZiBfcHJpbnRfZGVmYXVsdChzZWxmLCBtc2cpOgorICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9u
cy5xdWlldDoKKyAgICAgICAgICAgIHNlbGYud3JpdGVsbihtc2cpCisKKyAgICBkZWYgX3ByaW50
X2RlYnVnKHNlbGYsIG1zZyk6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZGVidWdfcnd0X2xv
Z2dpbmc6CisgICAgICAgICAgICBzZWxmLndyaXRlbG4obXNnKQorCisgICAgZGVmIF9wcmludF9m
b3JfYm90KHNlbGYsIG1zZyk6CisgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZSht
c2cgKyAiXG4iKQogCi0gICAgZGVmIHdyaXRlbG4oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAg
ICAgICAgc2VsZi5fbWV0ZXIud3JpdGVsbigqYXJncywgKiprd2FyZ3MpCisgICAgZGVmIHdyaXRl
X3VwZGF0ZShzZWxmLCBtc2cpOgorICAgICAgICBzZWxmLl9tZXRlci53cml0ZV91cGRhdGUobXNn
KQogCi0gICAgZGVmIF93cml0ZShzZWxmLCBtc2cpOgorICAgIGRlZiB3cml0ZWxuKHNlbGYsIG1z
Zyk6CiAgICAgICAgIHNlbGYuX21ldGVyLndyaXRlbG4obXNnKQogCiAgICAgZGVmIGZsdXNoKHNl
bGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmll
d3MvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQppbmRleCBmYTgwYWNhMDMwMGViYmI1MWE2
NTc5OGQzNWZiMDExOWRmNjBlNjUxLi41NjQ4MjZjYmM0ZTU5ZDhlZDAxOTQ1MTI0MDYyZTc5ZTRh
NGVjNDk1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92
aWV3cy9wcmludGluZ191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQpAQCAtNzIsNyArNzIsNyBAQCBj
bGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzdHJlYW0uYnVm
bGlzdCA9IFtdCiAgICAgICAgIHN0cmVhbS5idWYgPSAnJwogCi0gICAgZGVmIGdldF9wcmludGVy
KHNlbGYsIGFyZ3M9Tm9uZSwgdHR5PUZhbHNlKToKKyAgICBkZWYgZ2V0X3ByaW50ZXIoc2VsZiwg
YXJncz1Ob25lKToKICAgICAgICAgYXJncyA9IGFyZ3Mgb3IgW10KICAgICAgICAgcHJpbnRpbmdf
b3B0aW9ucyA9IHByaW50aW5nLnByaW50X29wdGlvbnMoKQogICAgICAgICBvcHRpb25fcGFyc2Vy
ID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKG9wdGlvbl9saXN0PXByaW50aW5nX29wdGlvbnMpCkBA
IC04Miw3ICs4Miw2IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIG5wcm9jID0gMgogCiAgICAgICAgIHJlZ3VsYXJfb3V0cHV0ID0gU3RyaW5nSU8uU3Ry
aW5nSU8oKQotICAgICAgICByZWd1bGFyX291dHB1dC5pc2F0dHkgPSBsYW1iZGE6IHR0eQogICAg
ICAgICBidWlsZGJvdF9vdXRwdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCiAgICAgICAgIHByaW50
ZXIgPSBwcmludGluZy5QcmludGVyKHNlbGYuX3BvcnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0
LCBidWlsZGJvdF9vdXRwdXQpCiAgICAgICAgIHJldHVybiBwcmludGVyLCByZWd1bGFyX291dHB1
dCwgYnVpbGRib3Rfb3V0cHV0CkBAIC0xMjIsMjUgKzEyMSwzMCBAQCBjbGFzcyAgVGVzdHByaW50
ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBwcmludGVyLnByaW50X2NvbmZpZygpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnQmFzZWxpbmUgc2VhcmNoIHBhdGg6IHRlc3QtbWFjLWxl
b3BhcmQgLT4gdGVzdC1tYWMtc25vd2xlb3BhcmQgLT4gZ2VuZXJpYycgaW4gZXJyLmdldHZhbHVl
KCkpCiAKKyAgICAgICAgc2VsZi5yZXNldChlcnIpCisgICAgICAgIHByaW50ZXIuX29wdGlvbnMu
cXVpZXQgPSBUcnVlCisgICAgICAgIHByaW50ZXIucHJpbnRfY29uZmlnKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZSgnQmFzZWxpbmUgc2VhcmNoIHBhdGg6IHRlc3QtbWFjLWxlb3BhcmQgLT4g
dGVzdC1tYWMtc25vd2xlb3BhcmQgLT4gZ2VuZXJpYycgaW4gZXJyLmdldHZhbHVlKCkpCisKICAg
ICBkZWYgdGVzdF9wcmludF9vbmVfbGluZV9zdW1tYXJ5KHNlbGYpOgogICAgICAgICBwcmludGVy
LCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQotICAgICAgICBwcmludGVyLnByaW50X29u
ZV9saW5lX3N1bW1hcnkoMSwgMSwgMCkKKyAgICAgICAgcHJpbnRlci5fcHJpbnRfb25lX2xpbmVf
c3VtbWFyeSgxLCAxLCAwKQogICAgICAgICBzZWxmLmFzc2VydFdyaXR0ZW4oZXJyLCBbIlRoZSB0
ZXN0IHJhbiBhcyBleHBlY3RlZC5cbiIsICJcbiJdKQogCiAgICAgICAgIHByaW50ZXIsIGVyciwg
b3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCi0gICAgICAgIHByaW50ZXIucHJpbnRfb25lX2xpbmVf
c3VtbWFyeSgxLCAxLCAwKQorICAgICAgICBwcmludGVyLl9wcmludF9vbmVfbGluZV9zdW1tYXJ5
KDEsIDEsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsiVGhlIHRlc3QgcmFu
IGFzIGV4cGVjdGVkLlxuIiwgIlxuIl0pCiAKICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBz
ZWxmLmdldF9wcmludGVyKCkKLSAgICAgICAgcHJpbnRlci5wcmludF9vbmVfbGluZV9zdW1tYXJ5
KDIsIDEsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsiMSB0ZXN0IHJhbiBh
cyBleHBlY3RlZCwgMSBkaWRuJ3Q6XG4iLCAiXG4iXSkKKyAgICAgICAgcHJpbnRlci5fcHJpbnRf
b25lX2xpbmVfc3VtbWFyeSgyLCAxLCAxKQorICAgICAgICBzZWxmLmFzc2VydFdyaXR0ZW4oZXJy
LCBbIlxuIiwgIjEgdGVzdCByYW4gYXMgZXhwZWN0ZWQsIDEgZGlkbid0OlxuIiwgIlxuIl0pCiAK
ICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKLSAgICAgICAg
cHJpbnRlci5wcmludF9vbmVfbGluZV9zdW1tYXJ5KDMsIDIsIDEpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0V3JpdHRlbihlcnIsIFsiMiB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQsIDEgZGlkbid0OlxuIiwg
IlxuIl0pCisgICAgICAgIHByaW50ZXIuX3ByaW50X29uZV9saW5lX3N1bW1hcnkoMywgMiwgMSkK
KyAgICAgICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWyJcbiIsICIyIHRlc3RzIHJhbiBhcyBl
eHBlY3RlZCwgMSBkaWRuJ3Q6XG4iLCAiXG4iXSkKIAogICAgICAgICBwcmludGVyLCBlcnIsIG91
dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQotICAgICAgICBwcmludGVyLnByaW50X29uZV9saW5lX3N1
bW1hcnkoMywgMiwgMCkKKyAgICAgICAgcHJpbnRlci5fcHJpbnRfb25lX2xpbmVfc3VtbWFyeSgz
LCAyLCAwKQogICAgICAgICBzZWxmLmFzc2VydFdyaXR0ZW4oZXJyLCBbJ1xuJywgIjIgdGVzdHMg
cmFuIGFzIGV4cGVjdGVkICgxIGRpZG4ndCBydW4pLlxuIiwgJ1xuJ10pCiAKICAgICBkZWYgdGVz
dF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMoc2VsZik6CkBAIC0xOTksMjcgKzIwMywyNyBAQCBj
bGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgICMgdGVzdCBl
dmVyeXRoaW5nIHJ1bm5pbmcgYXMgZXhwZWN0ZWQKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3Rl
ZF9yZXN1bHRzKGV4cGVjdGVkPVRydWUsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZhbHNlKQotICAg
ICAgICBwcmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKKyAgICAgICAgcHJpbnRl
ci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQogICAgICAgICBzZWxmLmFzc2VydEVtcHR5
KGVycikKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCiAKICAgICAgICAgIyB0ZXN0IGZh
aWx1cmVzCiAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCiAg
ICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxzZSwgcGFzc2lu
Zz1GYWxzZSwgZmxha3k9RmFsc2UpCi0gICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9y
ZXN1bHRzKHVyKQorICAgICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQogICAgICAgICBzZWxmLmFzc2VydE5vdEVt
cHR5KG91dCkKIAogICAgICAgICAjIHRlc3QgdW5leHBlY3RlZCBmbGFreQogICAgICAgICBwcmlu
dGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICB1ciA9IGdldF91bmV4
cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PVRydWUp
Ci0gICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQorICAgICAgICBw
cmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RW1wdHkoZXJyKQogICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKIAogICAgICAgICBw
cmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICB1ciA9IGdldF91
bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZh
bHNlKQotICAgICAgICBwcmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKKyAgICAg
ICAgcHJpbnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQogICAgICAgICBzZWxmLmFz
c2VydEVtcHR5KGVycikKICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQpCiAKQEAgLTIy
OSwxMyArMjMzLDEzIEBAIEJVR1ggOiBmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwgPSBU
SU1FT1VUCiAiIiIKICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVy
KCkKICAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVjdGVkPUZhbHNlLCBw
YXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKLSAgICAgICAgcHJpbnRlci5wcmludF91bmV4cGVj
dGVkX3Jlc3VsdHModXIpCisgICAgICAgIHByaW50ZXIuX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0
cyh1cikKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCiAgICAgICAgIHNlbGYuYXNzZXJ0
Tm90RW1wdHkob3V0KQogCiAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJp
bnRlcigpCiAgICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxz
ZSwgcGFzc2luZz1UcnVlLCBmbGFreT1GYWxzZSkKLSAgICAgICAgcHJpbnRlci5wcmludF91bmV4
cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHByaW50ZXIuX3ByaW50X3VuZXhwZWN0ZWRfcmVz
dWx0cyh1cikKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0Tm90RW1wdHkob3V0KQogCkBAIC0yNDcsMjkgKzI1MSw3IEBAIEJVR1ggOiBmYWlsdXJlcy9l
eHBlY3RlZC90aW1lb3V0Lmh0bWwgPSBUSU1FT1VUCiAgICAgZGVmIHRlc3RfZGV0YWlscyhzZWxm
KToKICAgICAgICAgcHJpbnRlciwgZXJyLCBfID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tZGV0YWls
cyddKQogICAgICAgICByZXN1bHQgPSBzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy9pbWFnZS5odG1s
JykKLSAgICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPUZh
bHNlLCBleHBfc3RyPScnLCBnb3Rfc3RyPScnKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5
KGVycikKLQotICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2VsZik6Ci0gICAgICAgIHByaW50ZXIsIGVy
ciwgXyA9IHNlbGYuZ2V0X3ByaW50ZXIoKQotICAgICAgICBwcmludGVyLnByaW50X3RpbWluZygi
Zm9vIikKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0gICAgICAgIHByaW50ZXIuX3By
aW50X2NvbmZpZygiZm9vIikKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShlcnIpCi0KLSAg
ICBkZWYgdGVzdF9xdWlldChzZWxmKToKLSAgICAgICAgcHJpbnRlciwgZXJyLCBfID0gc2VsZi5n
ZXRfcHJpbnRlcihbJy0tcXVpZXQnXSkKLSAgICAgICAgcHJpbnRlci5fcHJpbnRfY29uZmlnKCJm
b28iKQotICAgICAgICBwcmludGVyLnByaW50X3RpbWluZygiZm9vIikKLSAgICAgICAgc2VsZi5h
c3NlcnRFbXB0eShlcnIpCi0KLSAgICBkZWYgdGVzdF92ZXJib3NlKHNlbGYpOgotICAgICAgICBw
cmludGVyLCBlcnIsIF8gPSBzZWxmLmdldF9wcmludGVyKFsnLS12ZXJib3NlJ10pCi0gICAgICAg
IHByaW50ZXIucHJpbnRfdGltaW5nKCJmb28iKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5
KGVycikKLQotICAgICAgICBwcmludGVyLCBlcnIsIF8gPSBzZWxmLmdldF9wcmludGVyKFsnLS12
ZXJib3NlJ10pCi0gICAgICAgIHByaW50ZXIuX3ByaW50X2NvbmZpZygiZm9vIikKKyAgICAgICAg
cHJpbnRlci5fcHJpbnRfdGVzdF9yZXN1bHQocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgZXhwX3N0
cj0nJywgZ290X3N0cj0nJykKICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShlcnIpCiAKIAo=
</data>
<flag name="review"
          id="165871"
          type_id="1"
          status="+"
          setter="dpranke"
    />
          </attachment>
      

    </bug>

</bugzilla>