<?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>104165</bug_id>
          
          <creation_ts>2012-12-05 13:30:31 -0800</creation_ts>
          <short_desc>nrwt: split all of the buildbot-specific output into its own file</short_desc>
          <delta_ts>2012-12-05 15:29:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>104158</dependson>
          <blocked>103824</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>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784067</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-05 13:30:31 -0800</bug_when>
    <thetext>nrwt: split all of the buildbot-specific output into its own file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784068</commentid>
    <comment_count>1</comment_count>
      <attachid>177822</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-05 13:32:00 -0800</bug_when>
    <thetext>Created attachment 177822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784099</commentid>
    <comment_count>2</comment_count>
      <attachid>177822</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-05 14:08:34 -0800</bug_when>
    <thetext>Comment on attachment 177822
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/views/buildbot_results.py:61
&gt; +        pct_passed = 0.0

s/pct/percent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784112</commentid>
    <comment_count>3</comment_count>
      <attachid>177829</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-05 14:24:41 -0800</bug_when>
    <thetext>Created attachment 177829
merge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784115</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-05 14:27:39 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 177822 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177822&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/views/buildbot_results.py:61
&gt; &gt; +        pct_passed = 0.0
&gt; 
&gt; s/pct/percent

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784185</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-05 15:29:36 -0800</bug_when>
    <thetext>Committed r136771: &lt;http://trac.webkit.org/changeset/136771&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177822</attachid>
            <date>2012-12-05 13:32:00 -0800</date>
            <delta_ts>2012-12-05 14:24:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104165-20121205132925.patch</filename>
            <type>text/plain</type>
            <size>66576</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NzMzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjlkOTBlYTdlNzI5YmJkYWM0N2NkNGI4MzVmZGNhNzM3
NmU3Yjc1My4uMjdiYThkNjdkMjJmYjE1NDg5ZGVlM2VlNWU5YTZiOWIyM2E4MTAyZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDky
IEBACiAyMDEyLTEyLTA1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHNwbGl0IGFsbCBvZiB0aGUgYnVpbGRib3Qtc3BlY2lmaWMgb3V0cHV0IGlu
dG8gaXRzIG93biBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDQxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOb3cgdGhhdCB3ZSBoYXZlIHRoZSBSdW5EZXRhaWxzIG9iamVjdCB3ZSBjYW4gbW92
ZSBhbGwgb2YgdGhlCisgICAgICAgIGJ1aWxkYm90LXNwZWNpZmljIGtub3dsZWRnZSBvdXQgb2Yg
dGhlIGNvcmUgdGVzdC1ydW5uaW5nIGNvZGUKKyAgICAgICAgYW5kIGludG8gdGhlIG91dGVybW9z
dCBydW5fd2Via2l0X3Rlc3RzIGxheWVyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKHJ1bik6CisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAgICAgICAgKHBhc3NpbmdfcnVuKToKKyAg
ICAgICAgKGxvZ2dpbmdfcnVuKToKKyAgICAgICAgKHJ1bl9hbmRfY2FwdHVyZSk6CisgICAgICAg
IChNYWluVGVzdC50ZXN0X2FsbCk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X21heF9sb2NrZWRf
c2hhcmRzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfY2hpbGRfcHJvY2Vzc2VzXzIpOgorICAg
ICAgICAoTWFpblRlc3QudGVzdF9jaGlsZF9wcm9jZXNzZXNfbWluKToKKyAgICAgICAgKE1haW5U
ZXN0LnRlc3RfZnVsbF9yZXN1bHRzX2h0bWwpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9odW5n
X3RocmVhZCk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X2tleWJvYXJkX2ludGVycnVwdCk6Cisg
ICAgICAgIChNYWluVGVzdC50ZXN0X25vX3Rlc3RzX2ZvdW5kKToKKyAgICAgICAgKE1haW5UZXN0
LnRlc3Rfbm9fdGVzdHNfZm91bmRfMik6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JlcGVhdF9l
YWNoX2l0ZXJhdGlvbnNfbnVtX3Rlc3RzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfcnVuX3Np
bmdseV9hY3R1YWxseV9ydW5zX3Rlc3RzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdGVzdF9s
aXN0KToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlcyk6CisgICAg
ICAgIChNYWluVGVzdC50ZXN0X21pc3NpbmdfYW5kX3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAg
ICAgIChNYWluVGVzdC50ZXN0X3BpeGVsX3Rlc3RfZGlyZWN0b3JpZXMpOgorICAgICAgICAoTWFp
blRlc3QudGVzdF9taXNzaW5nX2FuZF91bmV4cGVjdGVkX3Jlc3VsdHNfd2l0aF9jdXN0b21fZXhp
dF9jb2RlKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfY3Jhc2hfd2l0aF9zdGRlcnIpOgorICAg
ICAgICAoTWFpblRlc3QudGVzdF9ub19pbWFnZV9mYWlsdXJlX3dpdGhfaW1hZ2VfZGlmZik6Cisg
ICAgICAgIChNYWluVGVzdC50ZXN0X2NyYXNoX2xvZyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0
X3dlYl9wcm9jZXNzX2NyYXNoX2xvZyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X2V4aXRfYWZ0
ZXJfbl9mYWlsdXJlc191cGxvYWQpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9yZXN1bHRzX2Rp
cmVjdG9yeV9hYnNvbHV0ZSk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3Jlc3VsdHNfZGlyZWN0
b3J5X2RlZmF1bHQpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9yZXN1bHRzX2RpcmVjdG9yeV9y
ZWxhdGl2ZSk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JldHJ5aW5nX2FuZF9mbGFreV90ZXN0
cyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JlZnRlc3Rfc2hvdWxkX25vdF91c2VfbmFtaW5n
X2NvbnZlbnRpb25faWZfbm90X2xpc3RlZF9pbl9yZWZ0ZXN0bGlzdCk6CisgICAgICAgIChNYWlu
VGVzdC50ZXN0X291dHB1dF9kaWZmcyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3Vuc3VwcG9y
dGVkX3BsYXRmb3JtKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdmVyYm9zZV9pbl9jaGlsZF9w
cm9jZXNzZXMpOgorICAgICAgICAoRW5kVG9FbmRUZXN0LnRlc3RfZW5kX3RvX2VuZCk6CisgICAg
ICAgIChFbmRUb0VuZFRlc3QudGVzdF9yZWZ0ZXN0X3dpdGhfdHdvX25vdHJlZnMpOgorICAgICAg
ICAoUmViYXNlbGluZVRlc3QudGVzdF9yZXNldF9yZXN1bHRzKToKKyAgICAgICAgKFJlYmFzZWxp
bmVUZXN0LnRlc3RfbWlzc2luZ19yZXN1bHRzKToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0LnRl
c3RfbmV3X2Jhc2VsaW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEJ1aWxkQm90UHJp
bnRlcik6CisgICAgICAgIChCdWlsZEJvdFByaW50ZXIuX19pbml0X18pOgorICAgICAgICAoQnVp
bGRCb3RQcmludGVyLnByaW50X3Jlc3VsdHMpOgorICAgICAgICAoQnVpbGRCb3RQcmludGVyLl9w
cmludCk6CisgICAgICAgIChCdWlsZEJvdFByaW50ZXIucHJpbnRfcmVzdWx0X3N1bW1hcnkpOgor
ICAgICAgICAoQnVpbGRCb3RQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeSk6Cisg
ICAgICAgIChCdWlsZEJvdFByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAg
ICAgKEJ1aWxkQm90UHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMuYWRkX3RvX2RpY3Rf
b2ZfbGlzdHMpOgorICAgICAgICAoQnVpbGRCb3RQcmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVz
dWx0cy5hZGRfcmVzdWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKEJ1
aWxkQm90UHJpbnRlclRlc3RzKToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3RzLmFzc2Vy
dEVtcHR5KToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3RzLmFzc2VydE5vdEVtcHR5KToK
KyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3RzLmdldF9wcmludGVyKToKKyAgICAgICAgKEJ1
aWxkQm90UHJpbnRlclRlc3RzLmdldF9yZXN1bHQpOgorICAgICAgICAoQnVpbGRCb3RQcmludGVy
VGVzdHMuZ2V0X3Jlc3VsdF9zdW1tYXJ5KToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3Rz
LnRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRl
clRlc3RzLnRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzLmdldF91bmV4cGVjdGVkX3Jlc3Vs
dHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50
aW5nLnB5OgorICAgICAgICAoUHJpbnRlcik6CisgICAgICAgIChQcmludGVyLl9faW5pdF9fKToK
KyAgICAgICAgKFByaW50ZXIucHJpbnRfcmVzdWx0cyk6CisgICAgICAgIChQcmludGVyLl9wcmlu
dF9zdGF0aXN0aWNzX2Zvcl90ZXN0X3RpbWluZ3MpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRf
YmFzZWxpbmUpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfZGVidWcpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAoVGVzdHByaW50ZXIuZ2V0X3ByaW50ZXIpOgorICAgICAgICAoVGVzdHByaW50ZXIu
Z2V0X3Jlc3VsdCk6CisgICAgICAgIChUZXN0cHJpbnRlci50ZXN0X2NvbmZpZ3VyZV9hbmRfY2xl
YW51cCk6CisgICAgICAgIChUZXN0cHJpbnRlci50ZXN0X3ByaW50X2NvbmZpZyk6CisgICAgICAg
IChUZXN0cHJpbnRlci50ZXN0X3ByaW50X29uZV9saW5lX3N1bW1hcnkpOgorICAgICAgICAoVGVz
dHByaW50ZXIudGVzdF90ZXN0X3N0YXR1c19saW5lKToKKyAgICAgICAgKFRlc3RwcmludGVyLnRl
c3RfZGV0YWlscyk6CisKKzIwMTItMTItMDUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgbnJ3dDogY29sbGVjdCBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGFi
b3V0IGEgcnVuIGludG8gYSBuZXcgUnVuRGV0YWlscyBjbGFzcwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MTU4CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4
IDU5MTZkZjYzZWE0YTc3YzIzNTM4MzFjOGJlZjA0NWZiOGNmNWYxMTkuLjM5ZjZmMmEyMTFhYzUy
NGM5OTg5OTAyZjAyY2IwZDU3NjZiY2M3Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtMzksNiArMzks
NyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5tYW5hZ2VyIGltcG9ydCBNYW5hZ2VyCiBmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZXhwZWN0YXRpb25zCiBmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBjb25maWd1cmF0aW9uX29wdGlvbnMs
IHBsYXRmb3JtX29wdGlvbnMKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZpZXdzIGltcG9y
dCBidWlsZGJvdF9yZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy52aWV3cyBpbXBv
cnQgcHJpbnRpbmcKIAogCkBAIC04Niw5ICs4Nyw5IEBAIGRlZiBsaW50KHBvcnQsIG9wdGlvbnMp
OgogICAgIHJldHVybiAwCiAKIAotZGVmIHJ1bihwb3J0LCBvcHRpb25zLCBhcmdzLCByZWd1bGFy
X291dHB1dD1zeXMuc3RkZXJyLCBidWlsZGJvdF9vdXRwdXQ9c3lzLnN0ZG91dCk6CitkZWYgcnVu
KHBvcnQsIG9wdGlvbnMsIGFyZ3MsIGxvZ2dpbmdfc3RyZWFtKToKICAgICB0cnk6Ci0gICAgICAg
IHByaW50ZXIgPSBwcmludGluZy5QcmludGVyKHBvcnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0
LCBidWlsZGJvdF9vdXRwdXQsIGxvZ2dlcj1sb2dnaW5nLmdldExvZ2dlcigpKQorICAgICAgICBw
cmludGVyID0gcHJpbnRpbmcuUHJpbnRlcihwb3J0LCBvcHRpb25zLCBsb2dnaW5nX3N0cmVhbSwg
bG9nZ2VyPWxvZ2dpbmcuZ2V0TG9nZ2VyKCkpCiAKICAgICAgICAgX3NldF91cF9kZXJpdmVkX29w
dGlvbnMocG9ydCwgb3B0aW9ucykKICAgICAgICAgbWFuYWdlciA9IE1hbmFnZXIocG9ydCwgb3B0
aW9ucywgcHJpbnRlcikKQEAgLTM5Niw3ICszOTcsNyBAQCBkZWYgcGFyc2VfYXJncyhhcmdzPU5v
bmUpOgogICAgIHJldHVybiBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKIAogCi1kZWYg
bWFpbihhcmd2PU5vbmUpOgorZGVmIG1haW4oYXJndj1Ob25lLCBzdGRvdXQ9c3lzLnN0ZG91dCwg
c3RkZXJyPXN5cy5zdGRlcnIpOgogICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZV9hcmdzKGFyZ3Yp
CiAgICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSBhbmQgJ3Rlc3QnIGluIG9wdGlvbnMucGxhdGZvcm06
CiAgICAgICAgICMgSXQncyBhIGJpdCBsYW1lIHRvIGltcG9ydCBtb2NrcyBpbnRvIHJlYWwgY29k
ZSwgYnV0IHRoaXMgYWxsb3dzIHRoZSB1c2VyCkBAIC00MTEsMTcgKzQxMiwyMyBAQCBkZWYgbWFp
bihhcmd2PU5vbmUpOgogICAgICAgICBwb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KG9wdGlv
bnMucGxhdGZvcm0sIG9wdGlvbnMpCiAgICAgZXhjZXB0IE5vdEltcGxlbWVudGVkRXJyb3IsIGU6
CiAgICAgICAgICMgRklYTUU6IGlzIHRoaXMgdGhlIGJlc3Qgd2F5IHRvIGhhbmRsZSB1bnN1cHBv
cnRlZCBwb3J0IG5hbWVzPwotICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCBzdHIoZSkKKyAg
ICAgICAgcHJpbnQgPj4gc3RkZXJyLCBzdHIoZSkKICAgICAgICAgcmV0dXJuIEVYQ0VQVElPTkFM
X0VYSVRfU1RBVFVTCiAKICAgICBsb2dnaW5nLmdldExvZ2dlcigpLnNldExldmVsKGxvZ2dpbmcu
REVCVUcgaWYgb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZyBlbHNlIGxvZ2dpbmcuSU5GTykKICAg
ICB0cnk6CiAgICAgICAgIGlmIG9wdGlvbnMubGludF90ZXN0X2ZpbGVzOgogICAgICAgICAgICAg
cmV0dXJuIGxpbnQocG9ydCwgb3B0aW9ucykKLSAgICAgICAgcmV0dXJuIHJ1bihwb3J0LCBvcHRp
b25zLCBhcmdzKS5leGl0X2NvZGUKKworICAgICAgICBydW5fZGV0YWlscyA9IHJ1bihwb3J0LCBv
cHRpb25zLCBhcmdzLCBzdGRlcnIpCisKKyAgICAgICAgYm90X3ByaW50ZXIgPSBidWlsZGJvdF9y
ZXN1bHRzLkJ1aWxkQm90UHJpbnRlcihzdGRvdXQsIG9wdGlvbnMuZGVidWdfcnd0X2xvZ2dpbmcp
CisgICAgICAgIGJvdF9wcmludGVyLnByaW50X3Jlc3VsdHMocnVuX2RldGFpbHMpCisKKyAgICAg
ICAgcmV0dXJuIHJ1bl9kZXRhaWxzLmV4aXRfY29kZQogICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6
Ci0gICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICdcbiVzIHJhaXNlZDogJXMnICUgKGUuX19j
bGFzc19fLl9fbmFtZV9fLCBzdHIoZSkpCi0gICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmls
ZT1zeXMuc3RkZXJyKQorICAgICAgICBwcmludCA+PiBzdGRlcnIsICdcbiVzIHJhaXNlZDogJXMn
ICUgKGUuX19jbGFzc19fLl9fbmFtZV9fLCBzdHIoZSkpCisgICAgICAgIHRyYWNlYmFjay5wcmlu
dF9leGMoZmlsZT1zdGRlcnIpCiAgICAgICAgIHJhaXNlCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlv
bnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQppbmRleCAyY2E2ZmExNTVkZDAyMDQyODBmNTdjOWU5
ZmE3YTY3ZTU5MTFiZmEyLi5jNmIzMjFmOWQ5ZDZiNDU5MWNjMjZhNjIzNDlhZDNmM2QyN2E1OGU1
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQpAQCAtODYs
OSArODYsOCBAQCBkZWYgcGFzc2luZ19ydW4oZXh0cmFfYXJncz1Ob25lLCBwb3J0X29iaj1Ob25l
LCB0ZXN0c19pbmNsdWRlZD1GYWxzZSwgaG9zdD1Ob25lLAogICAgIGlmIHNoYXJlZF9wb3J0Ogog
ICAgICAgICBwb3J0X29iai5ob3N0LnBvcnRfZmFjdG9yeS5nZXQgPSBsYW1iZGEgKmFyZ3MsICoq
a3dhcmdzOiBwb3J0X29iagogCi0gICAgYnVpbGRib3Rfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5n
SU8oKQotICAgIHJlZ3VsYXJfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgIHJ1bl9k
ZXRhaWxzID0gcnVuX3dlYmtpdF90ZXN0cy5ydW4ocG9ydF9vYmosIG9wdGlvbnMsIHBhcnNlZF9h
cmdzLCBidWlsZGJvdF9vdXRwdXQ9YnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dD1yZWd1
bGFyX291dHB1dCkKKyAgICBsb2dnaW5nX3N0cmVhbSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAg
ICBydW5fZGV0YWlscyA9IHJ1bl93ZWJraXRfdGVzdHMucnVuKHBvcnRfb2JqLCBvcHRpb25zLCBw
YXJzZWRfYXJncywgbG9nZ2luZ19zdHJlYW09bG9nZ2luZ19zdHJlYW0pCiAgICAgcmV0dXJuIHJ1
bl9kZXRhaWxzLmV4aXRfY29kZSA9PSAwCiAKIApAQCAtMTAwLDggKzk5LDggQEAgZGVmIGxvZ2dp
bmdfcnVuKGV4dHJhX2FyZ3M9Tm9uZSwgcG9ydF9vYmo9Tm9uZSwgdGVzdHNfaW5jbHVkZWQ9RmFs
c2UsIGhvc3Q9Tm9uZSwKICAgICBpZiBub3QgcG9ydF9vYmo6CiAgICAgICAgIHBvcnRfb2JqID0g
aG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT1vcHRpb25zLnBsYXRmb3JtLCBvcHRpb25z
PW9wdGlvbnMpCiAKLSAgICByZXMsIGJ1aWxkYm90X291dHB1dCwgcmVndWxhcl9vdXRwdXQgPSBy
dW5fYW5kX2NhcHR1cmUocG9ydF9vYmosIG9wdGlvbnMsIHBhcnNlZF9hcmdzLCBzaGFyZWRfcG9y
dCkKLSAgICByZXR1cm4gKHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dCwgaG9z
dC51c2VyKQorICAgIHJlcywgb3V0cHV0ID0gcnVuX2FuZF9jYXB0dXJlKHBvcnRfb2JqLCBvcHRp
b25zLCBwYXJzZWRfYXJncywgc2hhcmVkX3BvcnQpCisgICAgcmV0dXJuIChyZXMsIG91dHB1dCwg
aG9zdC51c2VyKQogCiAKIGRlZiBydW5fYW5kX2NhcHR1cmUocG9ydF9vYmosIG9wdGlvbnMsIHBh
cnNlZF9hcmdzLCBzaGFyZWRfcG9ydD1UcnVlKToKQEAgLTExMCwxNCArMTA5LDExIEBAIGRlZiBy
dW5fYW5kX2NhcHR1cmUocG9ydF9vYmosIG9wdGlvbnMsIHBhcnNlZF9hcmdzLCBzaGFyZWRfcG9y
dD1UcnVlKToKICAgICBvYyA9IG91dHB1dGNhcHR1cmUuT3V0cHV0Q2FwdHVyZSgpCiAgICAgdHJ5
OgogICAgICAgICBvYy5jYXB0dXJlX291dHB1dCgpCi0gICAgICAgIGJ1aWxkYm90X291dHB1dCA9
IFN0cmluZ0lPLlN0cmluZ0lPKCkKLSAgICAgICAgcmVndWxhcl9vdXRwdXQgPSBTdHJpbmdJTy5T
dHJpbmdJTygpCi0gICAgICAgIHJ1bl9kZXRhaWxzID0gcnVuX3dlYmtpdF90ZXN0cy5ydW4ocG9y
dF9vYmosIG9wdGlvbnMsIHBhcnNlZF9hcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkYm90X291dHB1dD1idWlsZGJvdF9vdXRwdXQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVndWxhcl9vdXRwdXQ9cmVndWxh
cl9vdXRwdXQpCisgICAgICAgIGxvZ2dpbmdfc3RyZWFtID0gU3RyaW5nSU8uU3RyaW5nSU8oKQor
ICAgICAgICBydW5fZGV0YWlscyA9IHJ1bl93ZWJraXRfdGVzdHMucnVuKHBvcnRfb2JqLCBvcHRp
b25zLCBwYXJzZWRfYXJncywgbG9nZ2luZ19zdHJlYW09bG9nZ2luZ19zdHJlYW0pCiAgICAgZmlu
YWxseToKICAgICAgICAgb2MucmVzdG9yZV9vdXRwdXQoKQotICAgIHJldHVybiAocnVuX2RldGFp
bHMuZXhpdF9jb2RlLCBidWlsZGJvdF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0KQorICAgIHJldHVy
biAocnVuX2RldGFpbHMuZXhpdF9jb2RlLCBsb2dnaW5nX3N0cmVhbSkKIAogCiBkZWYgZ2V0X3Rl
c3RzX3J1bihleHRyYV9hcmdzPU5vbmUsIHRlc3RzX2luY2x1ZGVkPUZhbHNlLCBmbGF0dGVuX2Jh
dGNoZXM9RmFsc2UsCkBAIC0zMDIsNyArMjk4LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3Qu
VGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIHNlbGYuc2hvdWxkX3Rlc3Rf
cHJvY2Vzc2VzID0gbm90IHNlbGYuX3BsYXRmb3JtLmlzX3dpbigpCiAKICAgICBkZWYgdGVzdF9h
bGwoc2VsZik6Ci0gICAgICAgIHJlcywgb3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bihbXSwg
dGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKKyAgICAgICAgcmVzLCBfLCBfID0gbG9nZ2luZ19ydW4oW10s
IHRlc3RzX2luY2x1ZGVkPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCB1bmV4
cGVjdGVkX3Rlc3RzX2NvdW50KQogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6CkBAIC0zMjEs
NyArMzE3LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3Rp
bmdNaXhpbik6CiAgICAgICAgIGlmICJXRUJLSVRfVEVTVF9NQVhfTE9DS0VEX1NIQVJEUyIgaW4g
b3MuZW52aXJvbjoKICAgICAgICAgICAgIHNhdmVfZW52X3dlYmtpdF90ZXN0X21heF9sb2NrZWRf
c2hhcmRzID0gb3MuZW52aXJvblsiV0VCS0lUX1RFU1RfTUFYX0xPQ0tFRF9TSEFSRFMiXQogICAg
ICAgICAgICAgZGVsIG9zLmVudmlyb25bIldFQktJVF9URVNUX01BWF9MT0NLRURfU0hBUkRTIl0K
LSAgICAgICAgXywgXywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bihbJy0tZGVidWct
cnd0LWxvZ2dpbmcnLCAnLS1jaGlsZC1wcm9jZXNzZXMnLCAnMiddLCBzaGFyZWRfcG9ydD1GYWxz
ZSkKKyAgICAgICAgXywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bihbJy0tZGVidWct
cnd0LWxvZ2dpbmcnLCAnLS1jaGlsZC1wcm9jZXNzZXMnLCAnMiddLCBzaGFyZWRfcG9ydD1GYWxz
ZSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFueShbJygxIGxv
Y2tlZCknIGluIGxpbmUgZm9yIGxpbmUgaW4gcmVndWxhcl9vdXRwdXQuYnVmbGlzdF0pKQogICAg
ICAgICBmaW5hbGx5OgpAQCAtMzMwLDEzICszMjYsMTMgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRl
c3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAKICAgICBkZWYgdGVzdF9jaGlsZF9w
cm9jZXNzZXNfMihzZWxmKToKICAgICAgICAgaWYgc2VsZi5zaG91bGRfdGVzdF9wcm9jZXNzZXM6
Ci0gICAgICAgICAgICBfLCBfLCByZWd1bGFyX291dHB1dCwgXyA9IGxvZ2dpbmdfcnVuKAorICAg
ICAgICAgICAgXywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAg
ICAgICBbJy0tZGVidWctcnd0LWxvZ2dpbmcnLCAnLS1jaGlsZC1wcm9jZXNzZXMnLCAnMiddLCBz
aGFyZWRfcG9ydD1GYWxzZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkoWydSdW5u
aW5nIDIgJyBpbiBsaW5lIGZvciBsaW5lIGluIHJlZ3VsYXJfb3V0cHV0LmJ1Zmxpc3RdKSkKIAog
ICAgIGRlZiB0ZXN0X2NoaWxkX3Byb2Nlc3Nlc19taW4oc2VsZik6CiAgICAgICAgIGlmIHNlbGYu
c2hvdWxkX3Rlc3RfcHJvY2Vzc2VzOgotICAgICAgICAgICAgXywgXywgcmVndWxhcl9vdXRwdXQs
IF8gPSBsb2dnaW5nX3J1bigKKyAgICAgICAgICAgIF8sIHJlZ3VsYXJfb3V0cHV0LCBfID0gbG9n
Z2luZ19ydW4oCiAgICAgICAgICAgICAgICAgWyctLWRlYnVnLXJ3dC1sb2dnaW5nJywgJy0tY2hp
bGQtcHJvY2Vzc2VzJywgJzInLCAnLWknLCAncGFzc2VzL3Bhc3NlcycsICdwYXNzZXMnXSwKICAg
ICAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBzaGFyZWRfcG9ydD1GYWxzZSkKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkoWydSdW5uaW5nIDEgJyBpbiBsaW5lIGZvciBs
aW5lIGluIHJlZ3VsYXJfb3V0cHV0LmJ1Zmxpc3RdKSkKQEAgLTM2Nyw0MCArMzYzLDMzIEBAIGNs
YXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogCiAg
ICAgZGVmIHRlc3RfZnVsbF9yZXN1bHRzX2h0bWwoc2VsZik6CiAgICAgICAgICMgRklYTUU6IHZl
cmlmeSBodG1sPwotICAgICAgICByZXMsIG91dCwgZXJyLCB1c2VyID0gbG9nZ2luZ19ydW4oWyct
LWZ1bGwtcmVzdWx0cy1odG1sJ10pCisgICAgICAgIHJlcywgXywgXyA9IGxvZ2dpbmdfcnVuKFsn
LS1mdWxsLXJlc3VsdHMtaHRtbCddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgMCkK
IAogICAgIGRlZiB0ZXN0X2h1bmdfdGhyZWFkKHNlbGYpOgotICAgICAgICByZXMsIG91dCwgZXJy
LCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXJ1bi1zaW5nbHknLCAnLS10aW1lLW91dC1tcz01MCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhw
ZWN0ZWQvaGFuZy5odG1sJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlKQorICAgICAgICByZXMsIGVyciwgXyA9IGxvZ2dpbmdf
cnVuKFsnLS1ydW4tc2luZ2x5JywgJy0tdGltZS1vdXQtbXM9NTAnLCAnZmFpbHVyZXMvZXhwZWN0
ZWQvaGFuZy5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUpCiAgICAgICAgICMgTm90ZSB0aGF0
IGhhbmcuaHRtbCBpcyBtYXJrZWQgYXMgV29udEZpeCBhbmQgYWxsIFdvbnRGaXggdGVzdHMgYXJl
CiAgICAgICAgICMgZXhwZWN0ZWQgdG8gUGFzcywgc28gdGhhdCBhY3R1YWxseSBydW5uaW5nIHRo
ZW0gZ2VuZXJhdGVzIGFuICJ1bmV4cGVjdGVkIiBlcnJvci4KICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXMsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQogICAgICAgICBz
ZWxmLmFzc2VydE5vdEVtcHR5KGVycikKIAogICAgIGRlZiB0ZXN0X2tleWJvYXJkX2ludGVycnVw
dChzZWxmKToKICAgICAgICAgIyBOb3RlIHRoYXQgdGhpcyBhbHNvIHRlc3RzIHJ1bm5pbmcgYSB0
ZXN0IG1hcmtlZCBhcyBTS0lQIGlmCiAgICAgICAgICMgeW91IHNwZWNpZnkgaXQgZXhwbGljaXRs
eS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5Ym9hcmRJbnRlcnJ1cHQsIGxvZ2dpbmdf
cnVuLAotICAgICAgICAgICAgWydmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgJy0t
Y2hpbGQtcHJvY2Vzc2VzJywgJzEnXSwKLSAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUp
CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleWJvYXJkSW50ZXJydXB0LCBsb2dnaW5nX3J1
biwgWydmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgJy0tY2hpbGQtcHJvY2Vzc2Vz
JywgJzEnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKIAogICAgICAgICBpZiBzZWxmLnNob3VsZF90
ZXN0X3Byb2Nlc3NlczoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleWJvYXJkSW50
ZXJydXB0LCBsb2dnaW5nX3J1biwKICAgICAgICAgICAgICAgICBbJ2ZhaWx1cmVzL2V4cGVjdGVk
L2tleWJvYXJkLmh0bWwnLCAncGFzc2VzL3RleHQuaHRtbCcsICctLWNoaWxkLXByb2Nlc3Nlcycs
ICcyJywgJy0tZm9yY2UnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgc2hhcmVkX3BvcnQ9RmFsc2Up
CiAKICAgICBkZWYgdGVzdF9ub190ZXN0c19mb3VuZChzZWxmKToKLSAgICAgICAgcmVzLCBvdXQs
IGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsncmVzb3VyY2VzJ10sIHRlc3RzX2luY2x1ZGVkPVRy
dWUpCisgICAgICAgIHJlcywgZXJyLCBfID0gbG9nZ2luZ19ydW4oWydyZXNvdXJjZXMnXSwgdGVz
dHNfaW5jbHVkZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIC0xKQotICAg
ICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKICAgICAgICAgc2VsZi5hc3NlcnRDb250YWlucyhl
cnIsICdObyB0ZXN0cyB0byBydW4uXG4nKQogCiAgICAgZGVmIHRlc3Rfbm9fdGVzdHNfZm91bmRf
MihzZWxmKToKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnZm9v
J10sIHRlc3RzX2luY2x1ZGVkPVRydWUpCisgICAgICAgIHJlcywgZXJyLCBfID0gbG9nZ2luZ19y
dW4oWydmb28nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChyZXMsIC0xKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKICAgICAgICAgc2VsZi5h
c3NlcnRDb250YWlucyhlcnIsICdObyB0ZXN0cyB0byBydW4uXG4nKQogCiAgICAgZGVmIHRlc3Rf
bmF0dXJhbF9vcmRlcihzZWxmKToKQEAgLTQ5MCwxMCArNDc5LDkgQEAgY2xhc3MgTWFpblRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGhlIHRv
dGFsIG51bWJlciBvZiB0ZXN0cyBzaG91bGQgYmU6IG51bWJlcl9vZl90ZXN0cyAqCiAgICAgICAg
ICMgcmVwZWF0X2VhY2ggKiBpdGVyYXRpb25zCiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCi0g
ICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bigKKyAgICAgICAgcmVzLCBlcnIs
IF8gPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAgIFsnLS1pdGVyYXRpb25zJywgJzInLCAnLS1y
ZXBlYXQtZWFjaCcsICc0JywgJy0tZGVidWctcnd0LWxvZ2dpbmcnLCAncGFzc2VzL3RleHQuaHRt
bCcsICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnXSwKICAgICAgICAgICAgIHRlc3RzX2lu
Y2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRDb250YWlucyhvdXQs
ICI9PiBSZXN1bHRzOiA4LzE2IHRlc3RzIHBhc3NlZCAoNTAuMCUpXG4iKQogICAgICAgICBzZWxm
LmFzc2VydENvbnRhaW5zKGVyciwgIkFsbCAxNiB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQuXG4iKQog
CiAgICAgZGVmIHRlc3RfcnVuX2NodW5rKHNlbGYpOgpAQCAtNTQ1LDcgKzUzMyw3IEBAIGNsYXNz
IE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaGFzX3Bhc3Nlc190ZXh0KQogCiAgICAgZGVmIHRlc3RfcnVuX3Np
bmdseV9hY3R1YWxseV9ydW5zX3Rlc3RzKHNlbGYpOgotICAgICAgICByZXMsIF8sIF8sIF8gPSBs
b2dnaW5nX3J1bihbJy0tcnVuLXNpbmdseScsICdmYWlsdXJlcy91bmV4cGVjdGVkJ10pCisgICAg
ICAgIHJlcywgXywgXyA9IGxvZ2dpbmdfcnVuKFsnLS1ydW4tc2luZ2x5JywgJ2ZhaWx1cmVzL3Vu
ZXhwZWN0ZWQnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIHVuZXhwZWN0ZWRfZmFp
bHVyZXMpCiAKICAgICBkZWYgdGVzdF9zaW5nbGVfZmlsZShzZWxmKToKQEAgLTU3Nyw3ICs1NjUs
NyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGlu
KToKICAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tdGVzdC1saXN0PSVzJyAl
IGZpbGVuYW1lXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUsIGhv
c3Q9aG9zdCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSwg
dGVzdHNfcnVuKQogICAgICAgICBob3N0LmZpbGVzeXN0ZW0ucmVtb3ZlKGZpbGVuYW1lKQotICAg
ICAgICByZXMsIG91dCwgZXJyLCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXRlc3QtbGlzdD0lcycg
JSBmaWxlbmFtZV0sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgcmVz
LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bihbJy0tdGVzdC1saXN0PSVzJyAlIGZpbGVuYW1lXSwg
dGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJlcywgLTEpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQogCkBAIC01OTEsMTAg
KzU3OSw5IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5n
TWl4aW4pOgogICAgIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZik6CiAgICAgICAg
ICMgUnVuIHRlc3RzIGluY2x1ZGluZyB0aGUgdW5leHBlY3RlZCBmYWlsdXJlcy4KICAgICAgICAg
c2VsZi5fdXJsX29wZW5lZCA9IE5vbmUKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxv
Z2dpbmdfcnVuKHRlc3RzX2luY2x1ZGVkPVRydWUpCisgICAgICAgIHJlcywgZXJyLCB1c2VyID0g
bG9nZ2luZ19ydW4odGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKIAogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlcywgdW5leHBlY3RlZF90ZXN0c19jb3VudCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RF
bXB0eShvdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHVzZXIub3BlbmVkX3VybHMsIFtwYXRoLmFic3BhdGhfdG9fdXJpKE1vY2tI
b3N0KCkucGxhdGZvcm0sICcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcmVzdWx0cy5odG1sJyld
KQogCkBAIC02MDIsNyArNTg5LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2Us
IFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIHVwZGF0ZSBleHBl
Y3RhdGlvbnMgaW4gcGxhY2UuIElmIHRoZSBleHBlY3RhdGlvbgogICAgICAgICAjIGlzIG1pc3Np
bmcsIHVwZGF0ZSB0aGUgZXhwZWN0ZWQgZ2VuZXJpYyBsb2NhdGlvbi4KICAgICAgICAgaG9zdCA9
IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1u
by1zaG93LXJlc3VsdHMnLAorICAgICAgICByZXMsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1u
by1zaG93LXJlc3VsdHMnLAogICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc3Npbmdf
aW1hZ2UuaHRtbCcsCiAgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNzaW5nX3Rl
eHQuaHRtbCcsCiAgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC90ZXh0LWltYWdlLWNo
ZWNrc3VtLmh0bWwnXSwKQEAgLTYyNCw3ICs2MTEsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgYXJncyA9IFsnLS1waXhl
bC10ZXN0cycsICctLXBpeGVsLXRlc3QtZGlyZWN0b3J5JywgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQv
cGl4ZWxkaXInLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL3BpeGVsZGly
L2ltYWdlX2luX3BpeGVsZGlyLmh0bWwnLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4
cGVjdGVkL2ltYWdlX25vdF9pbl9waXhlbGRpci5odG1sJ10KLSAgICAgICAgcmVzLCBvdXQsIGVy
ciwgXyA9IGxvZ2dpbmdfcnVuKGV4dHJhX2FyZ3M9YXJncywgaG9zdD1ob3N0LCB0ZXN0c19pbmNs
dWRlZD1UcnVlKQorICAgICAgICByZXMsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKGV4dHJhX2FyZ3M9
YXJncywgaG9zdD1ob3N0LCB0ZXN0c19pbmNsdWRlZD1UcnVlKQogCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzLCAxKQogICAgICAgICBleHBlY3RlZF90b2tlbiA9ICcidW5leHBlY3RlZCI6
eyJwaXhlbGRpciI6eyJpbWFnZV9pbl9waXhlbGRpci5odG1sIjp7ImV4cGVjdGVkIjoiUEFTUyIs
ImFjdHVhbCI6IklNQUdFIicKQEAgLTY0MSw3ICs2MjgsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgaG9zdCA9IE1vY2tI
b3N0KCkKICAgICAgICAgb3B0aW9ucywgcGFyc2VkX2FyZ3MgPSBydW5fd2Via2l0X3Rlc3RzLnBh
cnNlX2FyZ3MoWyctLXBpeGVsLXRlc3RzJywgJy0tbm8tbmV3LXRlc3QtcmVzdWx0cyddKQogICAg
ICAgICB0ZXN0X3BvcnQgPSBDdXN0b21FeGl0Q29kZVBvcnQoaG9zdCwgb3B0aW9ucz1vcHRpb25z
KQotICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLW5vLXNob3ctcmVz
dWx0cycsCisgICAgICAgIHJlcywgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLW5vLXNob3ctcmVz
dWx0cycsCiAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1s
JywKICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfdGV4dC5odG1sJywK
ICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL3RleHQtaW1hZ2UtY2hlY2tzdW0uaHRt
bCddLApAQCAtNjUwLDEyICs2MzcsMTIgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENh
c2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAKICAgICBkZWYgdGVzdF9jcmFzaF93aXRoX3N0ZGVy
cihzZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBidWlsZGJv
dF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0LCB1c2VyID0gbG9nZ2luZ19ydW4oWydmYWlsdXJlcy91
bmV4cGVjdGVkL2NyYXNoLXdpdGgtc3RkZXJyLmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwg
aG9zdD1ob3N0KQorICAgICAgICByZXMsIHJlZ3VsYXJfb3V0cHV0LCB1c2VyID0gbG9nZ2luZ19y
dW4oWydmYWlsdXJlcy91bmV4cGVjdGVkL2NyYXNoLXdpdGgtc3RkZXJyLmh0bWwnXSwgdGVzdHNf
aW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaG9zdC5m
aWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZnVsbF9y
ZXN1bHRzLmpzb24nKS5maW5kKCd7ImNyYXNoLXdpdGgtc3RkZXJyLmh0bWwiOnsiZXhwZWN0ZWQi
OiJQQVNTIiwiYWN0dWFsIjoiQ1JBU0giLCJoYXNfc3RkZXJyIjp0cnVlfX0nKSAhPSAtMSkKIAog
ICAgIGRlZiB0ZXN0X25vX2ltYWdlX2ZhaWx1cmVfd2l0aF9pbWFnZV9kaWZmKHNlbGYpOgogICAg
ICAgICBob3N0ID0gTW9ja0hvc3QoKQotICAgICAgICByZXMsIGJ1aWxkYm90X291dHB1dCwgcmVn
dWxhcl9vdXRwdXQsIHVzZXIgPSBsb2dnaW5nX3J1bihbJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvY2hl
Y2tzdW0td2l0aC1tYXRjaGluZy1pbWFnZS5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhv
c3Q9aG9zdCkKKyAgICAgICAgcmVzLCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVu
KFsnZmFpbHVyZXMvdW5leHBlY3RlZC9jaGVja3N1bS13aXRoLW1hdGNoaW5nLWltYWdlLmh0bWwn
XSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydFRy
dWUoaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZnVsbF9yZXN1bHRzLmpzb24nKS5maW5kKCcibnVtX3JlZ3Jlc3Npb25zIjowJykgIT0gLTEp
CiAKICAgICBkZWYgdGVzdF9jcmFzaF9sb2coc2VsZik6CkBAIC02NjYsNyArNjUzLDcgQEAgY2xh
c3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAg
ICAgIG1vY2tfY3Jhc2hfcmVwb3J0ID0gbWFrZV9tb2NrX2NyYXNoX3JlcG9ydF9kYXJ3aW4oJ0R1
bXBSZW5kZXJUcmVlJywgMTIzNDUpCiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAg
IGhvc3QuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9n
cy9EaWFnbm9zdGljUmVwb3J0cy9EdW1wUmVuZGVyVHJlZV8yMDExLTA2LTEzLTE1MDcxOV9xdWFk
emVuLmNyYXNoJywgbW9ja19jcmFzaF9yZXBvcnQpCi0gICAgICAgIHJlcywgYnVpbGRib3Rfb3V0
cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnZmFpbHVyZXMvdW5leHBl
Y3RlZC9jcmFzaC13aXRoLXN0ZGVyci5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9
aG9zdCkKKyAgICAgICAgcmVzLCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVuKFsn
ZmFpbHVyZXMvdW5leHBlY3RlZC9jcmFzaC13aXRoLXN0ZGVyci5odG1sJ10sIHRlc3RzX2luY2x1
ZGVkPVRydWUsIGhvc3Q9aG9zdCkKICAgICAgICAgZXhwZWN0ZWRfY3Jhc2hfbG9nID0gbW9ja19j
cmFzaF9yZXBvcnQKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChob3N0LmZpbGVzeXN0ZW0ucmVh
ZF90ZXh0X2ZpbGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy91bmV4cGVjdGVk
L2NyYXNoLXdpdGgtc3RkZXJyLWNyYXNoLWxvZy50eHQnKSwgZXhwZWN0ZWRfY3Jhc2hfbG9nKQog
CkBAIC02NzgsMTIgKzY2NSwxMiBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwg
U3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgbW9ja19jcmFzaF9yZXBvcnQgPSBtYWtlX21v
Y2tfY3Jhc2hfcmVwb3J0X2RhcndpbignV2ViUHJvY2VzcycsIDEyMzQ1KQogICAgICAgICBob3N0
ID0gTW9ja0hvc3QoKQogICAgICAgICBob3N0LmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKCcv
VXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvRGlhZ25vc3RpY1JlcG9ydHMvV2ViUHJvY2Vzc18yMDEx
LTA2LTEzLTE1MDcxOV9xdWFkemVuLmNyYXNoJywgbW9ja19jcmFzaF9yZXBvcnQpCi0gICAgICAg
IHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVu
KFsnZmFpbHVyZXMvdW5leHBlY3RlZC93ZWItcHJvY2Vzcy1jcmFzaC13aXRoLXN0ZGVyci5odG1s
J10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgbG9nZ2luZ19ydW4o
WydmYWlsdXJlcy91bmV4cGVjdGVkL3dlYi1wcm9jZXNzLWNyYXNoLXdpdGgtc3RkZXJyLmh0bWwn
XSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGhvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2ZhaWx1cmVzL3VuZXhwZWN0ZWQvd2ViLXByb2Nlc3MtY3Jhc2gtd2l0aC1zdGRlcnItY3Jh
c2gtbG9nLnR4dCcpLCBtb2NrX2NyYXNoX3JlcG9ydCkKIAogICAgIGRlZiB0ZXN0X2V4aXRfYWZ0
ZXJfbl9mYWlsdXJlc191cGxvYWQoc2VsZik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCi0g
ICAgICAgIHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dp
bmdfcnVuKAorICAgICAgICByZXMsIHJlZ3VsYXJfb3V0cHV0LCB1c2VyID0gbG9nZ2luZ19ydW4o
CiAgICAgICAgICAgIFsnZmFpbHVyZXMvdW5leHBlY3RlZC90ZXh0LWltYWdlLWNoZWNrc3VtLmh0
bWwnLCAncGFzc2VzL3RleHQuaHRtbCcsICctLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcycsICcxJ10s
CiAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKIApAQCAtNzYxLDcg
Kzc0OCw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5n
TWl4aW4pOgogCiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIHdpdGggaG9zdC5m
aWxlc3lzdGVtLm1rZHRlbXAoKSBhcyB0bXBkaXI6Ci0gICAgICAgICAgICByZXMsIG91dCwgZXJy
LCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXJlc3VsdHMtZGlyZWN0b3J5PScgKyBzdHIodG1wZGly
KV0sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgICAgIHJlcywgZXJy
LCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXJlc3VsdHMtZGlyZWN0b3J5PScgKyBzdHIodG1wZGly
KV0sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodXNlci5vcGVuZWRfdXJscywgW3BhdGguYWJzcGF0aF90b191cmkoaG9zdC5wbGF0
Zm9ybSwgaG9zdC5maWxlc3lzdGVtLmpvaW4odG1wZGlyLCAncmVzdWx0cy5odG1sJykpXSkKIAog
ICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5X2RlZmF1bHQoc2VsZik6CkBAIC03NjksNyAr
NzU2LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdN
aXhpbik6CiAgICAgICAgICMgbG9vayBmb3Igd2hhdCB0aGUgb3V0cHV0IHJlc3VsdHMgdXJsIHdh
cy4KIAogICAgICAgICAjIFRoaXMgaXMgdGhlIGRlZmF1bHQgbG9jYXRpb24uCi0gICAgICAgIHJl
cywgb3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bih0ZXN0c19pbmNsdWRlZD1UcnVlKQorICAg
ICAgICBfLCBfLCB1c2VyID0gbG9nZ2luZ19ydW4odGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh1c2VyLm9wZW5lZF91cmxzLCBbcGF0aC5hYnNwYXRoX3RvX3Vy
aShNb2NrSG9zdCgpLnBsYXRmb3JtLCAnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Jlc3VsdHMu
aHRtbCcpXSkKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5X3JlbGF0aXZlKHNlbGYp
OgpAQCAtNzc4LDE1ICs3NjUsMTQgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2Us
IFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAg
IGhvc3QuZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeSgnL3RtcC9jd2QnKQogICAgICAg
ICBob3N0LmZpbGVzeXN0ZW0uY2hkaXIoJy90bXAvY3dkJykKLSAgICAgICAgcmVzLCBvdXQsIGVy
ciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnLS1yZXN1bHRzLWRpcmVjdG9yeT1mb28nXSwgdGVzdHNf
aW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQorICAgICAgICByZXMsIGVyciwgdXNlciA9IGxvZ2dp
bmdfcnVuKFsnLS1yZXN1bHRzLWRpcmVjdG9yeT1mb28nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwg
aG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVzZXIub3BlbmVkX3VybHMsIFtw
YXRoLmFic3BhdGhfdG9fdXJpKGhvc3QucGxhdGZvcm0sICcvdG1wL2N3ZC9mb28vcmVzdWx0cy5o
dG1sJyldKQogCiAgICAgZGVmIHRlc3RfcmV0cnlpbmdfYW5kX2ZsYWt5X3Rlc3RzKHNlbGYpOgog
ICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQotICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9n
Z2luZ19ydW4oWyctLWRlYnVnLXJ3dC1sb2dnaW5nJywgJ2ZhaWx1cmVzL2ZsYWt5J10sIHRlc3Rz
X2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgcmVzLCBlcnIsIF8gPSBsb2dnaW5n
X3J1bihbJy0tZGVidWctcnd0LWxvZ2dpbmcnLCAnZmFpbHVyZXMvZmxha3knXSwgdGVzdHNfaW5j
bHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgMCkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdSZXRyeWluZycgaW4gZXJyLmdldHZhbHVlKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnVW5leHBlY3RlZCBmbGFraW5lc3MnIGluIG91dC5nZXR2
YWx1ZSgpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaG9zdC5maWxlc3lzdGVtLmV4aXN0cygn
L3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2ZsYWt5L3RleHQtYWN0dWFsLnR4dCcp
KQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaG9zdC5maWxlc3lzdGVtLmV4aXN0cygnL3RtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL3JldHJpZXMvdGVzdHNfcnVuMC50eHQnKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShob3N0LmZpbGVzeXN0ZW0uZXhpc3RzKCcvdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvcmV0cmllcy9mYWlsdXJlcy9mbGFreS90ZXh0LWFjdHVhbC50eHQnKSkKQEAgLTc5NCwx
MiArNzgwLDEwIEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0
aW5nTWl4aW4pOgogICAgICAgICAjIE5vdyB3ZSB0ZXN0IHRoYXQgLS1jbG9iYmVyLW9sZC1yZXN1
bHRzIGRvZXMgcmVtb3ZlIHRoZSBvbGQgZW50cmllcyBhbmQgdGhlIG9sZCByZXRyaWVzLAogICAg
ICAgICAjIGFuZCB0aGF0IHdlIGRvbid0IHJldHJ5IGFnYWluLgogICAgICAgICBob3N0ID0gTW9j
a0hvc3QoKQotICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLW5vLXJl
dHJ5LWZhaWx1cmVzJywgJy0tY2xvYmJlci1vbGQtcmVzdWx0cycsICdmYWlsdXJlcy9mbGFreSdd
LCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCisgICAgICAgIHJlcywgZXJyLCBfID0g
bG9nZ2luZ19ydW4oWyctLW5vLXJldHJ5LWZhaWx1cmVzJywgJy0tY2xvYmJlci1vbGQtcmVzdWx0
cycsICdmYWlsdXJlcy9mbGFreSddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAxKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
J0Nsb2JiZXJpbmcgb2xkIHJlc3VsdHMnIGluIGVyci5nZXR2YWx1ZSgpKQogICAgICAgICBzZWxm
LmFzc2VydFRydWUoJ2ZsYWt5L3RleHQuaHRtbCcgaW4gZXJyLmdldHZhbHVlKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgnVW5leHBlY3RlZCB0ZXh0LW9ubHkgZmFpbHVyZXMnIGluIG91dC5n
ZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdVbmV4cGVjdGVkIGZsYWtpbmVz
cycgaW4gb3V0LmdldHZhbHVlKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShob3N0LmZpbGVz
eXN0ZW0uZXhpc3RzKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZmxha3kvdGV4
dC1hY3R1YWwudHh0JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaG9zdC5maWxlc3lzdGVt
LmV4aXN0cygncmV0cmllcycpKQogCkBAIC04NzIsNyArODU2LDcgQEAgY2xhc3MgTWFpblRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAKICAgICBkZWYgdGVzdF9y
ZWZ0ZXN0X3Nob3VsZF9ub3RfdXNlX25hbWluZ19jb252ZW50aW9uX2lmX25vdF9saXN0ZWRfaW5f
cmVmdGVzdGxpc3Qoc2VsZik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCi0gICAgICAgIHJl
cywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8tc2hvdy1yZXN1bHRzJywgJ3JlZnRl
c3RzL2Zvby8nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQorICAgICAgICByZXMs
IGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1uby1zaG93LXJlc3VsdHMnLCAncmVmdGVzdHMvZm9v
LyddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCiAgICAgICAgIGpzb25fc3RyaW5n
ID0gaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZnVsbF9yZXN1bHRzLmpzb24nKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoanNvbl9zdHJp
bmcuZmluZCgnInVubGlzdGVkdGVzdC5odG1sIjp7ImV4cGVjdGVkIjoiUEFTUyIsImlzX21pc3Np
bmdfdGV4dCI6dHJ1ZSwiYWN0dWFsIjoiTUlTU0lORyIsImlzX21pc3NpbmdfaW1hZ2UiOnRydWV9
JykgIT0gLTEpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShqc29uX3N0cmluZy5maW5kKCcibnVt
X3JlZ3Jlc3Npb25zIjo0JykgIT0gLTEpCkBAIC05MjIsNyArOTA2LDcgQEAgY2xhc3MgTWFpblRl
c3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGVz
dCB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBnZW5lcmF0ZSAtd2RpZmYuaHRtbCBvciAtcHJldHR5
Lmh0bWwgaWYgd2RpZmYgYW5kIFByZXR0eVBhdGNoCiAgICAgICAgICMgYXJlbid0IGF2YWlsYWJs
ZS4KICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgXyA9
IGxvZ2dpbmdfcnVuKFsnLS1waXhlbC10ZXN0cycsICdmYWlsdXJlcy91bmV4cGVjdGVkL3RleHQt
aW1hZ2UtY2hlY2tzdW0uaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCisg
ICAgICAgIHJlcywgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLXBpeGVsLXRlc3RzJywgJ2ZhaWx1
cmVzL3VuZXhwZWN0ZWQvdGV4dC1pbWFnZS1jaGVja3N1bS5odG1sJ10sIHRlc3RzX2luY2x1ZGVk
PVRydWUsIGhvc3Q9aG9zdCkKICAgICAgICAgd3JpdHRlbl9maWxlcyA9IGhvc3QuZmlsZXN5c3Rl
bS53cml0dGVuX2ZpbGVzCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkocGF0aC5lbmRzd2l0
aCgnLWRpZmYudHh0JykgZm9yIHBhdGggaW4gd3JpdHRlbl9maWxlcy5rZXlzKCkpKQogICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKGFueShwYXRoLmVuZHN3aXRoKCctd2RpZmYuaHRtbCcpIGZvciBw
YXRoIGluIHdyaXR0ZW5fZmlsZXMua2V5cygpKSkKQEAgLTkzNCwxOSArOTE4LDEzIEBAIGNsYXNz
IE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGZ1bGxfcmVzdWx0c1snaGFzX3ByZXR0eV9wYXRjaCddLCBGYWxz
ZSkKIAogICAgIGRlZiB0ZXN0X3Vuc3VwcG9ydGVkX3BsYXRmb3JtKHNlbGYpOgotICAgICAgICBv
YyA9IG91dHB1dGNhcHR1cmUuT3V0cHV0Q2FwdHVyZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIG9jLmNhcHR1cmVfb3V0cHV0KCkKLSAgICAgICAgICAgIHJlcyA9IHJ1bl93ZWJraXRfdGVz
dHMubWFpbihbJy0tcGxhdGZvcm0nLCAnZm9vJ10pCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzdGRvdXQsIHN0ZGVyciwgbG9ncyA9IG9jLnJlc3RvcmVfb3V0cHV0KCkKKyAgICAgICAg
c3Rkb3V0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgICBzdGRlcnIgPSBTdHJpbmdJTy5T
dHJpbmdJTygpCisgICAgICAgIHJlcyA9IHJ1bl93ZWJraXRfdGVzdHMubWFpbihbJy0tcGxhdGZv
cm0nLCAnZm9vJ10sIHN0ZG91dCwgc3RkZXJyKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVzLCBydW5fd2Via2l0X3Rlc3RzLkVYQ0VQVElPTkFMX0VYSVRfU1RBVFVTKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHN0ZG91dCwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgndW5z
dXBwb3J0ZWQgcGxhdGZvcm0nIGluIHN0ZGVycikKLQotICAgICAgICAjIFRoaXMgaXMgZW1wdHkg
YmVjYXVzZSB3ZSBkb24ndCBldmVuIGdldCBhIGNoYW5jZSB0byBjb25maWd1cmUgdGhlIGxvZ2dl
ciBiZWZvcmUgZmFpbGluZy4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dzLCAnJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGRvdXQuZ2V0dmFsdWUoKSwgJycpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZSgndW5zdXBwb3J0ZWQgcGxhdGZvcm0nIGluIHN0ZGVyci5nZXR2YWx1ZSgp
KQogCiAgICAgZGVmIHRlc3RfdmVyYm9zZV9pbl9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAg
ICAgICMgV2hlbiB3ZSBhY3R1YWxseSBydW4gbXVsdGlwbGUgcHJvY2Vzc2VzLCB3ZSBtYXkgaGF2
ZSB0byByZWNvbmZpZ3VyZSBsb2dnaW5nIGluIHRoZQpAQCAtOTYxLDExICs5MzksMTAgQEAgY2xh
c3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAg
ICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcGFyc2VfYXJncyhbJy0tdmVyYm9zZScsICctLWZ1
bGx5LXBhcmFsbGVsJywgJy0tY2hpbGQtcHJvY2Vzc2VzJywgJzInLCAncGFzc2VzL3RleHQuaHRt
bCcsICdwYXNzZXMvaW1hZ2UuaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBwcmludF9ub3Ro
aW5nPUZhbHNlKQogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBwb3J0X29iaiA9
IGhvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWU9b3B0aW9ucy5wbGF0Zm9ybSwgb3B0aW9u
cz1vcHRpb25zKQotICAgICAgICBidWlsZGJvdF9vdXRwdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygp
Ci0gICAgICAgIHJlZ3VsYXJfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgICAgICBy
dW5fd2Via2l0X3Rlc3RzLnJ1bihwb3J0X29iaiwgb3B0aW9ucywgcGFyc2VkX2FyZ3MsIGJ1aWxk
Ym90X291dHB1dD1idWlsZGJvdF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0PXJlZ3VsYXJfb3V0cHV0
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3RleHQuaHRtbCBwYXNzZWQnIGluIHJlZ3VsYXJf
b3V0cHV0LmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaW1hZ2UuaHRtbCBw
YXNzZWQnIGluIHJlZ3VsYXJfb3V0cHV0LmdldHZhbHVlKCkpCisgICAgICAgIGxvZ2dpbmdfc3Ry
ZWFtID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgICBydW5fd2Via2l0X3Rlc3RzLnJ1bihw
b3J0X29iaiwgb3B0aW9ucywgcGFyc2VkX2FyZ3MsIGxvZ2dpbmdfc3RyZWFtPWxvZ2dpbmdfc3Ry
ZWFtKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3RleHQuaHRtbCBwYXNzZWQnIGluIGxvZ2dp
bmdfc3RyZWFtLmdldHZhbHVlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaW1hZ2UuaHRt
bCBwYXNzZWQnIGluIGxvZ2dpbmdfc3RyZWFtLmdldHZhbHVlKCkpCiAKIAogY2xhc3MgRW5kVG9F
bmRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTk3Niw3ICs5NTMsNyBAQCBjbGFzcyBFbmRU
b0VuZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZW5kX3RvX2VuZChz
ZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwg
dXNlciA9IGxvZ2dpbmdfcnVuKHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAg
ICAgcmVzLCBfLCB1c2VyID0gbG9nZ2luZ19ydW4odGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1o
b3N0KQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCB1bmV4cGVjdGVkX3Rlc3RzX2Nv
dW50KQogICAgICAgICByZXN1bHRzID0gc2VsZi5wYXJzZV9mdWxsX3Jlc3VsdHMoaG9zdC5maWxl
c3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZnVsbF9yZXN1
bHRzLmpzb24nKSkKQEAgLTk5MSw3ICs5NjgsNyBAQCBjbGFzcyBFbmRUb0VuZFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0YXRpb25z
IGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRpb24KICAgICAgICAgIyBpcyBtaXNzaW5nLCB1cGRh
dGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9jYXRpb24uCiAgICAgICAgIGhvc3QgPSBNb2NrSG9z
dCgpCi0gICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8tc2hvdy1y
ZXN1bHRzJywgJ3JlZnRlc3RzL2Zvby8nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0
KQorICAgICAgICByZXMsIF8sIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8tc2hvdy1yZXN1bHRzJywg
J3JlZnRlc3RzL2Zvby8nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAg
ICBmaWxlX2xpc3QgPSBob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcy5rZXlzKCkKICAgICAg
ICAgZmlsZV9saXN0LnJlbW92ZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjAu
dHh0JykKICAgICAgICAganNvbl9zdHJpbmcgPSBob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2Zp
bGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mdWxsX3Jlc3VsdHMuanNvbicpCkBAIC0xMDIz
LDEzICsxMDAwLDEyIEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBT
dHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0
YXRpb25zIGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRpb24KICAgICAgICAgIyBpcyBtaXNzaW5n
LCB1cGRhdGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9jYXRpb24uCiAgICAgICAgIGhvc3QgPSBN
b2NrSG9zdCgpCi0gICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bigKKyAgICAg
ICAgcmVzLCBlcnIsIF8gPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAgIFsnLS1waXhlbC10ZXN0
cycsICctLXJlc2V0LXJlc3VsdHMnLCAncGFzc2VzL2ltYWdlLmh0bWwnLCAnZmFpbHVyZXMvZXhw
ZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1sJ10sCiAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1U
cnVlLCBob3N0PWhvc3QsIG5ld19yZXN1bHRzPVRydWUpCiAgICAgICAgIGZpbGVfbGlzdCA9IGhv
c3QuZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzLmtleXMoKQogICAgICAgICBmaWxlX2xpc3QucmVt
b3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHQnKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlcywgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDcpCiAgICAgICAgIHNlbGYu
YXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwgInBhc3Nlcy9pbWFnZSIsIFsiLnR4dCIsICIucG5n
Il0sIGVycikKICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZXMoZmlsZV9saXN0LCAiZmFpbHVy
ZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFnZSIsIFsiLnR4dCIsICIucG5nIl0sIGVycikKQEAgLTEw
MzgsNyArMTAxNCw3IEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBT
dHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0
YXRpb25zIGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRpb24KICAgICAgICAgIyBpcyBtaXNzaW5n
LCB1cGRhdGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9jYXRpb24uCiAgICAgICAgIGhvc3QgPSBN
b2NrSG9zdCgpCi0gICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8t
c2hvdy1yZXN1bHRzJywKKyAgICAgICAgcmVzLCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8t
c2hvdy1yZXN1bHRzJywKICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3Npbmdf
dGV4dC5odG1sJywKICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfaW1h
Z2UuaHRtbCcsCiAgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNzaW5nX2F1ZGlv
Lmh0bWwnLApAQCAtMTA0Nyw3ICsxMDIzLDYgQEAgY2xhc3MgUmViYXNlbGluZVRlc3QodW5pdHRl
c3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIGZpbGVfbGlzdCA9IGhv
c3QuZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzLmtleXMoKQogICAgICAgICBmaWxlX2xpc3QucmVt
b3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHQnKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlcywgMCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwgImZhaWx1cmVzL3VuZXhwZWN0ZWQvbWlzc2lu
Z190ZXh0IiwgWyIudHh0Il0sIGVycikKICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZXMoZmls
ZV9saXN0LCAicGxhdGZvcm0vdGVzdC9mYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfaW1hZ2Ui
LCBbIi5wbmciXSwgZXJyKQpAQCAtMTA1NywxMyArMTAzMiwxMiBAQCBjbGFzcyBSZWJhc2VsaW5l
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgIyBU
ZXN0IHRoYXQgd2UgdXBkYXRlIHRoZSBwbGF0Zm9ybSBleHBlY3RhdGlvbnMgaW4gdGhlIHZlcnNp
b24tc3BlY2lmaWMgZGlyZWN0b3JpZXMKICAgICAgICAgIyBmb3IgYm90aCBleGlzdGluZyBhbmQg
bmV3IGJhc2VsaW5lcy4KICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBv
dXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKAorICAgICAgICByZXMsIGVyciwgXyA9IGxvZ2dpbmdf
cnVuKAogICAgICAgICAgICAgWyctLXBpeGVsLXRlc3RzJywgJy0tbmV3LWJhc2VsaW5lJywgJ3Bh
c3Nlcy9pbWFnZS5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRtbCdd
LAogICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0LCBuZXdfcmVzdWx0
cz1UcnVlKQogICAgICAgICBmaWxlX2xpc3QgPSBob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxl
cy5rZXlzKCkKICAgICAgICAgZmlsZV9saXN0LnJlbW92ZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL3Rlc3RzX3J1bjAudHh0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIDApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihmaWxlX2xpc3QpLCA3KQogICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3Qs
CiAgICAgICAgICAgICAicGxhdGZvcm0vdGVzdC1tYWMtbGVvcGFyZC9wYXNzZXMvaW1hZ2UiLCBb
Ii50eHQiLCAiLnBuZyJdLCBlcnIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVzdWx0cy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNzc4ZDNkY2FiMWM3N2FmYjQ1OTdkODEzNjNkODg4NGRjZjE4NjQxCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3Rf
cmVzdWx0cy5weQpAQCAtMCwwICsxLDE2MSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0
IHRlc3RfZXhwZWN0YXRpb25zCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVz
dWx0c2pzb25wYXJzZXIKKworCitUZXN0RXhwZWN0YXRpb25zID0gdGVzdF9leHBlY3RhdGlvbnMu
VGVzdEV4cGVjdGF0aW9ucworVGVzdEV4cGVjdGF0aW9uUGFyc2VyID0gdGVzdF9leHBlY3RhdGlv
bnMuVGVzdEV4cGVjdGF0aW9uUGFyc2VyCisKKworY2xhc3MgQnVpbGRCb3RQcmludGVyKG9iamVj
dCk6CisgICAgIyBUaGlzIG91dHB1dCBpcyBwYXJzZWQgYnkgYnVpbGRib3RzIGFuZCBtdXN0IG9u
bHkgYmUgY2hhbmdlZCBpbiBjb29yZGluYXRpb24gd2l0aCBidWlsZGJvdCBzY3JpcHRzIChzZWUg
d2Via2l0Lm9yZydzCisgICAgIyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9tYXN0ZXIuY2ZnOiBSdW5XZWJLaXRUZXN0cy5fcGFyc2VOZXdSdW5XZWJLaXRU
ZXN0c091dHB1dAorICAgICMgYW5kIGNocm9taXVtLm9yZydzIGJ1aWxkYm90L21hc3Rlci5jaHJv
bWl1bS9zY3JpcHRzL21hc3Rlci9sb2dfcGFyc2VyL3dlYmtpdF90ZXN0X2NvbW1hbmQucHkpLgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmVhbSwgZGVidWdfbG9nZ2luZyk6CisgICAgICAg
IHNlbGYuc3RyZWFtID0gc3RyZWFtCisgICAgICAgIHNlbGYuZGVidWdfbG9nZ2luZyA9IGRlYnVn
X2xvZ2dpbmcKKworICAgIGRlZiBwcmludF9yZXN1bHRzKHNlbGYsIHJ1bl9kZXRhaWxzKToKKyAg
ICAgICAgaWYgc2VsZi5kZWJ1Z19sb2dnaW5nOgorICAgICAgICAgICAgc2VsZi5wcmludF9yZXN1
bHRfc3VtbWFyeShydW5fZGV0YWlscy5yZXN1bHRfc3VtbWFyeSkKKyAgICAgICAgc2VsZi5wcmlu
dF91bmV4cGVjdGVkX3Jlc3VsdHMocnVuX2RldGFpbHMuc3VtbWFyaXplZF9yZXN1bHRzKQorCisg
ICAgZGVmIF9wcmludChzZWxmLCBtc2cpOgorICAgICAgICBzZWxmLnN0cmVhbS53cml0ZShtc2cg
KyAnXG4nKQorCisgICAgZGVmIHByaW50X3Jlc3VsdF9zdW1tYXJ5KHNlbGYsIHJlc3VsdF9zdW1t
YXJ5KToKKyAgICAgICAgZmFpbGVkID0gcmVzdWx0X3N1bW1hcnkudG90YWxfZmFpbHVyZXMKKyAg
ICAgICAgdG90YWwgPSByZXN1bHRfc3VtbWFyeS50b3RhbAorICAgICAgICBwYXNzZWQgPSB0b3Rh
bCAtIGZhaWxlZCAtIHJlc3VsdF9zdW1tYXJ5LnJlbWFpbmluZworICAgICAgICBwY3RfcGFzc2Vk
ID0gMC4wCisgICAgICAgIGlmIHRvdGFsID4gMDoKKyAgICAgICAgICAgIHBjdF9wYXNzZWQgPSBm
bG9hdChwYXNzZWQpICogMTAwIC8gdG90YWwKKworICAgICAgICBzZWxmLl9wcmludCgiPT4gUmVz
dWx0czogJWQvJWQgdGVzdHMgcGFzc2VkICglLjFmJSUpIiAlIChwYXNzZWQsIHRvdGFsLCBwY3Rf
cGFzc2VkKSkKKyAgICAgICAgc2VsZi5fcHJpbnQoIiIpCisgICAgICAgIHNlbGYuX3ByaW50X3Jl
c3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4cGVjdGF0aW9ucy5OT1cs
ICJUZXN0cyB0byBiZSBmaXhlZCIpCisKKyAgICAgICAgc2VsZi5fcHJpbnQoIiIpCisgICAgICAg
ICMgRklYTUU6IFdlIHNob3VsZCBiZSBza2lwcGluZyBhbnl0aGluZyBtYXJrZWQgV09OVEZJWCwg
c28gd2Ugc2hvdWxkbid0IGJvdGhlciBsb2dnaW5nIHRoZXNlIHN0YXRzLgorICAgICAgICBzZWxm
Ll9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFyeSwgdGVzdF9leHBlY3Rh
dGlvbnMuV09OVEZJWCwKKyAgICAgICAgICAgICJUZXN0cyB0aGF0IHdpbGwgb25seSBiZSBmaXhl
ZCBpZiB0aGV5IGNyYXNoIChXT05URklYKSIpCisgICAgICAgIHNlbGYuX3ByaW50KCIiKQorCisg
ICAgZGVmIF9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShzZWxmLCByZXN1bHRfc3VtbWFyeSwg
dGltZWxpbmUsIGhlYWRpbmcpOgorICAgICAgICB0b3RhbCA9IGxlbihyZXN1bHRfc3VtbWFyeS50
ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0pCisgICAgICAgIG5vdF9wYXNzaW5nID0gKHRvdGFs
IC0KKyAgICAgICAgICAgIGxlbihyZXN1bHRfc3VtbWFyeS50ZXN0c19ieV9leHBlY3RhdGlvblt0
ZXN0X2V4cGVjdGF0aW9ucy5QQVNTXSAmCisgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnku
dGVzdHNfYnlfdGltZWxpbmVbdGltZWxpbmVdKSkKKyAgICAgICAgc2VsZi5fcHJpbnQoIj0+ICVz
ICglZCk6IiAlIChoZWFkaW5nLCBub3RfcGFzc2luZykpCisKKyAgICAgICAgZm9yIHJlc3VsdCBp
biBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OX09SREVSOgorICAgICAgICAgICAgaWYgcmVz
dWx0IGluICh0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTLCB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQKToK
KyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgcmVzdWx0cyA9IChyZXN1bHRf
c3VtbWFyeS50ZXN0c19ieV9leHBlY3RhdGlvbltyZXN1bHRdICYKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkKKyAgICAg
ICAgICAgIGRlc2MgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OX0RFU0NSSVBUSU9OU1ty
ZXN1bHRdCisgICAgICAgICAgICBpZiBub3RfcGFzc2luZyBhbmQgbGVuKHJlc3VsdHMpOgorICAg
ICAgICAgICAgICAgIHBjdCA9IGxlbihyZXN1bHRzKSAqIDEwMC4wIC8gbm90X3Bhc3NpbmcKKyAg
ICAgICAgICAgICAgICBzZWxmLl9wcmludCgiICAlNWQgJS0yNHMgKCU0LjFmJSUpIiAlIChsZW4o
cmVzdWx0cyksIGRlc2MsIHBjdCkpCisKKyAgICBkZWYgcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRz
KHNlbGYsIHN1bW1hcml6ZWRfcmVzdWx0cyk6CisgICAgICAgIHBhc3NlcyA9IHt9CisgICAgICAg
IGZsYWt5ID0ge30KKyAgICAgICAgcmVncmVzc2lvbnMgPSB7fQorCisgICAgICAgIGRlZiBhZGRf
dG9fZGljdF9vZl9saXN0cyhkaWN0LCBrZXksIHZhbHVlKToKKyAgICAgICAgICAgIGRpY3Quc2V0
ZGVmYXVsdChrZXksIFtdKS5hcHBlbmQodmFsdWUpCisKKyAgICAgICAgZGVmIGFkZF9yZXN1bHQo
dGVzdCwgcmVzdWx0cywgcGFzc2VzPXBhc3NlcywgZmxha3k9Zmxha3ksIHJlZ3Jlc3Npb25zPXJl
Z3Jlc3Npb25zKToKKyAgICAgICAgICAgIGFjdHVhbCA9IHJlc3VsdHNbJ2FjdHVhbCddLnNwbGl0
KCIgIikKKyAgICAgICAgICAgIGV4cGVjdGVkID0gcmVzdWx0c1snZXhwZWN0ZWQnXS5zcGxpdCgi
ICIpCisgICAgICAgICAgICBpZiBhbGwoYWN0dWFsX3Jlc3VsdCBpbiBleHBlY3RlZCBmb3IgYWN0
dWFsX3Jlc3VsdCBpbiBhY3R1YWwpOgorICAgICAgICAgICAgICAgICMgRG9uJ3QgcHJpbnQgYW55
dGhpbmcgZm9yIHRlc3RzIHRoYXQgcmFuIGFzIGV4cGVjdGVkCisgICAgICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgICAgICBlbGlmIGFjdHVhbCA9PSBbJ1BBU1MnXToKKyAgICAgICAgICAgICAg
ICBpZiAnQ1JBU0gnIGluIGV4cGVjdGVkOgorICAgICAgICAgICAgICAgICAgICBhZGRfdG9fZGlj
dF9vZl9saXN0cyhwYXNzZXMsICdFeHBlY3RlZCB0byBjcmFzaCwgYnV0IHBhc3NlZCcsIHRlc3Qp
CisgICAgICAgICAgICAgICAgZWxpZiAnVElNRU9VVCcgaW4gZXhwZWN0ZWQ6CisgICAgICAgICAg
ICAgICAgICAgIGFkZF90b19kaWN0X29mX2xpc3RzKHBhc3NlcywgJ0V4cGVjdGVkIHRvIHRpbWVv
dXQsIGJ1dCBwYXNzZWQnLCB0ZXN0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIGFkZF90b19kaWN0X29mX2xpc3RzKHBhc3NlcywgJ0V4cGVjdGVkIHRvIGZhaWws
IGJ1dCBwYXNzZWQnLCB0ZXN0KQorICAgICAgICAgICAgZWxpZiBsZW4oYWN0dWFsKSA+IDE6Cisg
ICAgICAgICAgICAgICAgIyBXZSBncm91cCBmbGFreSB0ZXN0cyBieSB0aGUgZmlyc3QgYWN0dWFs
IHJlc3VsdCB3ZSBnb3QuCisgICAgICAgICAgICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMoZmxh
a3ksIGFjdHVhbFswXSwgdGVzdCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
YWRkX3RvX2RpY3Rfb2ZfbGlzdHMocmVncmVzc2lvbnMsIHJlc3VsdHNbJ2FjdHVhbCddLCB0ZXN0
KQorCisgICAgICAgIHJlc3VsdHNqc29ucGFyc2VyLmZvcl9lYWNoX3Rlc3Qoc3VtbWFyaXplZF9y
ZXN1bHRzWyd0ZXN0cyddLCBhZGRfcmVzdWx0KQorCisgICAgICAgIGlmIGxlbihwYXNzZXMpIG9y
IGxlbihmbGFreSkgb3IgbGVuKHJlZ3Jlc3Npb25zKToKKyAgICAgICAgICAgIHNlbGYuX3ByaW50
KCJcbiIpCisgICAgICAgIGlmIGxlbihwYXNzZXMpOgorICAgICAgICAgICAgZm9yIGtleSwgdGVz
dHMgaW4gcGFzc2VzLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50KCIl
czogKCVkKVxuIiAlIChrZXksIGxlbih0ZXN0cykpKQorICAgICAgICAgICAgICAgIHRlc3RzLnNv
cnQoKQorICAgICAgICAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgorICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9wcmludCgiICAlc1xuIiAlIHRlc3QpCisgICAgICAgICAgICAgICAgc2VsZi5f
cHJpbnQoIlxuIikKKyAgICAgICAgICAgIHNlbGYuX3ByaW50KCJcbiIpCisKKyAgICAgICAgaWYg
bGVuKGZsYWt5KToKKyAgICAgICAgICAgIGRlc2NyaXB0aW9ucyA9IFRlc3RFeHBlY3RhdGlvbnMu
RVhQRUNUQVRJT05fREVTQ1JJUFRJT05TCisgICAgICAgICAgICBmb3Iga2V5LCB0ZXN0cyBpbiBm
bGFreS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUZXN0RXhwZWN0YXRp
b25zLkVYUEVDVEFUSU9OU1trZXkubG93ZXIoKV0KKyAgICAgICAgICAgICAgICBzZWxmLl9wcmlu
dCgiVW5leHBlY3RlZCBmbGFraW5lc3M6ICVzICglZCkiICUgKGRlc2NyaXB0aW9uc1tyZXN1bHRd
LCBsZW4odGVzdHMpKSkKKyAgICAgICAgICAgICAgICB0ZXN0cy5zb3J0KCkKKworICAgICAgICAg
ICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBy
ZXN1bHRzanNvbnBhcnNlci5yZXN1bHRfZm9yX3Rlc3Qoc3VtbWFyaXplZF9yZXN1bHRzWyd0ZXN0
cyddLCB0ZXN0KQorICAgICAgICAgICAgICAgICAgICBhY3R1YWwgPSByZXN1bHRbJ2FjdHVhbCdd
LnNwbGl0KCIgIikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSByZXN1bHRbJ2V4cGVj
dGVkJ10uc3BsaXQoIiAiKQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBUZXN0RXhwZWN0
YXRpb25zLkVYUEVDVEFUSU9OU1trZXkubG93ZXIoKV0KKyAgICAgICAgICAgICAgICAgICAgIyBG
SVhNRTogY2xlYW4gdGhpcyB1cCBvbmNlIHRoZSBvbGQgc3ludGF4IGlzIGdvbmUKKyAgICAgICAg
ICAgICAgICAgICAgbmV3X2V4cGVjdGF0aW9uc19saXN0ID0gW1Rlc3RFeHBlY3RhdGlvblBhcnNl
ci5faW52ZXJ0ZWRfZXhwZWN0YXRpb25fdG9rZW5zW2V4cF0gZm9yIGV4cCBpbiBsaXN0KHNldChh
Y3R1YWwpIHwgc2V0KGV4cGVjdGVkKSldCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50
KCIgICVzIFsgJXMgXSIgJSAodGVzdCwgIiAiLmpvaW4obmV3X2V4cGVjdGF0aW9uc19saXN0KSkp
CisgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnQoIiIpCisgICAgICAgICAgICBzZWxmLl9wcmlu
dCgiIikKKworICAgICAgICBpZiBsZW4ocmVncmVzc2lvbnMpOgorICAgICAgICAgICAgZGVzY3Jp
cHRpb25zID0gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9ERVNDUklQVElPTlMKKyAgICAg
ICAgICAgIGZvciBrZXksIHRlc3RzIGluIHJlZ3Jlc3Npb25zLml0ZXJpdGVtcygpOgorICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TW2tleS5sb3dl
cigpXQorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50KCJSZWdyZXNzaW9uczogVW5leHBlY3Rl
ZCAlcyAoJWQpIiAlIChkZXNjcmlwdGlvbnNbcmVzdWx0XSwgbGVuKHRlc3RzKSkpCisgICAgICAg
ICAgICAgICAgdGVzdHMuc29ydCgpCisgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6
CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50KCIgICVzIFsgJXMgXSIgJSAodGVzdCwg
VGVzdEV4cGVjdGF0aW9uUGFyc2VyLl9pbnZlcnRlZF9leHBlY3RhdGlvbl90b2tlbnNba2V5XSkp
CisgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnQoIiIpCisKKyAgICAgICAgaWYgbGVuKHN1bW1h
cml6ZWRfcmVzdWx0c1sndGVzdHMnXSkgYW5kIHNlbGYuZGVidWdfbG9nZ2luZzoKKyAgICAgICAg
ICAgIHNlbGYuX3ByaW50KCIlcyIgJSAoIi0iICogNzgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVzdWx0c191bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90
X3Jlc3VsdHNfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNlZTgwZDg5MDdlNjY5NGNkMDNkNDNm
OTkxNjgyNTYwYTM4NzE3OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTAs
MCArMSwxNTggQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCBTdHJpbmdJTworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLmhv
c3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29u
dHJvbGxlcnMgaW1wb3J0IG1hbmFnZXIKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVs
cyBpbXBvcnQgcmVzdWx0X3N1bW1hcnkKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVs
cyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1v
ZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9k
ZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZpZXdz
IGltcG9ydCBidWlsZGJvdF9yZXN1bHRzCisKKworY2xhc3MgQnVpbGRCb3RQcmludGVyVGVzdHMo
dW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBhc3NlcnRFbXB0eShzZWxmLCBzdHJlYW0pOgor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHN0cmVhbS5nZXR2YWx1ZSgpKQorCisgICAgZGVmIGFz
c2VydE5vdEVtcHR5KHNlbGYsIHN0cmVhbSk6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzdHJl
YW0uZ2V0dmFsdWUoKSkKKworICAgIGRlZiBnZXRfcHJpbnRlcihzZWxmKToKKyAgICAgICAgc3Ry
ZWFtID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgICBwcmludGVyID0gYnVpbGRib3RfcmVz
dWx0cy5CdWlsZEJvdFByaW50ZXIoc3RyZWFtLCBkZWJ1Z19sb2dnaW5nPVRydWUpCisgICAgICAg
IHJldHVybiBwcmludGVyLCBzdHJlYW0KKworICAgIGRlZiBnZXRfcmVzdWx0KHNlbGYsIHRlc3Rf
bmFtZSwgcmVzdWx0X3R5cGU9dGVzdF9leHBlY3RhdGlvbnMuUEFTUywgcnVuX3RpbWU9MCk6Cisg
ICAgICAgIGZhaWx1cmVzID0gW10KKyAgICAgICAgaWYgcmVzdWx0X3R5cGUgPT0gdGVzdF9leHBl
Y3RhdGlvbnMuVElNRU9VVDoKKyAgICAgICAgICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMu
RmFpbHVyZVRpbWVvdXQoKV0KKyAgICAgICAgZWxpZiByZXN1bHRfdHlwZSA9PSB0ZXN0X2V4cGVj
dGF0aW9ucy5DUkFTSDoKKyAgICAgICAgICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFp
bHVyZUNyYXNoKCldCisgICAgICAgIHJldHVybiB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0
X25hbWUsIGZhaWx1cmVzPWZhaWx1cmVzLCB0ZXN0X3J1bl90aW1lPXJ1bl90aW1lKQorCisgICAg
ZGVmIGdldF9yZXN1bHRfc3VtbWFyeShzZWxmLCBwb3J0LCB0ZXN0X25hbWVzLCBleHBlY3RhdGlv
bnNfc3RyKToKKyAgICAgICAgcG9ydC50ZXN0X2V4cGVjdGF0aW9ucyA9IGxhbWJkYTogZXhwZWN0
YXRpb25zX3N0cgorICAgICAgICBwb3J0LnRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyA9IGxh
bWJkYTogTm9uZQorICAgICAgICBleHBlY3RhdGlvbnMgPSB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0
RXhwZWN0YXRpb25zKHBvcnQsIHRlc3RfbmFtZXMpCisgICAgICAgIHJzID0gcmVzdWx0X3N1bW1h
cnkuUmVzdWx0U3VtbWFyeShleHBlY3RhdGlvbnMsIGxlbih0ZXN0X25hbWVzKSkKKyAgICAgICAg
cmV0dXJuIHRlc3RfbmFtZXMsIHJzLCBleHBlY3RhdGlvbnMKKworICAgIGRlZiB0ZXN0X3ByaW50
X3VuZXhwZWN0ZWRfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgIyBUaGlzIHJvdXRpbmUgaXMgdGhl
IG9ubHkgb25lIHRoYXQgcHJpbnRzIHN0dWZmIHRoYXQgdGhlIGJvdHMKKyAgICAgICAgIyBjYXJl
IGFib3V0LgorICAgICAgICAjCisgICAgICAgICMgRklYTUU6IHRoZXJlJ3Mgc29tZSB3ZWlyZCBs
YXllcmluZyBnb2luZyBvbiBoZXJlLiBJdCBzZWVtcworICAgICAgICAjIGxpa2Ugd2Ugc2hvdWxk
bid0IGJlIGJvdGggdXNpbmcgYW4gZXhwZWN0YXRpb25zIHN0cmluZyBhbmQKKyAgICAgICAgIyBo
YXZpbmcgdG8gc3BlY2lmeSB3aGV0aGVyIG9yIG5vdCB0aGUgcmVzdWx0IHdhcyBleHBlY3RlZC4K
KyAgICAgICAgIyBUaGlzIHdob2xlIHNldCBvZiB0ZXN0cyBzaG91bGQgcHJvYmFibHkgYmUgcmV3
cml0dGVuLgorICAgICAgICAjCisgICAgICAgICMgRklYTUU6IFBsdXMsIHRoZSBmYWN0IHRoYXQg
d2UncmUgaGF2aW5nIHRvIGNhbGwgaW50bworICAgICAgICAjIHJ1bl93ZWJraXRfdGVzdHMgaXMg
Y2xlYXJseSBhIGxheWVyaW5nIGludmVyc2lvbi4KKyAgICAgICAgdGVzdHMgPSBbJ3Bhc3Nlcy90
ZXh0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgJ2ZhaWx1cmVzL2V4
cGVjdGVkL2NyYXNoLmh0bWwnXQorICAgICAgICBleHBlY3RhdGlvbnMgPSAnJworCisgICAgICAg
IGRlZiBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVjdGVkLCBwYXNzaW5nLCBmbGFreSk6Cisg
ICAgICAgICAgICAiIiJSZXR1cm4gYW4gdW5leHBlY3RlZCByZXN1bHRzIHN1bW1hcnkgbWF0Y2hp
bmcgdGhlIGlucHV0IGRlc2NyaXB0aW9uLgorCisgICAgICAgICAgICBUaGVyZSBhcmUgYSBsb3Qg
b2YgZGlmZmVyZW50IGNvbWJpbmF0aW9ucyBvZiB0ZXN0IHJlc3VsdHMgdGhhdAorICAgICAgICAg
ICAgY2FuIGJlIHRlc3RlZDsgdGhpcyByb3V0aW5lIHByb2R1Y2VzIHZhcmlvdXMgY29tYmluYXRp
b25zIGJhc2VkCisgICAgICAgICAgICBvbiB0aGUgdmFsdWVzIG9mIHRoZSBpbnB1dCBmbGFncy4K
KworICAgICAgICAgICAgQXJncworICAgICAgICAgICAgICAgIGV4cGVjdGVkOiB3aGV0aGVyIHRo
ZSB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICBwYXNzaW5nOiB3aGV0aGVy
IHRoZSB0ZXN0cyBzaG91bGQgYWxsIHBhc3MKKyAgICAgICAgICAgICAgICBmbGFreTogd2hldGhl
ciB0aGUgdGVzdHMgc2hvdWxkIGJlIGZsYWt5IChpZiBGYWxzZSwgdGhleQorICAgICAgICAgICAg
ICAgICAgICBwcm9kdWNlIHRoZSBzYW1lIHJlc3VsdHMgb24gYm90aCBydW5zOyBpZiBUcnVlLCB0
aGV5CisgICAgICAgICAgICAgICAgICAgIGFsbCBwYXNzIG9uIHRoZSBzZWNvbmQgcnVuKS4KKwor
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBwb3J0ID0gTW9ja0hvc3QoKS5wb3J0X2ZhY3Rv
cnkuZ2V0KCd0ZXN0JykKKyAgICAgICAgICAgIHRlc3RfaXNfc2xvdyA9IEZhbHNlCisgICAgICAg
ICAgICBwYXRocywgcnMsIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHBvcnQsIHRlc3Rz
LCBleHBlY3RhdGlvbnMpCisgICAgICAgICAgICBpZiBleHBlY3RlZDoKKyAgICAgICAgICAgICAg
ICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICAgICAgcnMu
YWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVz
dF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAg
ICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2gu
aHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykK
KyAgICAgICAgICAgIGVsaWYgcGFzc2luZzoKKyAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5n
ZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisg
ICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQv
dGltZW91dC5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICAgICAg
cnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBl
eHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICAgICAg
cnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywg
dGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAg
ICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNo
Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xv
dykKKyAgICAgICAgICAgIHJldHJ5ID0gcnMKKyAgICAgICAgICAgIGlmIGZsYWt5OgorICAgICAg
ICAgICAgICAgIHBhdGhzLCByZXRyeSwgZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1hcnkocG9y
dCwgdGVzdHMsIGV4cGVjdGF0aW9ucykKKyAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5n
ZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKKyAgICAg
ICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90
aW1lb3V0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgICAgIHJldHJ5
LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnKSwgVHJ1
ZSwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcmV0dXJuIG1hbmFnZXIuc3VtbWFyaXplX3Jl
c3VsdHMocG9ydCwgZXhwLCBycywgcmV0cnkpCisKKyAgICAgICAgcHJpbnRlciwgb3V0ID0gc2Vs
Zi5nZXRfcHJpbnRlcigpCisKKyAgICAgICAgIyB0ZXN0IGV2ZXJ5dGhpbmcgcnVubmluZyBhcyBl
eHBlY3RlZAorICAgICAgICB1ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9VHJ1
ZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCisgICAgICAgIHByaW50ZXIucHJpbnRfdW5l
eHBlY3RlZF9yZXN1bHRzKHVyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKKwor
ICAgICAgICAjIHRlc3QgZmFpbHVyZXMKKyAgICAgICAgcHJpbnRlciwgb3V0ID0gc2VsZi5nZXRf
cHJpbnRlcigpCisgICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1G
YWxzZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCisgICAgICAgIHByaW50ZXIucHJpbnRf
dW5leHBlY3RlZF9yZXN1bHRzKHVyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkK
KworICAgICAgICAjIHRlc3QgdW5leHBlY3RlZCBmbGFreQorICAgICAgICBwcmludGVyLCBvdXQg
PSBzZWxmLmdldF9wcmludGVyKCkKKyAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRz
KGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1UcnVlKQorICAgICAgICBwcmlu
dGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RF
bXB0eShvdXQpCisKKyAgICAgICAgcHJpbnRlciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCisg
ICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxzZSwgcGFzc2lu
Zz1GYWxzZSwgZmxha3k9RmFsc2UpCisgICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9y
ZXN1bHRzKHVyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKKworICAgICAgICBl
eHBlY3RhdGlvbnMgPSAiIiIKK0JVR1ggOiBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sID0g
Q1JBU0gKK0JVR1ggOiBmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwgPSBUSU1FT1VUCisi
IiIKKyAgICAgICAgcHJpbnRlciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCisgICAgICAgIHVy
ID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxzZSwgcGFzc2luZz1GYWxzZSwg
Zmxha3k9RmFsc2UpCisgICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVy
KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKKworICAgICAgICBwcmludGVyLCBv
dXQgPSBzZWxmLmdldF9wcmludGVyKCkKKyAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1
bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPVRydWUsIGZsYWt5PUZhbHNlKQorICAgICAgICBw
cmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKKyAgICAgICAgc2VsZi5hc3NlcnRO
b3RFbXB0eShvdXQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9wcmludGluZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL3ByaW50aW5nLnB5CmluZGV4IDE0OTIxMzA3MTYwMDI3NmQ3MDcwYjNiZDUwOTBm
NmNhYjVhM2IxZmEuLjQ3MDYzMmNhZjI2ZGFiMzA2OGI0ZDdhZDIyYTUzNmNmYTY1NTdiMTAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50
aW5nLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3By
aW50aW5nLnB5CkBAIC0zMiw3ICszMiw2IEBAIGltcG9ydCBtYXRoCiBpbXBvcnQgb3B0cGFyc2UK
IAogZnJvbSB3ZWJraXRweS50b29sIGltcG9ydCBncmFtbWFyCi1mcm9tIHdlYmtpdHB5LmNvbW1v
bi5uZXQgaW1wb3J0IHJlc3VsdHNqc29ucGFyc2VyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0
cy5tb2RlbHMgaW1wb3J0IHRlc3RfZXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5tb2RlbHMudGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBlY3RhdGlvbnMsIFRl
c3RFeHBlY3RhdGlvblBhcnNlcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMudmlld3MubWV0
ZXJlZF9zdHJlYW0gaW1wb3J0IE1ldGVyZWRTdHJlYW0KQEAgLTU1LDIzICs1NCwxMyBAQCBkZWYg
cHJpbnRfb3B0aW9ucygpOgogCiAKIGNsYXNzIFByaW50ZXIob2JqZWN0KToKLSAgICAiIiJDbGFz
cyBoYW5kbGluZyBhbGwgbm9uLWRlYnVnLWxvZ2dpbmcgcHJpbnRpbmcgZG9uZSBieSBydW4td2Vi
a2l0LXRlc3RzLgotCi0gICAgUHJpbnRpbmcgZnJvbSBydW4td2Via2l0LXRlc3RzIGZhbGxzIGlu
dG8gdHdvIGJ1Y2tldHM6IGdlbmVyYWwgb3IKLSAgICByZWd1bGFyIG91dHB1dCB0aGF0IGlzIHJl
YWQgb25seSBieSBodW1hbnMgYW5kIGNhbiBiZSBjaGFuZ2VkIGF0IGFueQotICAgIHRpbWUsIGFu
ZCBvdXRwdXQgdGhhdCBpcyBwYXJzZWQgYnkgYnVpbGRib3RzIChhbmQgaHVtYW5zKSBhbmQgaGVu
Y2UKLSAgICBtdXN0IGJlIGNoYW5nZWQgbW9yZSBjYXJlZnVsbHkgYW5kIGluIGNvb3JkaW5hdGlv
biB3aXRoIHRoZSBidWlsZGJvdAotICAgIHBhcnNpbmcgY29kZSAoaW4gY2hyb21pdW0ub3JnJ3Mg
YnVpbGRib3QvbWFzdGVyLmNocm9taXVtL3NjcmlwdHMvbWFzdGVyLwotICAgIGxvZ19wYXJzZXIv
d2Via2l0X3Rlc3RfY29tbWFuZC5weSBzY3JpcHQpLgotCi0gICAgQnkgZGVmYXVsdCB0aGUgYnVp
bGRib3QtcGFyc2VkIGNvZGUgZ2V0cyBsb2dnZWQgdG8gc3Rkb3V0LCBhbmQgcmVndWxhcgotICAg
IG91dHB1dCBnZXRzIGxvZ2dlZCB0byBzdGRlcnIuIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0LCBidWlsZGJvdF9vdXRwdXQsIGxvZ2dlcj1O
b25lKToKKyAgICAiIiJDbGFzcyBoYW5kbGluZyBhbGwgbm9uLWRlYnVnLWxvZ2dpbmcgcHJpbnRp
bmcgZG9uZSBieSBydW4td2Via2l0LXRlc3RzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0LCBsb2dnZXI9Tm9uZSk6CiAgICAgICAgIHNl
bGYubnVtX2NvbXBsZXRlZCA9IDAKICAgICAgICAgc2VsZi5udW1fdGVzdHMgPSAwCiAgICAgICAg
IHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAg
ICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbSA9IGJ1aWxkYm90X291dHB1dAogICAgICAgICBzZWxm
Ll9tZXRlciA9IE1ldGVyZWRTdHJlYW0ocmVndWxhcl9vdXRwdXQsIG9wdGlvbnMuZGVidWdfcnd0
X2xvZ2dpbmcsIGxvZ2dlcj1sb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBudW1iZXJfb2ZfY29sdW1ucz1zZWxmLl9wb3J0Lmhvc3QucGxhdGZvcm0udGVybWluYWxf
d2lkdGgoKSkKICAgICAgICAgc2VsZi5fcnVubmluZ190ZXN0cyA9IFtdCkBAIC0xNTAsMTEgKzEz
OSw5IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKIAogICAgIGRlZiBwcmludF9yZXN1bHRzKHNl
bGYsIHJ1bl90aW1lLCByZXN1bHRfc3VtbWFyeSwgc3VtbWFyaXplZF9yZXN1bHRzKToKICAgICAg
ICAgc2VsZi5fcHJpbnRfdGltaW5nX3N0YXRpc3RpY3MocnVuX3RpbWUsIHJlc3VsdF9zdW1tYXJ5
KQotICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeShyZXN1bHRfc3VtbWFyeSkKICAg
ICAgICAgc2VsZi5fcHJpbnRfb25lX2xpbmVfc3VtbWFyeShyZXN1bHRfc3VtbWFyeS50b3RhbCAt
IHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkIC0gcmVzdWx0X3N1bW1hcnkuZXhw
ZWN0ZWRfc2tpcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
X3N1bW1hcnkudW5leHBlY3RlZCkKLSAgICAgICAgc2VsZi5fcHJpbnRfdW5leHBlY3RlZF9yZXN1
bHRzKHN1bW1hcml6ZWRfcmVzdWx0cykKIAogICAgIGRlZiBfcHJpbnRfdGltaW5nX3N0YXRpc3Rp
Y3Moc2VsZiwgdG90YWxfdGltZSwgcmVzdWx0X3N1bW1hcnkpOgogICAgICAgICBzZWxmLl9wcmlu
dF9kZWJ1ZygiVGVzdCB0aW1pbmc6IikKQEAgLTI3NSw0NCArMjYyLDYgQEAgY2xhc3MgUHJpbnRl
cihvYmplY3QpOgogICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICBTdGFuZGFyZCBkZXY6ICAg
ICU2LjNmIiAlIHN0ZF9kZXZpYXRpb24pCiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIiKQog
Ci0gICAgZGVmIF9wcmludF9yZXN1bHRfc3VtbWFyeShzZWxmLCByZXN1bHRfc3VtbWFyeSk6Ci0g
ICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmRlYnVnX3J3dF9sb2dnaW5nOgotICAgICAgICAg
ICAgcmV0dXJuCi0KLSAgICAgICAgZmFpbGVkID0gcmVzdWx0X3N1bW1hcnkudG90YWxfZmFpbHVy
ZXMKLSAgICAgICAgdG90YWwgPSByZXN1bHRfc3VtbWFyeS50b3RhbCAtIHJlc3VsdF9zdW1tYXJ5
LmV4cGVjdGVkX3NraXBzCi0gICAgICAgIHBhc3NlZCA9IHRvdGFsIC0gZmFpbGVkIC0gcmVzdWx0
X3N1bW1hcnkucmVtYWluaW5nCi0gICAgICAgIHBjdF9wYXNzZWQgPSAwLjAKLSAgICAgICAgaWYg
dG90YWwgPiAwOgotICAgICAgICAgICAgcGN0X3Bhc3NlZCA9IGZsb2F0KHBhc3NlZCkgKiAxMDAg
LyB0b3RhbAotCi0gICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIj0+IFJlc3VsdHM6ICVkLyVk
IHRlc3RzIHBhc3NlZCAoJS4xZiUlKSIgJSAocGFzc2VkLCB0b3RhbCwgcGN0X3Bhc3NlZCkpCi0g
ICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiIpCi0gICAgICAgIHNlbGYuX3ByaW50X3Jlc3Vs
dF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4cGVjdGF0aW9ucy5OT1csICJU
ZXN0cyB0byBiZSBmaXhlZCIpCi0KLSAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiIikKLSAg
ICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGJlIHNraXBwaW5nIGFueXRoaW5nIG1hcmtlZCBXT05U
RklYLCBzbyB3ZSBzaG91bGRuJ3QgYm90aGVyIGxvZ2dpbmcgdGhlc2Ugc3RhdHMuCi0gICAgICAg
IHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4
cGVjdGF0aW9ucy5XT05URklYLAotICAgICAgICAgICAgIlRlc3RzIHRoYXQgd2lsbCBvbmx5IGJl
IGZpeGVkIGlmIHRoZXkgY3Jhc2ggKFdPTlRGSVgpIikKLSAgICAgICAgc2VsZi5fcHJpbnRfZm9y
X2JvdCgiIikKLQotICAgIGRlZiBfcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkoc2VsZiwgcmVz
dWx0X3N1bW1hcnksIHRpbWVsaW5lLCBoZWFkaW5nKToKLSAgICAgICAgdG90YWwgPSBsZW4ocmVz
dWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGltZWxpbmVdKQotICAgICAgICBub3RfcGFz
c2luZyA9ICh0b3RhbCAtCi0gICAgICAgICAgIGxlbihyZXN1bHRfc3VtbWFyeS50ZXN0c19ieV9l
eHBlY3RhdGlvblt0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTXSAmCi0gICAgICAgICAgICAgICByZXN1
bHRfc3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0pKQotICAgICAgICBzZWxmLl9w
cmludF9mb3JfYm90KCI9PiAlcyAoJWQpOiIgJSAoaGVhZGluZywgbm90X3Bhc3NpbmcpKQotCi0g
ICAgICAgIGZvciByZXN1bHQgaW4gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9PUkRFUjoK
LSAgICAgICAgICAgIGlmIHJlc3VsdCBpbiAodGVzdF9leHBlY3RhdGlvbnMuUEFTUywgdGVzdF9l
eHBlY3RhdGlvbnMuU0tJUCk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IHJlc3VsdHMgPSAocmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bcmVzdWx0XSAm
Ci0gICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5l
W3RpbWVsaW5lXSkKLSAgICAgICAgICAgIGRlc2MgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFU
SU9OX0RFU0NSSVBUSU9OU1tyZXN1bHRdCi0gICAgICAgICAgICBpZiBub3RfcGFzc2luZyBhbmQg
bGVuKHJlc3VsdHMpOgotICAgICAgICAgICAgICAgIHBjdCA9IGxlbihyZXN1bHRzKSAqIDEwMC4w
IC8gbm90X3Bhc3NpbmcKLSAgICAgICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIgICU1
ZCAlLTI0cyAoJTQuMWYlJSkiICUgKGxlbihyZXN1bHRzKSwgZGVzYywgcGN0KSkKLQogICAgIGRl
ZiBfcHJpbnRfb25lX2xpbmVfc3VtbWFyeShzZWxmLCB0b3RhbCwgZXhwZWN0ZWQsIHVuZXhwZWN0
ZWQpOgogICAgICAgICBpbmNvbXBsZXRlID0gdG90YWwgLSBleHBlY3RlZCAtIHVuZXhwZWN0ZWQK
ICAgICAgICAgaW5jb21wbGV0ZV9zdHIgPSAnJwpAQCAtNDIzLDc5ICszNzIsNiBAQCBjbGFzcyBQ
cmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICByZWxwYXRoID0gJzxub25lPicKICAgICAgICAg
c2VsZi5fcHJpbnRfZGVmYXVsdCgnICAlczogJXMnICUgKGV4dGVuc2lvblsxOl0sIHJlbHBhdGgp
KQogCi0gICAgZGVmIF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMoc2VsZiwgc3VtbWFyaXplZF9y
ZXN1bHRzKToKLSAgICAgICAgIyBQcmludHMgdG8gdGhlIGJ1aWxkYm90IHN0cmVhbQotICAgICAg
ICBwYXNzZXMgPSB7fQotICAgICAgICBmbGFreSA9IHt9Ci0gICAgICAgIHJlZ3Jlc3Npb25zID0g
e30KLQotICAgICAgICBkZWYgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMoZGljdCwga2V5LCB2YWx1ZSk6
Ci0gICAgICAgICAgICBkaWN0LnNldGRlZmF1bHQoa2V5LCBbXSkuYXBwZW5kKHZhbHVlKQotCi0g
ICAgICAgIGRlZiBhZGRfcmVzdWx0KHRlc3QsIHJlc3VsdHMsIHBhc3Nlcz1wYXNzZXMsIGZsYWt5
PWZsYWt5LCByZWdyZXNzaW9ucz1yZWdyZXNzaW9ucyk6Ci0gICAgICAgICAgICBhY3R1YWwgPSBy
ZXN1bHRzWydhY3R1YWwnXS5zcGxpdCgiICIpCi0gICAgICAgICAgICBleHBlY3RlZCA9IHJlc3Vs
dHNbJ2V4cGVjdGVkJ10uc3BsaXQoIiAiKQotICAgICAgICAgICAgaWYgYWxsKGFjdHVhbF9yZXN1
bHQgaW4gZXhwZWN0ZWQgZm9yIGFjdHVhbF9yZXN1bHQgaW4gYWN0dWFsKToKLSAgICAgICAgICAg
ICAgICAgICAgIyBEb24ndCBwcmludCBhbnl0aGluZyBmb3IgdGVzdHMgdGhhdCByYW4gYXMgZXhw
ZWN0ZWQuCi0gICAgICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBpZiBhY3R1
YWwgPT0gWydQQVNTJ106Ci0gICAgICAgICAgICAgICAgaWYgJ0NSQVNIJyBpbiBleHBlY3RlZDoK
LSAgICAgICAgICAgICAgICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMocGFzc2VzLCAnRXhwZWN0
ZWQgdG8gY3Jhc2gsIGJ1dCBwYXNzZWQnLCB0ZXN0KQotICAgICAgICAgICAgICAgIGVsaWYgJ1RJ
TUVPVVQnIGluIGV4cGVjdGVkOgotICAgICAgICAgICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9s
aXN0cyhwYXNzZXMsICdFeHBlY3RlZCB0byB0aW1lb3V0LCBidXQgcGFzc2VkJywgdGVzdCkKLSAg
ICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9s
aXN0cyhwYXNzZXMsICdFeHBlY3RlZCB0byBmYWlsLCBidXQgcGFzc2VkJywgdGVzdCkKLSAgICAg
ICAgICAgIGVsaWYgbGVuKGFjdHVhbCkgPiAxOgotICAgICAgICAgICAgICAgICMgV2UgZ3JvdXAg
Zmxha3kgdGVzdHMgYnkgdGhlIGZpcnN0IGFjdHVhbCByZXN1bHQgd2UgZ290LgotICAgICAgICAg
ICAgICAgIGFkZF90b19kaWN0X29mX2xpc3RzKGZsYWt5LCBhY3R1YWxbMF0sIHRlc3QpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGFkZF90b19kaWN0X29mX2xpc3RzKHJlZ3Jl
c3Npb25zLCByZXN1bHRzWydhY3R1YWwnXSwgdGVzdCkKLQotICAgICAgICByZXN1bHRzanNvbnBh
cnNlci5mb3JfZWFjaF90ZXN0KHN1bW1hcml6ZWRfcmVzdWx0c1sndGVzdHMnXSwgYWRkX3Jlc3Vs
dCkKLQotICAgICAgICBpZiBsZW4ocGFzc2VzKSBvciBsZW4oZmxha3kpIG9yIGxlbihyZWdyZXNz
aW9ucyk6Ci0gICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQotICAgICAgICBpZiBs
ZW4ocGFzc2VzKToKLSAgICAgICAgICAgIGZvciBrZXksIHRlc3RzIGluIHBhc3Nlcy5pdGVyaXRl
bXMoKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIlczogKCVkKSIgJSAo
a2V5LCBsZW4odGVzdHMpKSkKLSAgICAgICAgICAgICAgICB0ZXN0cy5zb3J0KCkKLSAgICAgICAg
ICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJp
bnRfZm9yX2JvdCgiICAlcyIgJSB0ZXN0KQotICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zv
cl9ib3QoIiIpCi0gICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQotCi0gICAgICAg
IGlmIGxlbihmbGFreSk6Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbnMgPSBUZXN0RXhwZWN0YXRp
b25zLkVYUEVDVEFUSU9OX0RFU0NSSVBUSU9OUwotICAgICAgICAgICAgZm9yIGtleSwgdGVzdHMg
aW4gZmxha3kuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gVGVzdEV4cGVj
dGF0aW9ucy5FWFBFQ1RBVElPTlNba2V5Lmxvd2VyKCldCi0gICAgICAgICAgICAgICAgc2VsZi5f
cHJpbnRfZm9yX2JvdCgiVW5leHBlY3RlZCBmbGFraW5lc3M6ICVzICglZCkiICUgKGRlc2NyaXB0
aW9uc1tyZXN1bHRdLCBsZW4odGVzdHMpKSkKLSAgICAgICAgICAgICAgICB0ZXN0cy5zb3J0KCkK
LQotICAgICAgICAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgotICAgICAgICAgICAgICAgICAg
ICByZXN1bHQgPSByZXN1bHRzanNvbnBhcnNlci5yZXN1bHRfZm9yX3Rlc3Qoc3VtbWFyaXplZF9y
ZXN1bHRzWyd0ZXN0cyddLCB0ZXN0KQotICAgICAgICAgICAgICAgICAgICBhY3R1YWwgPSByZXN1
bHRbJ2FjdHVhbCddLnNwbGl0KCIgIikKLSAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSBy
ZXN1bHRbJ2V4cGVjdGVkJ10uc3BsaXQoIiAiKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQg
PSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OU1trZXkubG93ZXIoKV0KLSAgICAgICAgICAg
ICAgICAgICAgIyBGSVhNRTogY2xlYW4gdGhpcyB1cCBvbmNlIHRoZSBvbGQgc3ludGF4IGlzIGdv
bmUKLSAgICAgICAgICAgICAgICAgICAgbmV3X2V4cGVjdGF0aW9uc19saXN0ID0gW1Rlc3RFeHBl
Y3RhdGlvblBhcnNlci5faW52ZXJ0ZWRfZXhwZWN0YXRpb25fdG9rZW5zW2V4cF0gZm9yIGV4cCBp
biBsaXN0KHNldChhY3R1YWwpIHwgc2V0KGV4cGVjdGVkKSldCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3ByaW50X2Zvcl9ib3QoIiAgJXMgWyAlcyBdIiAlICh0ZXN0LCAiICIuam9pbihuZXdf
ZXhwZWN0YXRpb25zX2xpc3QpKSkKLSAgICAgICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90
KCIiKQotICAgICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiIikKLQotICAgICAgICBpZiBs
ZW4ocmVncmVzc2lvbnMpOgotICAgICAgICAgICAgZGVzY3JpcHRpb25zID0gVGVzdEV4cGVjdGF0
aW9ucy5FWFBFQ1RBVElPTl9ERVNDUklQVElPTlMKLSAgICAgICAgICAgIGZvciBrZXksIHRlc3Rz
IGluIHJlZ3Jlc3Npb25zLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRl
c3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TW2tleS5sb3dlcigpXQotICAgICAgICAgICAgICAg
IHNlbGYuX3ByaW50X2Zvcl9ib3QoIlJlZ3Jlc3Npb25zOiBVbmV4cGVjdGVkICVzICglZCkiICUg
KGRlc2NyaXB0aW9uc1tyZXN1bHRdLCBsZW4odGVzdHMpKSkKLSAgICAgICAgICAgICAgICB0ZXN0
cy5zb3J0KCkKLSAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiICAlcyBbICVzIF0iICUgKHRlc3QsIFRlc3RF
eHBlY3RhdGlvblBhcnNlci5faW52ZXJ0ZWRfZXhwZWN0YXRpb25fdG9rZW5zW2tleV0pKQotICAg
ICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiIpCi0KLSAgICAgICAgaWYgbGVuKHN1
bW1hcml6ZWRfcmVzdWx0c1sndGVzdHMnXSkgYW5kIHNlbGYuX29wdGlvbnMuZGVidWdfcnd0X2xv
Z2dpbmc6Ci0gICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIlcyIgJSAoIi0iICogNzgp
KQotCiAgICAgZGVmIF9wcmludF9xdWlldChzZWxmLCBtc2cpOgogICAgICAgICBzZWxmLndyaXRl
bG4obXNnKQogCkBAIC01MDcsOSArMzgzLDYgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAg
ICAgICBpZiBzZWxmLl9vcHRpb25zLmRlYnVnX3J3dF9sb2dnaW5nOgogICAgICAgICAgICAgc2Vs
Zi53cml0ZWxuKG1zZykKIAotICAgIGRlZiBfcHJpbnRfZm9yX2JvdChzZWxmLCBtc2cpOgotICAg
ICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0ud3JpdGUobXNnICsgIlxuIikKLQogICAgIGRlZiB3
cml0ZV91cGRhdGUoc2VsZiwgbXNnKToKICAgICAgICAgc2VsZi5fbWV0ZXIud3JpdGVfdXBkYXRl
KG1zZykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
dmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQppbmRleCBhYTc5NTkyYTNjOWU3Mzdi
ODYyZDQyZDA5ZDc5ZDhiNzNjN2FjZmI2Li44NWE0ZjBkY2NjZjdhNDIzZTBkODdjMWI2Yzg1M2Jh
ODc0MDkwMTVlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQpAQCAtODIsOSArODIsOCBA
QCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBucHJvYyA9
IDIKIAogICAgICAgICByZWd1bGFyX291dHB1dCA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKLSAgICAg
ICAgYnVpbGRib3Rfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgICAgICBwcmludGVy
ID0gcHJpbnRpbmcuUHJpbnRlcihzZWxmLl9wb3J0LCBvcHRpb25zLCByZWd1bGFyX291dHB1dCwg
YnVpbGRib3Rfb3V0cHV0KQotICAgICAgICByZXR1cm4gcHJpbnRlciwgcmVndWxhcl9vdXRwdXQs
IGJ1aWxkYm90X291dHB1dAorICAgICAgICBwcmludGVyID0gcHJpbnRpbmcuUHJpbnRlcihzZWxm
Ll9wb3J0LCBvcHRpb25zLCByZWd1bGFyX291dHB1dCkKKyAgICAgICAgcmV0dXJuIHByaW50ZXIs
IHJlZ3VsYXJfb3V0cHV0CiAKICAgICBkZWYgZ2V0X3Jlc3VsdChzZWxmLCB0ZXN0X25hbWUsIHJl
c3VsdF90eXBlPXRlc3RfZXhwZWN0YXRpb25zLlBBU1MsIHJ1bl90aW1lPTApOgogICAgICAgICBm
YWlsdXJlcyA9IFtdCkBAIC05NCwyNCArOTMsMTYgQEAgY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFp
bHVyZUNyYXNoKCldCiAgICAgICAgIHJldHVybiB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0
X25hbWUsIGZhaWx1cmVzPWZhaWx1cmVzLCB0ZXN0X3J1bl90aW1lPXJ1bl90aW1lKQogCi0gICAg
ZGVmIGdldF9yZXN1bHRfc3VtbWFyeShzZWxmLCB0ZXN0X25hbWVzLCBleHBlY3RhdGlvbnNfc3Ry
KToKLSAgICAgICAgcG9ydC50ZXN0X2V4cGVjdGF0aW9ucyA9IGxhbWJkYTogZXhwZWN0YXRpb25z
X3N0cgotICAgICAgICBwb3J0LnRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyA9IGxhbWJkYTog
Tm9uZQotICAgICAgICBleHBlY3RhdGlvbnMgPSB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0
YXRpb25zKHNlbGYuX3BvcnQsIHRlc3RfbmFtZXMpCi0KLSAgICAgICAgcnMgPSByZXN1bHRfc3Vt
bWFyeS5SZXN1bHRTdW1tYXJ5KGV4cGVjdGF0aW9ucywgbGVuKHRlc3RfbmFtZXMpKQotICAgICAg
ICByZXR1cm4gdGVzdF9uYW1lcywgcnMsIGV4cGVjdGF0aW9ucwotCiAgICAgZGVmIHRlc3RfY29u
ZmlndXJlX2FuZF9jbGVhbnVwKHNlbGYpOgogICAgICAgICAjIFRoaXMgdGVzdCB2ZXJpZmllcyB0
aGF0IGNhbGxpbmcgY2xlYW51cCByZXBlYXRlZGx5IGFuZCBkZWxldGluZwogICAgICAgICAjIHRo
ZSBvYmplY3QgaXMgc2FmZS4KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9w
cmludGVyKCkKKyAgICAgICAgcHJpbnRlciwgZXJyID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAg
ICAgIHByaW50ZXIuY2xlYW51cCgpCiAgICAgICAgIHByaW50ZXIuY2xlYW51cCgpCiAgICAgICAg
IHByaW50ZXIgPSBOb25lCiAKICAgICBkZWYgdGVzdF9wcmludF9jb25maWcoc2VsZik6Ci0gICAg
ICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCisgICAgICAgIHByaW50
ZXIsIGVyciA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICAjIEZJWE1FOiBpdCdzIGxhbWUg
dGhhdCBpIGhhdmUgdG8gc2V0IHRoZXNlIG9wdGlvbnMgZGlyZWN0bHkuCiAgICAgICAgIHByaW50
ZXIuX29wdGlvbnMucGl4ZWxfdGVzdHMgPSBUcnVlCiAgICAgICAgIHByaW50ZXIuX29wdGlvbnMu
bmV3X2Jhc2VsaW5lID0gVHJ1ZQpAQCAtMTMzLDEyOCArMTI0LDI4IEBAIGNsYXNzICBUZXN0cHJp
bnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ0Jhc2Vs
aW5lIHNlYXJjaCBwYXRoOiB0ZXN0LW1hYy1sZW9wYXJkIC0+IHRlc3QtbWFjLXNub3dsZW9wYXJk
IC0+IGdlbmVyaWMnIGluIGVyci5nZXR2YWx1ZSgpKQogCiAgICAgZGVmIHRlc3RfcHJpbnRfb25l
X2xpbmVfc3VtbWFyeShzZWxmKToKLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdl
dF9wcmludGVyKCkKKyAgICAgICAgcHJpbnRlciwgZXJyID0gc2VsZi5nZXRfcHJpbnRlcigpCiAg
ICAgICAgIHByaW50ZXIuX3ByaW50X29uZV9saW5lX3N1bW1hcnkoMSwgMSwgMCkKICAgICAgICAg
c2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWyJUaGUgdGVzdCByYW4gYXMgZXhwZWN0ZWQuXG4iLCAi
XG4iXSkKIAotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQor
ICAgICAgICBwcmludGVyLCBlcnIgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgcHJpbnRl
ci5fcHJpbnRfb25lX2xpbmVfc3VtbWFyeSgxLCAxLCAwKQogICAgICAgICBzZWxmLmFzc2VydFdy
aXR0ZW4oZXJyLCBbIlRoZSB0ZXN0IHJhbiBhcyBleHBlY3RlZC5cbiIsICJcbiJdKQogCi0gICAg
ICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCisgICAgICAgIHByaW50
ZXIsIGVyciA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICBwcmludGVyLl9wcmludF9vbmVf
bGluZV9zdW1tYXJ5KDIsIDEsIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsi
XG4iLCAiMSB0ZXN0IHJhbiBhcyBleHBlY3RlZCwgMSBkaWRuJ3Q6XG4iLCAiXG4iXSkKIAotICAg
ICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQorICAgICAgICBwcmlu
dGVyLCBlcnIgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgcHJpbnRlci5fcHJpbnRfb25l
X2xpbmVfc3VtbWFyeSgzLCAyLCAxKQogICAgICAgICBzZWxmLmFzc2VydFdyaXR0ZW4oZXJyLCBb
IlxuIiwgIjIgdGVzdHMgcmFuIGFzIGV4cGVjdGVkLCAxIGRpZG4ndDpcbiIsICJcbiJdKQogCi0g
ICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCisgICAgICAgIHBy
aW50ZXIsIGVyciA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICBwcmludGVyLl9wcmludF9v
bmVfbGluZV9zdW1tYXJ5KDMsIDIsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIs
IFsnXG4nLCAiMiB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQgKDEgZGlkbid0IHJ1bikuXG4iLCAnXG4n
XSkKIAotICAgIGRlZiB0ZXN0X3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyhzZWxmKToKLSAgICAg
ICAgIyBUaGlzIHJvdXRpbmUgaXMgdGhlIG9ubHkgb25lIHRoYXQgcHJpbnRzIHN0dWZmIHRoYXQg
dGhlIGJvdHMKLSAgICAgICAgIyBjYXJlIGFib3V0LgotICAgICAgICAjCi0gICAgICAgICMgRklY
TUU6IHRoZXJlJ3Mgc29tZSB3ZWlyZCBsYXllcmluZyBnb2luZyBvbiBoZXJlLiBJdCBzZWVtcwot
ICAgICAgICAjIGxpa2Ugd2Ugc2hvdWxkbid0IGJlIGJvdGggdXNpbmcgYW4gZXhwZWN0YXRpb25z
IHN0cmluZyBhbmQKLSAgICAgICAgIyBoYXZpbmcgdG8gc3BlY2lmeSB3aGV0aGVyIG9yIG5vdCB0
aGUgcmVzdWx0IHdhcyBleHBlY3RlZC4KLSAgICAgICAgIyBUaGlzIHdob2xlIHNldCBvZiB0ZXN0
cyBzaG91bGQgcHJvYmFibHkgYmUgcmV3cml0dGVuLgotICAgICAgICAjCi0gICAgICAgICMgRklY
TUU6IFBsdXMsIHRoZSBmYWN0IHRoYXQgd2UncmUgaGF2aW5nIHRvIGNhbGwgaW50bwotICAgICAg
ICAjIHJ1bl93ZWJraXRfdGVzdHMgaXMgY2xlYXJseSBhIGxheWVyaW5nIGludmVyc2lvbi4KLSAg
ICAgICAgZGVmIGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQsIHBhc3NpbmcsIGZsYWt5
KToKLSAgICAgICAgICAgICIiIlJldHVybiBhbiB1bmV4cGVjdGVkIHJlc3VsdHMgc3VtbWFyeSBt
YXRjaGluZyB0aGUgaW5wdXQgZGVzY3JpcHRpb24uCi0KLSAgICAgICAgICAgIFRoZXJlIGFyZSBh
IGxvdCBvZiBkaWZmZXJlbnQgY29tYmluYXRpb25zIG9mIHRlc3QgcmVzdWx0cyB0aGF0Ci0gICAg
ICAgICAgICBjYW4gYmUgdGVzdGVkOyB0aGlzIHJvdXRpbmUgcHJvZHVjZXMgdmFyaW91cyBjb21i
aW5hdGlvbnMgYmFzZWQKLSAgICAgICAgICAgIG9uIHRoZSB2YWx1ZXMgb2YgdGhlIGlucHV0IGZs
YWdzLgotCi0gICAgICAgICAgICBBcmdzCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHdoZXRo
ZXIgdGhlIHRlc3RzIHJhbiBhcyBleHBlY3RlZAotICAgICAgICAgICAgICAgIHBhc3Npbmc6IHdo
ZXRoZXIgdGhlIHRlc3RzIHNob3VsZCBhbGwgcGFzcwotICAgICAgICAgICAgICAgIGZsYWt5OiB3
aGV0aGVyIHRoZSB0ZXN0cyBzaG91bGQgYmUgZmxha3kgKGlmIEZhbHNlLCB0aGV5Ci0gICAgICAg
ICAgICAgICAgICAgIHByb2R1Y2UgdGhlIHNhbWUgcmVzdWx0cyBvbiBib3RoIHJ1bnM7IGlmIFRy
dWUsIHRoZXkKLSAgICAgICAgICAgICAgICAgICAgYWxsIHBhc3Mgb24gdGhlIHNlY29uZCBydW4p
LgotCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIHRlc3RfaXNfc2xvdyA9IEZhbHNlCi0g
ICAgICAgICAgICBwYXRocywgcnMsIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3Rz
LCBleHBlY3RhdGlvbnMpCi0gICAgICAgICAgICBpZiBleHBlY3RlZDoKLSAgICAgICAgICAgICAg
ICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICAgICAgcnMu
YWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVz
dF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAg
ICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2gu
aHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykK
LSAgICAgICAgICAgIGVsaWYgcGFzc2luZzoKLSAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5n
ZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0g
ICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQv
dGltZW91dC5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICAgICAg
cnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBl
eHBlY3RlZCwgdGVzdF9pc19zbG93KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICAgICAg
cnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywg
dGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQotICAgICAg
ICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNo
Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xv
dykKLSAgICAgICAgICAgIHJldHJ5ID0gTm9uZQotICAgICAgICAgICAgaWYgZmxha3k6Ci0gICAg
ICAgICAgICAgICAgcGF0aHMsIHJldHJ5LCBleHAgPSBzZWxmLmdldF9yZXN1bHRfc3VtbWFyeSh0
ZXN0cywgZXhwZWN0YXRpb25zKQotICAgICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9y
ZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQotICAgICAgICAg
ICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVv
dXQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICAgICAgcmV0cnkuYWRk
KHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBUcnVlLCB0
ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICByZXR1cm4gbWFuYWdlci5zdW1tYXJpemVfcmVzdWx0
cyhzZWxmLl9wb3J0LCBleHAsIHJzLCByZXRyeSkKLQotICAgICAgICB0ZXN0cyA9IFsncGFzc2Vz
L3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCAnZmFpbHVyZXMv
ZXhwZWN0ZWQvY3Jhc2guaHRtbCddCi0gICAgICAgIGV4cGVjdGF0aW9ucyA9ICcnCi0KLSAgICAg
ICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKLQotICAgICAgICAjIHRl
c3QgZXZlcnl0aGluZyBydW5uaW5nIGFzIGV4cGVjdGVkCi0gICAgICAgIHVyID0gZ2V0X3VuZXhw
ZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1UcnVlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkK
LSAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQotICAgICAgICBz
ZWxmLmFzc2VydEVtcHR5KGVycikKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCi0KLSAg
ICAgICAgIyB0ZXN0IGZhaWx1cmVzCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5n
ZXRfcHJpbnRlcigpCi0gICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3Rl
ZD1GYWxzZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCi0gICAgICAgIHByaW50ZXIuX3By
aW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1cikKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQotCi0gICAgICAgICMgdGVzdCB1bmV4
cGVjdGVkIGZsYWt5Ci0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRl
cigpCi0gICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxzZSwg
cGFzc2luZz1GYWxzZSwgZmxha3k9VHJ1ZSkKLSAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBl
Y3RlZF9yZXN1bHRzKHVyKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLSAgICAgICAg
c2VsZi5hc3NlcnROb3RFbXB0eShvdXQpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBz
ZWxmLmdldF9wcmludGVyKCkKLSAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4
cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKLSAgICAgICAgcHJpbnRl
ci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5
KGVycikKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQpCi0KLSAgICAgICAgZXhwZWN0
YXRpb25zID0gIiIiCi1CVUdYIDogZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCA9IENSQVNI
Ci1CVUdYIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sID0gVElNRU9VVAotIiIiCi0g
ICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCi0gICAgICAgIHVy
ID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxzZSwgcGFzc2luZz1GYWxzZSwg
Zmxha3k9RmFsc2UpCi0gICAgICAgIHByaW50ZXIuX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1
cikKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShlcnIpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90
RW1wdHkob3V0KQotCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRl
cigpCi0gICAgICAgIHVyID0gZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1GYWxzZSwg
cGFzc2luZz1UcnVlLCBmbGFreT1GYWxzZSkKLSAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBl
Y3RlZF9yZXN1bHRzKHVyKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLSAgICAgICAg
c2VsZi5hc3NlcnROb3RFbXB0eShvdXQpCi0KLSAgICBkZWYgdGVzdF9wcmludF91bmV4cGVjdGVk
X3Jlc3VsdHNfYnVpbGRib3Qoc2VsZik6Ci0gICAgICAgICMgRklYTUU6IFRlc3QgdGhhdCBwcmlu
dF91bmV4cGVjdGVkX3Jlc3VsdHMoKSBwcm9kdWNlcyB0aGUgcHJpbnRlciB0aGUKLSAgICAgICAg
IyBidWlsZGJvdCBpcyBleHBlY3RpbmcuCi0gICAgICAgIHBhc3MKLQogICAgIGRlZiB0ZXN0X3Rl
c3Rfc3RhdHVzX2xpbmUoc2VsZik6Ci0gICAgICAgIHByaW50ZXIsIF8sIF8gPSBzZWxmLmdldF9w
cmludGVyKCkKKyAgICAgICAgcHJpbnRlciwgXyA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAg
ICBwcmludGVyLl9tZXRlci5udW1iZXJfb2ZfY29sdW1ucyA9IGxhbWJkYTogODAKICAgICAgICAg
YWN0dWFsID0gcHJpbnRlci5fdGVzdF9zdGF0dXNfbGluZSgnZmFzdC9kb20vSFRNTEZvcm1FbGVt
ZW50L2Fzc29jaWF0ZWQtZWxlbWVudHMtYWZ0ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwn
LCAnIHBhc3NlZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoODAsIGxlbihhY3R1YWwpKQpA
QCAtMjgwLDcgKzE3MSw3IEBAIEJVR1ggOiBmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwg
PSBUSU1FT1VUCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsLCAnWzAvMF0gYXNzb2Np
YXRlZC1lbGVtZW50cy1hZnRlci1pbmRleC1hc3NlcnRpb24tZmFpbDEuaHRtbCBwYXNzZWQnKQog
CiAgICAgZGVmIHRlc3RfZGV0YWlscyhzZWxmKToKLSAgICAgICAgcHJpbnRlciwgZXJyLCBfID0g
c2VsZi5nZXRfcHJpbnRlcihbJy0tZGV0YWlscyddKQorICAgICAgICBwcmludGVyLCBlcnIgPSBz
ZWxmLmdldF9wcmludGVyKFsnLS1kZXRhaWxzJ10pCiAgICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0
X3Jlc3VsdCgncGFzc2VzL2ltYWdlLmh0bWwnKQogICAgICAgICBwcmludGVyLnByaW50X3N0YXJ0
ZWRfdGVzdCgncGFzc2VzL2ltYWdlLmh0bWwnKQogICAgICAgICBwcmludGVyLnByaW50X2Zpbmlz
aGVkX3Rlc3QocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgZXhwX3N0cj0nJywgZ290X3N0cj0nJykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177829</attachid>
            <date>2012-12-05 14:24:41 -0800</date>
            <delta_ts>2012-12-05 15:28:54 -0800</delta_ts>
            <desc>merge</desc>
            <filename>bug-104165-20121205142206.patch</filename>
            <type>text/plain</type>
            <size>66857</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NzMzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzg2YmJiN2FmMGIwNjVmODZkMGVkMjAzZmY3MzIwNGQ1
N2RiNzYyNy4uMTlhN2I0YTFkMjdmNzBkN2MyOTBiZTA2ZjBmMjJhYjhkMzk2YjE3OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDky
IEBACiAyMDEyLTEyLTA1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHNwbGl0IGFsbCBvZiB0aGUgYnVpbGRib3Qtc3BlY2lmaWMgb3V0cHV0IGlu
dG8gaXRzIG93biBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDQxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOb3cgdGhhdCB3ZSBoYXZlIHRoZSBSdW5EZXRhaWxzIG9iamVjdCB3ZSBjYW4gbW92
ZSBhbGwgb2YgdGhlCisgICAgICAgIGJ1aWxkYm90LXNwZWNpZmljIGtub3dsZWRnZSBvdXQgb2Yg
dGhlIGNvcmUgdGVzdC1ydW5uaW5nIGNvZGUKKyAgICAgICAgYW5kIGludG8gdGhlIG91dGVybW9z
dCBydW5fd2Via2l0X3Rlc3RzIGxheWVyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKHJ1bik6CisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAgICAgICAgKHBhc3NpbmdfcnVuKToKKyAg
ICAgICAgKGxvZ2dpbmdfcnVuKToKKyAgICAgICAgKHJ1bl9hbmRfY2FwdHVyZSk6CisgICAgICAg
IChNYWluVGVzdC50ZXN0X2FsbCk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X21heF9sb2NrZWRf
c2hhcmRzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfY2hpbGRfcHJvY2Vzc2VzXzIpOgorICAg
ICAgICAoTWFpblRlc3QudGVzdF9jaGlsZF9wcm9jZXNzZXNfbWluKToKKyAgICAgICAgKE1haW5U
ZXN0LnRlc3RfZnVsbF9yZXN1bHRzX2h0bWwpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9odW5n
X3RocmVhZCk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X2tleWJvYXJkX2ludGVycnVwdCk6Cisg
ICAgICAgIChNYWluVGVzdC50ZXN0X25vX3Rlc3RzX2ZvdW5kKToKKyAgICAgICAgKE1haW5UZXN0
LnRlc3Rfbm9fdGVzdHNfZm91bmRfMik6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JlcGVhdF9l
YWNoX2l0ZXJhdGlvbnNfbnVtX3Rlc3RzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfcnVuX3Np
bmdseV9hY3R1YWxseV9ydW5zX3Rlc3RzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdGVzdF9s
aXN0KToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlcyk6CisgICAg
ICAgIChNYWluVGVzdC50ZXN0X21pc3NpbmdfYW5kX3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAg
ICAgIChNYWluVGVzdC50ZXN0X3BpeGVsX3Rlc3RfZGlyZWN0b3JpZXMpOgorICAgICAgICAoTWFp
blRlc3QudGVzdF9taXNzaW5nX2FuZF91bmV4cGVjdGVkX3Jlc3VsdHNfd2l0aF9jdXN0b21fZXhp
dF9jb2RlKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfY3Jhc2hfd2l0aF9zdGRlcnIpOgorICAg
ICAgICAoTWFpblRlc3QudGVzdF9ub19pbWFnZV9mYWlsdXJlX3dpdGhfaW1hZ2VfZGlmZik6Cisg
ICAgICAgIChNYWluVGVzdC50ZXN0X2NyYXNoX2xvZyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0
X3dlYl9wcm9jZXNzX2NyYXNoX2xvZyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X2V4aXRfYWZ0
ZXJfbl9mYWlsdXJlc191cGxvYWQpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9yZXN1bHRzX2Rp
cmVjdG9yeV9hYnNvbHV0ZSk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3Jlc3VsdHNfZGlyZWN0
b3J5X2RlZmF1bHQpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9yZXN1bHRzX2RpcmVjdG9yeV9y
ZWxhdGl2ZSk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JldHJ5aW5nX2FuZF9mbGFreV90ZXN0
cyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JlZnRlc3Rfc2hvdWxkX25vdF91c2VfbmFtaW5n
X2NvbnZlbnRpb25faWZfbm90X2xpc3RlZF9pbl9yZWZ0ZXN0bGlzdCk6CisgICAgICAgIChNYWlu
VGVzdC50ZXN0X291dHB1dF9kaWZmcyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3Vuc3VwcG9y
dGVkX3BsYXRmb3JtKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdmVyYm9zZV9pbl9jaGlsZF9w
cm9jZXNzZXMpOgorICAgICAgICAoRW5kVG9FbmRUZXN0LnRlc3RfZW5kX3RvX2VuZCk6CisgICAg
ICAgIChFbmRUb0VuZFRlc3QudGVzdF9yZWZ0ZXN0X3dpdGhfdHdvX25vdHJlZnMpOgorICAgICAg
ICAoUmViYXNlbGluZVRlc3QudGVzdF9yZXNldF9yZXN1bHRzKToKKyAgICAgICAgKFJlYmFzZWxp
bmVUZXN0LnRlc3RfbWlzc2luZ19yZXN1bHRzKToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0LnRl
c3RfbmV3X2Jhc2VsaW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEJ1aWxkQm90UHJp
bnRlcik6CisgICAgICAgIChCdWlsZEJvdFByaW50ZXIuX19pbml0X18pOgorICAgICAgICAoQnVp
bGRCb3RQcmludGVyLnByaW50X3Jlc3VsdHMpOgorICAgICAgICAoQnVpbGRCb3RQcmludGVyLl9w
cmludCk6CisgICAgICAgIChCdWlsZEJvdFByaW50ZXIucHJpbnRfcmVzdWx0X3N1bW1hcnkpOgor
ICAgICAgICAoQnVpbGRCb3RQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeSk6Cisg
ICAgICAgIChCdWlsZEJvdFByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAg
ICAgKEJ1aWxkQm90UHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMuYWRkX3RvX2RpY3Rf
b2ZfbGlzdHMpOgorICAgICAgICAoQnVpbGRCb3RQcmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVz
dWx0cy5hZGRfcmVzdWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKEJ1
aWxkQm90UHJpbnRlclRlc3RzKToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3RzLmFzc2Vy
dEVtcHR5KToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3RzLmFzc2VydE5vdEVtcHR5KToK
KyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3RzLmdldF9wcmludGVyKToKKyAgICAgICAgKEJ1
aWxkQm90UHJpbnRlclRlc3RzLmdldF9yZXN1bHQpOgorICAgICAgICAoQnVpbGRCb3RQcmludGVy
VGVzdHMuZ2V0X3Jlc3VsdF9zdW1tYXJ5KToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3Rz
LnRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRl
clRlc3RzLnRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzLmdldF91bmV4cGVjdGVkX3Jlc3Vs
dHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50
aW5nLnB5OgorICAgICAgICAoUHJpbnRlcik6CisgICAgICAgIChQcmludGVyLl9faW5pdF9fKToK
KyAgICAgICAgKFByaW50ZXIucHJpbnRfcmVzdWx0cyk6CisgICAgICAgIChQcmludGVyLl9wcmlu
dF9zdGF0aXN0aWNzX2Zvcl90ZXN0X3RpbWluZ3MpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRf
YmFzZWxpbmUpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfZGVidWcpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAoVGVzdHByaW50ZXIuZ2V0X3ByaW50ZXIpOgorICAgICAgICAoVGVzdHByaW50ZXIu
Z2V0X3Jlc3VsdCk6CisgICAgICAgIChUZXN0cHJpbnRlci50ZXN0X2NvbmZpZ3VyZV9hbmRfY2xl
YW51cCk6CisgICAgICAgIChUZXN0cHJpbnRlci50ZXN0X3ByaW50X2NvbmZpZyk6CisgICAgICAg
IChUZXN0cHJpbnRlci50ZXN0X3ByaW50X29uZV9saW5lX3N1bW1hcnkpOgorICAgICAgICAoVGVz
dHByaW50ZXIudGVzdF90ZXN0X3N0YXR1c19saW5lKToKKyAgICAgICAgKFRlc3RwcmludGVyLnRl
c3RfZGV0YWlscyk6CisKKzIwMTItMTItMDUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgbnJ3dDogY29sbGVjdCBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGFi
b3V0IGEgcnVuIGludG8gYSBuZXcgUnVuRGV0YWlscyBjbGFzcwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MTU4CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4
IDU5MTZkZjYzZWE0YTc3YzIzNTM4MzFjOGJlZjA0NWZiOGNmNWYxMTkuLjM5ZjZmMmEyMTFhYzUy
NGM5OTg5OTAyZjAyY2IwZDU3NjZiY2M3Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtMzksNiArMzks
NyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5tYW5hZ2VyIGltcG9ydCBNYW5hZ2VyCiBmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZXhwZWN0YXRpb25zCiBmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBjb25maWd1cmF0aW9uX29wdGlvbnMs
IHBsYXRmb3JtX29wdGlvbnMKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZpZXdzIGltcG9y
dCBidWlsZGJvdF9yZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy52aWV3cyBpbXBv
cnQgcHJpbnRpbmcKIAogCkBAIC04Niw5ICs4Nyw5IEBAIGRlZiBsaW50KHBvcnQsIG9wdGlvbnMp
OgogICAgIHJldHVybiAwCiAKIAotZGVmIHJ1bihwb3J0LCBvcHRpb25zLCBhcmdzLCByZWd1bGFy
X291dHB1dD1zeXMuc3RkZXJyLCBidWlsZGJvdF9vdXRwdXQ9c3lzLnN0ZG91dCk6CitkZWYgcnVu
KHBvcnQsIG9wdGlvbnMsIGFyZ3MsIGxvZ2dpbmdfc3RyZWFtKToKICAgICB0cnk6Ci0gICAgICAg
IHByaW50ZXIgPSBwcmludGluZy5QcmludGVyKHBvcnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0
LCBidWlsZGJvdF9vdXRwdXQsIGxvZ2dlcj1sb2dnaW5nLmdldExvZ2dlcigpKQorICAgICAgICBw
cmludGVyID0gcHJpbnRpbmcuUHJpbnRlcihwb3J0LCBvcHRpb25zLCBsb2dnaW5nX3N0cmVhbSwg
bG9nZ2VyPWxvZ2dpbmcuZ2V0TG9nZ2VyKCkpCiAKICAgICAgICAgX3NldF91cF9kZXJpdmVkX29w
dGlvbnMocG9ydCwgb3B0aW9ucykKICAgICAgICAgbWFuYWdlciA9IE1hbmFnZXIocG9ydCwgb3B0
aW9ucywgcHJpbnRlcikKQEAgLTM5Niw3ICszOTcsNyBAQCBkZWYgcGFyc2VfYXJncyhhcmdzPU5v
bmUpOgogICAgIHJldHVybiBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKIAogCi1kZWYg
bWFpbihhcmd2PU5vbmUpOgorZGVmIG1haW4oYXJndj1Ob25lLCBzdGRvdXQ9c3lzLnN0ZG91dCwg
c3RkZXJyPXN5cy5zdGRlcnIpOgogICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZV9hcmdzKGFyZ3Yp
CiAgICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSBhbmQgJ3Rlc3QnIGluIG9wdGlvbnMucGxhdGZvcm06
CiAgICAgICAgICMgSXQncyBhIGJpdCBsYW1lIHRvIGltcG9ydCBtb2NrcyBpbnRvIHJlYWwgY29k
ZSwgYnV0IHRoaXMgYWxsb3dzIHRoZSB1c2VyCkBAIC00MTEsMTcgKzQxMiwyMyBAQCBkZWYgbWFp
bihhcmd2PU5vbmUpOgogICAgICAgICBwb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KG9wdGlv
bnMucGxhdGZvcm0sIG9wdGlvbnMpCiAgICAgZXhjZXB0IE5vdEltcGxlbWVudGVkRXJyb3IsIGU6
CiAgICAgICAgICMgRklYTUU6IGlzIHRoaXMgdGhlIGJlc3Qgd2F5IHRvIGhhbmRsZSB1bnN1cHBv
cnRlZCBwb3J0IG5hbWVzPwotICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCBzdHIoZSkKKyAg
ICAgICAgcHJpbnQgPj4gc3RkZXJyLCBzdHIoZSkKICAgICAgICAgcmV0dXJuIEVYQ0VQVElPTkFM
X0VYSVRfU1RBVFVTCiAKICAgICBsb2dnaW5nLmdldExvZ2dlcigpLnNldExldmVsKGxvZ2dpbmcu
REVCVUcgaWYgb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZyBlbHNlIGxvZ2dpbmcuSU5GTykKICAg
ICB0cnk6CiAgICAgICAgIGlmIG9wdGlvbnMubGludF90ZXN0X2ZpbGVzOgogICAgICAgICAgICAg
cmV0dXJuIGxpbnQocG9ydCwgb3B0aW9ucykKLSAgICAgICAgcmV0dXJuIHJ1bihwb3J0LCBvcHRp
b25zLCBhcmdzKS5leGl0X2NvZGUKKworICAgICAgICBydW5fZGV0YWlscyA9IHJ1bihwb3J0LCBv
cHRpb25zLCBhcmdzLCBzdGRlcnIpCisKKyAgICAgICAgYm90X3ByaW50ZXIgPSBidWlsZGJvdF9y
ZXN1bHRzLkJ1aWxkQm90UHJpbnRlcihzdGRvdXQsIG9wdGlvbnMuZGVidWdfcnd0X2xvZ2dpbmcp
CisgICAgICAgIGJvdF9wcmludGVyLnByaW50X3Jlc3VsdHMocnVuX2RldGFpbHMpCisKKyAgICAg
ICAgcmV0dXJuIHJ1bl9kZXRhaWxzLmV4aXRfY29kZQogICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6
Ci0gICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICdcbiVzIHJhaXNlZDogJXMnICUgKGUuX19j
bGFzc19fLl9fbmFtZV9fLCBzdHIoZSkpCi0gICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmls
ZT1zeXMuc3RkZXJyKQorICAgICAgICBwcmludCA+PiBzdGRlcnIsICdcbiVzIHJhaXNlZDogJXMn
ICUgKGUuX19jbGFzc19fLl9fbmFtZV9fLCBzdHIoZSkpCisgICAgICAgIHRyYWNlYmFjay5wcmlu
dF9leGMoZmlsZT1zdGRlcnIpCiAgICAgICAgIHJhaXNlCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlv
bnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQppbmRleCAyY2E2ZmExNTVkZDAyMDQyODBmNTdjOWU5
ZmE3YTY3ZTU5MTFiZmEyLi5jNmIzMjFmOWQ5ZDZiNDU5MWNjMjZhNjIzNDlhZDNmM2QyN2E1OGU1
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQpAQCAtODYs
OSArODYsOCBAQCBkZWYgcGFzc2luZ19ydW4oZXh0cmFfYXJncz1Ob25lLCBwb3J0X29iaj1Ob25l
LCB0ZXN0c19pbmNsdWRlZD1GYWxzZSwgaG9zdD1Ob25lLAogICAgIGlmIHNoYXJlZF9wb3J0Ogog
ICAgICAgICBwb3J0X29iai5ob3N0LnBvcnRfZmFjdG9yeS5nZXQgPSBsYW1iZGEgKmFyZ3MsICoq
a3dhcmdzOiBwb3J0X29iagogCi0gICAgYnVpbGRib3Rfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5n
SU8oKQotICAgIHJlZ3VsYXJfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgIHJ1bl9k
ZXRhaWxzID0gcnVuX3dlYmtpdF90ZXN0cy5ydW4ocG9ydF9vYmosIG9wdGlvbnMsIHBhcnNlZF9h
cmdzLCBidWlsZGJvdF9vdXRwdXQ9YnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dD1yZWd1
bGFyX291dHB1dCkKKyAgICBsb2dnaW5nX3N0cmVhbSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAg
ICBydW5fZGV0YWlscyA9IHJ1bl93ZWJraXRfdGVzdHMucnVuKHBvcnRfb2JqLCBvcHRpb25zLCBw
YXJzZWRfYXJncywgbG9nZ2luZ19zdHJlYW09bG9nZ2luZ19zdHJlYW0pCiAgICAgcmV0dXJuIHJ1
bl9kZXRhaWxzLmV4aXRfY29kZSA9PSAwCiAKIApAQCAtMTAwLDggKzk5LDggQEAgZGVmIGxvZ2dp
bmdfcnVuKGV4dHJhX2FyZ3M9Tm9uZSwgcG9ydF9vYmo9Tm9uZSwgdGVzdHNfaW5jbHVkZWQ9RmFs
c2UsIGhvc3Q9Tm9uZSwKICAgICBpZiBub3QgcG9ydF9vYmo6CiAgICAgICAgIHBvcnRfb2JqID0g
aG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT1vcHRpb25zLnBsYXRmb3JtLCBvcHRpb25z
PW9wdGlvbnMpCiAKLSAgICByZXMsIGJ1aWxkYm90X291dHB1dCwgcmVndWxhcl9vdXRwdXQgPSBy
dW5fYW5kX2NhcHR1cmUocG9ydF9vYmosIG9wdGlvbnMsIHBhcnNlZF9hcmdzLCBzaGFyZWRfcG9y
dCkKLSAgICByZXR1cm4gKHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dCwgaG9z
dC51c2VyKQorICAgIHJlcywgb3V0cHV0ID0gcnVuX2FuZF9jYXB0dXJlKHBvcnRfb2JqLCBvcHRp
b25zLCBwYXJzZWRfYXJncywgc2hhcmVkX3BvcnQpCisgICAgcmV0dXJuIChyZXMsIG91dHB1dCwg
aG9zdC51c2VyKQogCiAKIGRlZiBydW5fYW5kX2NhcHR1cmUocG9ydF9vYmosIG9wdGlvbnMsIHBh
cnNlZF9hcmdzLCBzaGFyZWRfcG9ydD1UcnVlKToKQEAgLTExMCwxNCArMTA5LDExIEBAIGRlZiBy
dW5fYW5kX2NhcHR1cmUocG9ydF9vYmosIG9wdGlvbnMsIHBhcnNlZF9hcmdzLCBzaGFyZWRfcG9y
dD1UcnVlKToKICAgICBvYyA9IG91dHB1dGNhcHR1cmUuT3V0cHV0Q2FwdHVyZSgpCiAgICAgdHJ5
OgogICAgICAgICBvYy5jYXB0dXJlX291dHB1dCgpCi0gICAgICAgIGJ1aWxkYm90X291dHB1dCA9
IFN0cmluZ0lPLlN0cmluZ0lPKCkKLSAgICAgICAgcmVndWxhcl9vdXRwdXQgPSBTdHJpbmdJTy5T
dHJpbmdJTygpCi0gICAgICAgIHJ1bl9kZXRhaWxzID0gcnVuX3dlYmtpdF90ZXN0cy5ydW4ocG9y
dF9vYmosIG9wdGlvbnMsIHBhcnNlZF9hcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkYm90X291dHB1dD1idWlsZGJvdF9vdXRwdXQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVndWxhcl9vdXRwdXQ9cmVndWxh
cl9vdXRwdXQpCisgICAgICAgIGxvZ2dpbmdfc3RyZWFtID0gU3RyaW5nSU8uU3RyaW5nSU8oKQor
ICAgICAgICBydW5fZGV0YWlscyA9IHJ1bl93ZWJraXRfdGVzdHMucnVuKHBvcnRfb2JqLCBvcHRp
b25zLCBwYXJzZWRfYXJncywgbG9nZ2luZ19zdHJlYW09bG9nZ2luZ19zdHJlYW0pCiAgICAgZmlu
YWxseToKICAgICAgICAgb2MucmVzdG9yZV9vdXRwdXQoKQotICAgIHJldHVybiAocnVuX2RldGFp
bHMuZXhpdF9jb2RlLCBidWlsZGJvdF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0KQorICAgIHJldHVy
biAocnVuX2RldGFpbHMuZXhpdF9jb2RlLCBsb2dnaW5nX3N0cmVhbSkKIAogCiBkZWYgZ2V0X3Rl
c3RzX3J1bihleHRyYV9hcmdzPU5vbmUsIHRlc3RzX2luY2x1ZGVkPUZhbHNlLCBmbGF0dGVuX2Jh
dGNoZXM9RmFsc2UsCkBAIC0zMDIsNyArMjk4LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3Qu
VGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIHNlbGYuc2hvdWxkX3Rlc3Rf
cHJvY2Vzc2VzID0gbm90IHNlbGYuX3BsYXRmb3JtLmlzX3dpbigpCiAKICAgICBkZWYgdGVzdF9h
bGwoc2VsZik6Ci0gICAgICAgIHJlcywgb3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bihbXSwg
dGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKKyAgICAgICAgcmVzLCBfLCBfID0gbG9nZ2luZ19ydW4oW10s
IHRlc3RzX2luY2x1ZGVkPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCB1bmV4
cGVjdGVkX3Rlc3RzX2NvdW50KQogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6CkBAIC0zMjEs
NyArMzE3LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3Rp
bmdNaXhpbik6CiAgICAgICAgIGlmICJXRUJLSVRfVEVTVF9NQVhfTE9DS0VEX1NIQVJEUyIgaW4g
b3MuZW52aXJvbjoKICAgICAgICAgICAgIHNhdmVfZW52X3dlYmtpdF90ZXN0X21heF9sb2NrZWRf
c2hhcmRzID0gb3MuZW52aXJvblsiV0VCS0lUX1RFU1RfTUFYX0xPQ0tFRF9TSEFSRFMiXQogICAg
ICAgICAgICAgZGVsIG9zLmVudmlyb25bIldFQktJVF9URVNUX01BWF9MT0NLRURfU0hBUkRTIl0K
LSAgICAgICAgXywgXywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bihbJy0tZGVidWct
cnd0LWxvZ2dpbmcnLCAnLS1jaGlsZC1wcm9jZXNzZXMnLCAnMiddLCBzaGFyZWRfcG9ydD1GYWxz
ZSkKKyAgICAgICAgXywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bihbJy0tZGVidWct
cnd0LWxvZ2dpbmcnLCAnLS1jaGlsZC1wcm9jZXNzZXMnLCAnMiddLCBzaGFyZWRfcG9ydD1GYWxz
ZSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFueShbJygxIGxv
Y2tlZCknIGluIGxpbmUgZm9yIGxpbmUgaW4gcmVndWxhcl9vdXRwdXQuYnVmbGlzdF0pKQogICAg
ICAgICBmaW5hbGx5OgpAQCAtMzMwLDEzICszMjYsMTMgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRl
c3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAKICAgICBkZWYgdGVzdF9jaGlsZF9w
cm9jZXNzZXNfMihzZWxmKToKICAgICAgICAgaWYgc2VsZi5zaG91bGRfdGVzdF9wcm9jZXNzZXM6
Ci0gICAgICAgICAgICBfLCBfLCByZWd1bGFyX291dHB1dCwgXyA9IGxvZ2dpbmdfcnVuKAorICAg
ICAgICAgICAgXywgcmVndWxhcl9vdXRwdXQsIF8gPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAg
ICAgICBbJy0tZGVidWctcnd0LWxvZ2dpbmcnLCAnLS1jaGlsZC1wcm9jZXNzZXMnLCAnMiddLCBz
aGFyZWRfcG9ydD1GYWxzZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkoWydSdW5u
aW5nIDIgJyBpbiBsaW5lIGZvciBsaW5lIGluIHJlZ3VsYXJfb3V0cHV0LmJ1Zmxpc3RdKSkKIAog
ICAgIGRlZiB0ZXN0X2NoaWxkX3Byb2Nlc3Nlc19taW4oc2VsZik6CiAgICAgICAgIGlmIHNlbGYu
c2hvdWxkX3Rlc3RfcHJvY2Vzc2VzOgotICAgICAgICAgICAgXywgXywgcmVndWxhcl9vdXRwdXQs
IF8gPSBsb2dnaW5nX3J1bigKKyAgICAgICAgICAgIF8sIHJlZ3VsYXJfb3V0cHV0LCBfID0gbG9n
Z2luZ19ydW4oCiAgICAgICAgICAgICAgICAgWyctLWRlYnVnLXJ3dC1sb2dnaW5nJywgJy0tY2hp
bGQtcHJvY2Vzc2VzJywgJzInLCAnLWknLCAncGFzc2VzL3Bhc3NlcycsICdwYXNzZXMnXSwKICAg
ICAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBzaGFyZWRfcG9ydD1GYWxzZSkKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkoWydSdW5uaW5nIDEgJyBpbiBsaW5lIGZvciBs
aW5lIGluIHJlZ3VsYXJfb3V0cHV0LmJ1Zmxpc3RdKSkKQEAgLTM2Nyw0MCArMzYzLDMzIEBAIGNs
YXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogCiAg
ICAgZGVmIHRlc3RfZnVsbF9yZXN1bHRzX2h0bWwoc2VsZik6CiAgICAgICAgICMgRklYTUU6IHZl
cmlmeSBodG1sPwotICAgICAgICByZXMsIG91dCwgZXJyLCB1c2VyID0gbG9nZ2luZ19ydW4oWyct
LWZ1bGwtcmVzdWx0cy1odG1sJ10pCisgICAgICAgIHJlcywgXywgXyA9IGxvZ2dpbmdfcnVuKFsn
LS1mdWxsLXJlc3VsdHMtaHRtbCddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgMCkK
IAogICAgIGRlZiB0ZXN0X2h1bmdfdGhyZWFkKHNlbGYpOgotICAgICAgICByZXMsIG91dCwgZXJy
LCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXJ1bi1zaW5nbHknLCAnLS10aW1lLW91dC1tcz01MCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhw
ZWN0ZWQvaGFuZy5odG1sJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlKQorICAgICAgICByZXMsIGVyciwgXyA9IGxvZ2dpbmdf
cnVuKFsnLS1ydW4tc2luZ2x5JywgJy0tdGltZS1vdXQtbXM9NTAnLCAnZmFpbHVyZXMvZXhwZWN0
ZWQvaGFuZy5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUpCiAgICAgICAgICMgTm90ZSB0aGF0
IGhhbmcuaHRtbCBpcyBtYXJrZWQgYXMgV29udEZpeCBhbmQgYWxsIFdvbnRGaXggdGVzdHMgYXJl
CiAgICAgICAgICMgZXhwZWN0ZWQgdG8gUGFzcywgc28gdGhhdCBhY3R1YWxseSBydW5uaW5nIHRo
ZW0gZ2VuZXJhdGVzIGFuICJ1bmV4cGVjdGVkIiBlcnJvci4KICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXMsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQogICAgICAgICBz
ZWxmLmFzc2VydE5vdEVtcHR5KGVycikKIAogICAgIGRlZiB0ZXN0X2tleWJvYXJkX2ludGVycnVw
dChzZWxmKToKICAgICAgICAgIyBOb3RlIHRoYXQgdGhpcyBhbHNvIHRlc3RzIHJ1bm5pbmcgYSB0
ZXN0IG1hcmtlZCBhcyBTS0lQIGlmCiAgICAgICAgICMgeW91IHNwZWNpZnkgaXQgZXhwbGljaXRs
eS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5Ym9hcmRJbnRlcnJ1cHQsIGxvZ2dpbmdf
cnVuLAotICAgICAgICAgICAgWydmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgJy0t
Y2hpbGQtcHJvY2Vzc2VzJywgJzEnXSwKLSAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUp
CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleWJvYXJkSW50ZXJydXB0LCBsb2dnaW5nX3J1
biwgWydmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgJy0tY2hpbGQtcHJvY2Vzc2Vz
JywgJzEnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKIAogICAgICAgICBpZiBzZWxmLnNob3VsZF90
ZXN0X3Byb2Nlc3NlczoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleWJvYXJkSW50
ZXJydXB0LCBsb2dnaW5nX3J1biwKICAgICAgICAgICAgICAgICBbJ2ZhaWx1cmVzL2V4cGVjdGVk
L2tleWJvYXJkLmh0bWwnLCAncGFzc2VzL3RleHQuaHRtbCcsICctLWNoaWxkLXByb2Nlc3Nlcycs
ICcyJywgJy0tZm9yY2UnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgc2hhcmVkX3BvcnQ9RmFsc2Up
CiAKICAgICBkZWYgdGVzdF9ub190ZXN0c19mb3VuZChzZWxmKToKLSAgICAgICAgcmVzLCBvdXQs
IGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsncmVzb3VyY2VzJ10sIHRlc3RzX2luY2x1ZGVkPVRy
dWUpCisgICAgICAgIHJlcywgZXJyLCBfID0gbG9nZ2luZ19ydW4oWydyZXNvdXJjZXMnXSwgdGVz
dHNfaW5jbHVkZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIC0xKQotICAg
ICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKICAgICAgICAgc2VsZi5hc3NlcnRDb250YWlucyhl
cnIsICdObyB0ZXN0cyB0byBydW4uXG4nKQogCiAgICAgZGVmIHRlc3Rfbm9fdGVzdHNfZm91bmRf
MihzZWxmKToKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnZm9v
J10sIHRlc3RzX2luY2x1ZGVkPVRydWUpCisgICAgICAgIHJlcywgZXJyLCBfID0gbG9nZ2luZ19y
dW4oWydmb28nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChyZXMsIC0xKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKICAgICAgICAgc2VsZi5h
c3NlcnRDb250YWlucyhlcnIsICdObyB0ZXN0cyB0byBydW4uXG4nKQogCiAgICAgZGVmIHRlc3Rf
bmF0dXJhbF9vcmRlcihzZWxmKToKQEAgLTQ5MCwxMCArNDc5LDkgQEAgY2xhc3MgTWFpblRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGhlIHRv
dGFsIG51bWJlciBvZiB0ZXN0cyBzaG91bGQgYmU6IG51bWJlcl9vZl90ZXN0cyAqCiAgICAgICAg
ICMgcmVwZWF0X2VhY2ggKiBpdGVyYXRpb25zCiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCi0g
ICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bigKKyAgICAgICAgcmVzLCBlcnIs
IF8gPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAgIFsnLS1pdGVyYXRpb25zJywgJzInLCAnLS1y
ZXBlYXQtZWFjaCcsICc0JywgJy0tZGVidWctcnd0LWxvZ2dpbmcnLCAncGFzc2VzL3RleHQuaHRt
bCcsICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnXSwKICAgICAgICAgICAgIHRlc3RzX2lu
Y2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRDb250YWlucyhvdXQs
ICI9PiBSZXN1bHRzOiA4LzE2IHRlc3RzIHBhc3NlZCAoNTAuMCUpXG4iKQogICAgICAgICBzZWxm
LmFzc2VydENvbnRhaW5zKGVyciwgIkFsbCAxNiB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQuXG4iKQog
CiAgICAgZGVmIHRlc3RfcnVuX2NodW5rKHNlbGYpOgpAQCAtNTQ1LDcgKzUzMyw3IEBAIGNsYXNz
IE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaGFzX3Bhc3Nlc190ZXh0KQogCiAgICAgZGVmIHRlc3RfcnVuX3Np
bmdseV9hY3R1YWxseV9ydW5zX3Rlc3RzKHNlbGYpOgotICAgICAgICByZXMsIF8sIF8sIF8gPSBs
b2dnaW5nX3J1bihbJy0tcnVuLXNpbmdseScsICdmYWlsdXJlcy91bmV4cGVjdGVkJ10pCisgICAg
ICAgIHJlcywgXywgXyA9IGxvZ2dpbmdfcnVuKFsnLS1ydW4tc2luZ2x5JywgJ2ZhaWx1cmVzL3Vu
ZXhwZWN0ZWQnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIHVuZXhwZWN0ZWRfZmFp
bHVyZXMpCiAKICAgICBkZWYgdGVzdF9zaW5nbGVfZmlsZShzZWxmKToKQEAgLTU3Nyw3ICs1NjUs
NyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGlu
KToKICAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tdGVzdC1saXN0PSVzJyAl
IGZpbGVuYW1lXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUsIGhv
c3Q9aG9zdCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSwg
dGVzdHNfcnVuKQogICAgICAgICBob3N0LmZpbGVzeXN0ZW0ucmVtb3ZlKGZpbGVuYW1lKQotICAg
ICAgICByZXMsIG91dCwgZXJyLCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXRlc3QtbGlzdD0lcycg
JSBmaWxlbmFtZV0sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgcmVz
LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bihbJy0tdGVzdC1saXN0PSVzJyAlIGZpbGVuYW1lXSwg
dGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJlcywgLTEpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQogCkBAIC01OTEsMTAg
KzU3OSw5IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5n
TWl4aW4pOgogICAgIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZik6CiAgICAgICAg
ICMgUnVuIHRlc3RzIGluY2x1ZGluZyB0aGUgdW5leHBlY3RlZCBmYWlsdXJlcy4KICAgICAgICAg
c2VsZi5fdXJsX29wZW5lZCA9IE5vbmUKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxv
Z2dpbmdfcnVuKHRlc3RzX2luY2x1ZGVkPVRydWUpCisgICAgICAgIHJlcywgZXJyLCB1c2VyID0g
bG9nZ2luZ19ydW4odGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKIAogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlcywgdW5leHBlY3RlZF90ZXN0c19jb3VudCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RF
bXB0eShvdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkoZXJyKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHVzZXIub3BlbmVkX3VybHMsIFtwYXRoLmFic3BhdGhfdG9fdXJpKE1vY2tI
b3N0KCkucGxhdGZvcm0sICcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcmVzdWx0cy5odG1sJyld
KQogCkBAIC02MDIsNyArNTg5LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2Us
IFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIHVwZGF0ZSBleHBl
Y3RhdGlvbnMgaW4gcGxhY2UuIElmIHRoZSBleHBlY3RhdGlvbgogICAgICAgICAjIGlzIG1pc3Np
bmcsIHVwZGF0ZSB0aGUgZXhwZWN0ZWQgZ2VuZXJpYyBsb2NhdGlvbi4KICAgICAgICAgaG9zdCA9
IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1u
by1zaG93LXJlc3VsdHMnLAorICAgICAgICByZXMsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1u
by1zaG93LXJlc3VsdHMnLAogICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc3Npbmdf
aW1hZ2UuaHRtbCcsCiAgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNzaW5nX3Rl
eHQuaHRtbCcsCiAgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC90ZXh0LWltYWdlLWNo
ZWNrc3VtLmh0bWwnXSwKQEAgLTYyNCw3ICs2MTEsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgYXJncyA9IFsnLS1waXhl
bC10ZXN0cycsICctLXBpeGVsLXRlc3QtZGlyZWN0b3J5JywgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQv
cGl4ZWxkaXInLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL3BpeGVsZGly
L2ltYWdlX2luX3BpeGVsZGlyLmh0bWwnLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4
cGVjdGVkL2ltYWdlX25vdF9pbl9waXhlbGRpci5odG1sJ10KLSAgICAgICAgcmVzLCBvdXQsIGVy
ciwgXyA9IGxvZ2dpbmdfcnVuKGV4dHJhX2FyZ3M9YXJncywgaG9zdD1ob3N0LCB0ZXN0c19pbmNs
dWRlZD1UcnVlKQorICAgICAgICByZXMsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKGV4dHJhX2FyZ3M9
YXJncywgaG9zdD1ob3N0LCB0ZXN0c19pbmNsdWRlZD1UcnVlKQogCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzLCAxKQogICAgICAgICBleHBlY3RlZF90b2tlbiA9ICcidW5leHBlY3RlZCI6
eyJwaXhlbGRpciI6eyJpbWFnZV9pbl9waXhlbGRpci5odG1sIjp7ImV4cGVjdGVkIjoiUEFTUyIs
ImFjdHVhbCI6IklNQUdFIicKQEAgLTY0MSw3ICs2MjgsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgaG9zdCA9IE1vY2tI
b3N0KCkKICAgICAgICAgb3B0aW9ucywgcGFyc2VkX2FyZ3MgPSBydW5fd2Via2l0X3Rlc3RzLnBh
cnNlX2FyZ3MoWyctLXBpeGVsLXRlc3RzJywgJy0tbm8tbmV3LXRlc3QtcmVzdWx0cyddKQogICAg
ICAgICB0ZXN0X3BvcnQgPSBDdXN0b21FeGl0Q29kZVBvcnQoaG9zdCwgb3B0aW9ucz1vcHRpb25z
KQotICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLW5vLXNob3ctcmVz
dWx0cycsCisgICAgICAgIHJlcywgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLW5vLXNob3ctcmVz
dWx0cycsCiAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1s
JywKICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfdGV4dC5odG1sJywK
ICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL3RleHQtaW1hZ2UtY2hlY2tzdW0uaHRt
bCddLApAQCAtNjUwLDEyICs2MzcsMTIgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENh
c2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAKICAgICBkZWYgdGVzdF9jcmFzaF93aXRoX3N0ZGVy
cihzZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBidWlsZGJv
dF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0LCB1c2VyID0gbG9nZ2luZ19ydW4oWydmYWlsdXJlcy91
bmV4cGVjdGVkL2NyYXNoLXdpdGgtc3RkZXJyLmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwg
aG9zdD1ob3N0KQorICAgICAgICByZXMsIHJlZ3VsYXJfb3V0cHV0LCB1c2VyID0gbG9nZ2luZ19y
dW4oWydmYWlsdXJlcy91bmV4cGVjdGVkL2NyYXNoLXdpdGgtc3RkZXJyLmh0bWwnXSwgdGVzdHNf
aW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaG9zdC5m
aWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZnVsbF9y
ZXN1bHRzLmpzb24nKS5maW5kKCd7ImNyYXNoLXdpdGgtc3RkZXJyLmh0bWwiOnsiZXhwZWN0ZWQi
OiJQQVNTIiwiYWN0dWFsIjoiQ1JBU0giLCJoYXNfc3RkZXJyIjp0cnVlfX0nKSAhPSAtMSkKIAog
ICAgIGRlZiB0ZXN0X25vX2ltYWdlX2ZhaWx1cmVfd2l0aF9pbWFnZV9kaWZmKHNlbGYpOgogICAg
ICAgICBob3N0ID0gTW9ja0hvc3QoKQotICAgICAgICByZXMsIGJ1aWxkYm90X291dHB1dCwgcmVn
dWxhcl9vdXRwdXQsIHVzZXIgPSBsb2dnaW5nX3J1bihbJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvY2hl
Y2tzdW0td2l0aC1tYXRjaGluZy1pbWFnZS5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhv
c3Q9aG9zdCkKKyAgICAgICAgcmVzLCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVu
KFsnZmFpbHVyZXMvdW5leHBlY3RlZC9jaGVja3N1bS13aXRoLW1hdGNoaW5nLWltYWdlLmh0bWwn
XSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydFRy
dWUoaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZnVsbF9yZXN1bHRzLmpzb24nKS5maW5kKCcibnVtX3JlZ3Jlc3Npb25zIjowJykgIT0gLTEp
CiAKICAgICBkZWYgdGVzdF9jcmFzaF9sb2coc2VsZik6CkBAIC02NjYsNyArNjUzLDcgQEAgY2xh
c3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAg
ICAgIG1vY2tfY3Jhc2hfcmVwb3J0ID0gbWFrZV9tb2NrX2NyYXNoX3JlcG9ydF9kYXJ3aW4oJ0R1
bXBSZW5kZXJUcmVlJywgMTIzNDUpCiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAg
IGhvc3QuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9n
cy9EaWFnbm9zdGljUmVwb3J0cy9EdW1wUmVuZGVyVHJlZV8yMDExLTA2LTEzLTE1MDcxOV9xdWFk
emVuLmNyYXNoJywgbW9ja19jcmFzaF9yZXBvcnQpCi0gICAgICAgIHJlcywgYnVpbGRib3Rfb3V0
cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnZmFpbHVyZXMvdW5leHBl
Y3RlZC9jcmFzaC13aXRoLXN0ZGVyci5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9
aG9zdCkKKyAgICAgICAgcmVzLCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVuKFsn
ZmFpbHVyZXMvdW5leHBlY3RlZC9jcmFzaC13aXRoLXN0ZGVyci5odG1sJ10sIHRlc3RzX2luY2x1
ZGVkPVRydWUsIGhvc3Q9aG9zdCkKICAgICAgICAgZXhwZWN0ZWRfY3Jhc2hfbG9nID0gbW9ja19j
cmFzaF9yZXBvcnQKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChob3N0LmZpbGVzeXN0ZW0ucmVh
ZF90ZXh0X2ZpbGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy91bmV4cGVjdGVk
L2NyYXNoLXdpdGgtc3RkZXJyLWNyYXNoLWxvZy50eHQnKSwgZXhwZWN0ZWRfY3Jhc2hfbG9nKQog
CkBAIC02NzgsMTIgKzY2NSwxMiBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwg
U3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgbW9ja19jcmFzaF9yZXBvcnQgPSBtYWtlX21v
Y2tfY3Jhc2hfcmVwb3J0X2RhcndpbignV2ViUHJvY2VzcycsIDEyMzQ1KQogICAgICAgICBob3N0
ID0gTW9ja0hvc3QoKQogICAgICAgICBob3N0LmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKCcv
VXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvRGlhZ25vc3RpY1JlcG9ydHMvV2ViUHJvY2Vzc18yMDEx
LTA2LTEzLTE1MDcxOV9xdWFkemVuLmNyYXNoJywgbW9ja19jcmFzaF9yZXBvcnQpCi0gICAgICAg
IHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVu
KFsnZmFpbHVyZXMvdW5leHBlY3RlZC93ZWItcHJvY2Vzcy1jcmFzaC13aXRoLXN0ZGVyci5odG1s
J10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgbG9nZ2luZ19ydW4o
WydmYWlsdXJlcy91bmV4cGVjdGVkL3dlYi1wcm9jZXNzLWNyYXNoLXdpdGgtc3RkZXJyLmh0bWwn
XSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGhvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2ZhaWx1cmVzL3VuZXhwZWN0ZWQvd2ViLXByb2Nlc3MtY3Jhc2gtd2l0aC1zdGRlcnItY3Jh
c2gtbG9nLnR4dCcpLCBtb2NrX2NyYXNoX3JlcG9ydCkKIAogICAgIGRlZiB0ZXN0X2V4aXRfYWZ0
ZXJfbl9mYWlsdXJlc191cGxvYWQoc2VsZik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCi0g
ICAgICAgIHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dp
bmdfcnVuKAorICAgICAgICByZXMsIHJlZ3VsYXJfb3V0cHV0LCB1c2VyID0gbG9nZ2luZ19ydW4o
CiAgICAgICAgICAgIFsnZmFpbHVyZXMvdW5leHBlY3RlZC90ZXh0LWltYWdlLWNoZWNrc3VtLmh0
bWwnLCAncGFzc2VzL3RleHQuaHRtbCcsICctLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcycsICcxJ10s
CiAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKIApAQCAtNzYxLDcg
Kzc0OCw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5n
TWl4aW4pOgogCiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIHdpdGggaG9zdC5m
aWxlc3lzdGVtLm1rZHRlbXAoKSBhcyB0bXBkaXI6Ci0gICAgICAgICAgICByZXMsIG91dCwgZXJy
LCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXJlc3VsdHMtZGlyZWN0b3J5PScgKyBzdHIodG1wZGly
KV0sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgICAgIHJlcywgZXJy
LCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXJlc3VsdHMtZGlyZWN0b3J5PScgKyBzdHIodG1wZGly
KV0sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodXNlci5vcGVuZWRfdXJscywgW3BhdGguYWJzcGF0aF90b191cmkoaG9zdC5wbGF0
Zm9ybSwgaG9zdC5maWxlc3lzdGVtLmpvaW4odG1wZGlyLCAncmVzdWx0cy5odG1sJykpXSkKIAog
ICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5X2RlZmF1bHQoc2VsZik6CkBAIC03NjksNyAr
NzU2LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdN
aXhpbik6CiAgICAgICAgICMgbG9vayBmb3Igd2hhdCB0aGUgb3V0cHV0IHJlc3VsdHMgdXJsIHdh
cy4KIAogICAgICAgICAjIFRoaXMgaXMgdGhlIGRlZmF1bHQgbG9jYXRpb24uCi0gICAgICAgIHJl
cywgb3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bih0ZXN0c19pbmNsdWRlZD1UcnVlKQorICAg
ICAgICBfLCBfLCB1c2VyID0gbG9nZ2luZ19ydW4odGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh1c2VyLm9wZW5lZF91cmxzLCBbcGF0aC5hYnNwYXRoX3RvX3Vy
aShNb2NrSG9zdCgpLnBsYXRmb3JtLCAnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Jlc3VsdHMu
aHRtbCcpXSkKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5X3JlbGF0aXZlKHNlbGYp
OgpAQCAtNzc4LDE1ICs3NjUsMTQgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2Us
IFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAg
IGhvc3QuZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeSgnL3RtcC9jd2QnKQogICAgICAg
ICBob3N0LmZpbGVzeXN0ZW0uY2hkaXIoJy90bXAvY3dkJykKLSAgICAgICAgcmVzLCBvdXQsIGVy
ciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnLS1yZXN1bHRzLWRpcmVjdG9yeT1mb28nXSwgdGVzdHNf
aW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQorICAgICAgICByZXMsIGVyciwgdXNlciA9IGxvZ2dp
bmdfcnVuKFsnLS1yZXN1bHRzLWRpcmVjdG9yeT1mb28nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwg
aG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVzZXIub3BlbmVkX3VybHMsIFtw
YXRoLmFic3BhdGhfdG9fdXJpKGhvc3QucGxhdGZvcm0sICcvdG1wL2N3ZC9mb28vcmVzdWx0cy5o
dG1sJyldKQogCiAgICAgZGVmIHRlc3RfcmV0cnlpbmdfYW5kX2ZsYWt5X3Rlc3RzKHNlbGYpOgog
ICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQotICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9n
Z2luZ19ydW4oWyctLWRlYnVnLXJ3dC1sb2dnaW5nJywgJ2ZhaWx1cmVzL2ZsYWt5J10sIHRlc3Rz
X2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAgICAgcmVzLCBlcnIsIF8gPSBsb2dnaW5n
X3J1bihbJy0tZGVidWctcnd0LWxvZ2dpbmcnLCAnZmFpbHVyZXMvZmxha3knXSwgdGVzdHNfaW5j
bHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgMCkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdSZXRyeWluZycgaW4gZXJyLmdldHZhbHVlKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnVW5leHBlY3RlZCBmbGFraW5lc3MnIGluIG91dC5nZXR2
YWx1ZSgpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaG9zdC5maWxlc3lzdGVtLmV4aXN0cygn
L3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2ZsYWt5L3RleHQtYWN0dWFsLnR4dCcp
KQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaG9zdC5maWxlc3lzdGVtLmV4aXN0cygnL3RtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL3JldHJpZXMvdGVzdHNfcnVuMC50eHQnKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShob3N0LmZpbGVzeXN0ZW0uZXhpc3RzKCcvdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvcmV0cmllcy9mYWlsdXJlcy9mbGFreS90ZXh0LWFjdHVhbC50eHQnKSkKQEAgLTc5NCwx
MiArNzgwLDEwIEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0
aW5nTWl4aW4pOgogICAgICAgICAjIE5vdyB3ZSB0ZXN0IHRoYXQgLS1jbG9iYmVyLW9sZC1yZXN1
bHRzIGRvZXMgcmVtb3ZlIHRoZSBvbGQgZW50cmllcyBhbmQgdGhlIG9sZCByZXRyaWVzLAogICAg
ICAgICAjIGFuZCB0aGF0IHdlIGRvbid0IHJldHJ5IGFnYWluLgogICAgICAgICBob3N0ID0gTW9j
a0hvc3QoKQotICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLW5vLXJl
dHJ5LWZhaWx1cmVzJywgJy0tY2xvYmJlci1vbGQtcmVzdWx0cycsICdmYWlsdXJlcy9mbGFreSdd
LCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCisgICAgICAgIHJlcywgZXJyLCBfID0g
bG9nZ2luZ19ydW4oWyctLW5vLXJldHJ5LWZhaWx1cmVzJywgJy0tY2xvYmJlci1vbGQtcmVzdWx0
cycsICdmYWlsdXJlcy9mbGFreSddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAxKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
J0Nsb2JiZXJpbmcgb2xkIHJlc3VsdHMnIGluIGVyci5nZXR2YWx1ZSgpKQogICAgICAgICBzZWxm
LmFzc2VydFRydWUoJ2ZsYWt5L3RleHQuaHRtbCcgaW4gZXJyLmdldHZhbHVlKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgnVW5leHBlY3RlZCB0ZXh0LW9ubHkgZmFpbHVyZXMnIGluIG91dC5n
ZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdVbmV4cGVjdGVkIGZsYWtpbmVz
cycgaW4gb3V0LmdldHZhbHVlKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShob3N0LmZpbGVz
eXN0ZW0uZXhpc3RzKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZmxha3kvdGV4
dC1hY3R1YWwudHh0JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaG9zdC5maWxlc3lzdGVt
LmV4aXN0cygncmV0cmllcycpKQogCkBAIC04NzIsNyArODU2LDcgQEAgY2xhc3MgTWFpblRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAKICAgICBkZWYgdGVzdF9y
ZWZ0ZXN0X3Nob3VsZF9ub3RfdXNlX25hbWluZ19jb252ZW50aW9uX2lmX25vdF9saXN0ZWRfaW5f
cmVmdGVzdGxpc3Qoc2VsZik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCi0gICAgICAgIHJl
cywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8tc2hvdy1yZXN1bHRzJywgJ3JlZnRl
c3RzL2Zvby8nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQorICAgICAgICByZXMs
IGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1uby1zaG93LXJlc3VsdHMnLCAncmVmdGVzdHMvZm9v
LyddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCiAgICAgICAgIGpzb25fc3RyaW5n
ID0gaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZnVsbF9yZXN1bHRzLmpzb24nKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoanNvbl9zdHJp
bmcuZmluZCgnInVubGlzdGVkdGVzdC5odG1sIjp7ImV4cGVjdGVkIjoiUEFTUyIsImlzX21pc3Np
bmdfdGV4dCI6dHJ1ZSwiYWN0dWFsIjoiTUlTU0lORyIsImlzX21pc3NpbmdfaW1hZ2UiOnRydWV9
JykgIT0gLTEpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShqc29uX3N0cmluZy5maW5kKCcibnVt
X3JlZ3Jlc3Npb25zIjo0JykgIT0gLTEpCkBAIC05MjIsNyArOTA2LDcgQEAgY2xhc3MgTWFpblRl
c3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGVz
dCB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBnZW5lcmF0ZSAtd2RpZmYuaHRtbCBvciAtcHJldHR5
Lmh0bWwgaWYgd2RpZmYgYW5kIFByZXR0eVBhdGNoCiAgICAgICAgICMgYXJlbid0IGF2YWlsYWJs
ZS4KICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwgXyA9
IGxvZ2dpbmdfcnVuKFsnLS1waXhlbC10ZXN0cycsICdmYWlsdXJlcy91bmV4cGVjdGVkL3RleHQt
aW1hZ2UtY2hlY2tzdW0uaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCisg
ICAgICAgIHJlcywgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLXBpeGVsLXRlc3RzJywgJ2ZhaWx1
cmVzL3VuZXhwZWN0ZWQvdGV4dC1pbWFnZS1jaGVja3N1bS5odG1sJ10sIHRlc3RzX2luY2x1ZGVk
PVRydWUsIGhvc3Q9aG9zdCkKICAgICAgICAgd3JpdHRlbl9maWxlcyA9IGhvc3QuZmlsZXN5c3Rl
bS53cml0dGVuX2ZpbGVzCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkocGF0aC5lbmRzd2l0
aCgnLWRpZmYudHh0JykgZm9yIHBhdGggaW4gd3JpdHRlbl9maWxlcy5rZXlzKCkpKQogICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKGFueShwYXRoLmVuZHN3aXRoKCctd2RpZmYuaHRtbCcpIGZvciBw
YXRoIGluIHdyaXR0ZW5fZmlsZXMua2V5cygpKSkKQEAgLTkzNCwxOSArOTE4LDEzIEBAIGNsYXNz
IE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGZ1bGxfcmVzdWx0c1snaGFzX3ByZXR0eV9wYXRjaCddLCBGYWxz
ZSkKIAogICAgIGRlZiB0ZXN0X3Vuc3VwcG9ydGVkX3BsYXRmb3JtKHNlbGYpOgotICAgICAgICBv
YyA9IG91dHB1dGNhcHR1cmUuT3V0cHV0Q2FwdHVyZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIG9jLmNhcHR1cmVfb3V0cHV0KCkKLSAgICAgICAgICAgIHJlcyA9IHJ1bl93ZWJraXRfdGVz
dHMubWFpbihbJy0tcGxhdGZvcm0nLCAnZm9vJ10pCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzdGRvdXQsIHN0ZGVyciwgbG9ncyA9IG9jLnJlc3RvcmVfb3V0cHV0KCkKKyAgICAgICAg
c3Rkb3V0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgICBzdGRlcnIgPSBTdHJpbmdJTy5T
dHJpbmdJTygpCisgICAgICAgIHJlcyA9IHJ1bl93ZWJraXRfdGVzdHMubWFpbihbJy0tcGxhdGZv
cm0nLCAnZm9vJ10sIHN0ZG91dCwgc3RkZXJyKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVzLCBydW5fd2Via2l0X3Rlc3RzLkVYQ0VQVElPTkFMX0VYSVRfU1RBVFVTKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHN0ZG91dCwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgndW5z
dXBwb3J0ZWQgcGxhdGZvcm0nIGluIHN0ZGVycikKLQotICAgICAgICAjIFRoaXMgaXMgZW1wdHkg
YmVjYXVzZSB3ZSBkb24ndCBldmVuIGdldCBhIGNoYW5jZSB0byBjb25maWd1cmUgdGhlIGxvZ2dl
ciBiZWZvcmUgZmFpbGluZy4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dzLCAnJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGRvdXQuZ2V0dmFsdWUoKSwgJycpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZSgndW5zdXBwb3J0ZWQgcGxhdGZvcm0nIGluIHN0ZGVyci5nZXR2YWx1ZSgp
KQogCiAgICAgZGVmIHRlc3RfdmVyYm9zZV9pbl9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAg
ICAgICMgV2hlbiB3ZSBhY3R1YWxseSBydW4gbXVsdGlwbGUgcHJvY2Vzc2VzLCB3ZSBtYXkgaGF2
ZSB0byByZWNvbmZpZ3VyZSBsb2dnaW5nIGluIHRoZQpAQCAtOTYxLDExICs5MzksMTAgQEAgY2xh
c3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAg
ICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcGFyc2VfYXJncyhbJy0tdmVyYm9zZScsICctLWZ1
bGx5LXBhcmFsbGVsJywgJy0tY2hpbGQtcHJvY2Vzc2VzJywgJzInLCAncGFzc2VzL3RleHQuaHRt
bCcsICdwYXNzZXMvaW1hZ2UuaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBwcmludF9ub3Ro
aW5nPUZhbHNlKQogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBwb3J0X29iaiA9
IGhvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWU9b3B0aW9ucy5wbGF0Zm9ybSwgb3B0aW9u
cz1vcHRpb25zKQotICAgICAgICBidWlsZGJvdF9vdXRwdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygp
Ci0gICAgICAgIHJlZ3VsYXJfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgICAgICBy
dW5fd2Via2l0X3Rlc3RzLnJ1bihwb3J0X29iaiwgb3B0aW9ucywgcGFyc2VkX2FyZ3MsIGJ1aWxk
Ym90X291dHB1dD1idWlsZGJvdF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0PXJlZ3VsYXJfb3V0cHV0
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3RleHQuaHRtbCBwYXNzZWQnIGluIHJlZ3VsYXJf
b3V0cHV0LmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaW1hZ2UuaHRtbCBw
YXNzZWQnIGluIHJlZ3VsYXJfb3V0cHV0LmdldHZhbHVlKCkpCisgICAgICAgIGxvZ2dpbmdfc3Ry
ZWFtID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgICBydW5fd2Via2l0X3Rlc3RzLnJ1bihw
b3J0X29iaiwgb3B0aW9ucywgcGFyc2VkX2FyZ3MsIGxvZ2dpbmdfc3RyZWFtPWxvZ2dpbmdfc3Ry
ZWFtKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3RleHQuaHRtbCBwYXNzZWQnIGluIGxvZ2dp
bmdfc3RyZWFtLmdldHZhbHVlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaW1hZ2UuaHRt
bCBwYXNzZWQnIGluIGxvZ2dpbmdfc3RyZWFtLmdldHZhbHVlKCkpCiAKIAogY2xhc3MgRW5kVG9F
bmRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTk3Niw3ICs5NTMsNyBAQCBjbGFzcyBFbmRU
b0VuZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZW5kX3RvX2VuZChz
ZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBvdXQsIGVyciwg
dXNlciA9IGxvZ2dpbmdfcnVuKHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKKyAgICAg
ICAgcmVzLCBfLCB1c2VyID0gbG9nZ2luZ19ydW4odGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1o
b3N0KQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCB1bmV4cGVjdGVkX3Rlc3RzX2Nv
dW50KQogICAgICAgICByZXN1bHRzID0gc2VsZi5wYXJzZV9mdWxsX3Jlc3VsdHMoaG9zdC5maWxl
c3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZnVsbF9yZXN1
bHRzLmpzb24nKSkKQEAgLTk5MSw3ICs5NjgsNyBAQCBjbGFzcyBFbmRUb0VuZFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0YXRpb25z
IGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRpb24KICAgICAgICAgIyBpcyBtaXNzaW5nLCB1cGRh
dGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9jYXRpb24uCiAgICAgICAgIGhvc3QgPSBNb2NrSG9z
dCgpCi0gICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8tc2hvdy1y
ZXN1bHRzJywgJ3JlZnRlc3RzL2Zvby8nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0
KQorICAgICAgICByZXMsIF8sIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8tc2hvdy1yZXN1bHRzJywg
J3JlZnRlc3RzL2Zvby8nXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0KQogICAgICAg
ICBmaWxlX2xpc3QgPSBob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcy5rZXlzKCkKICAgICAg
ICAgZmlsZV9saXN0LnJlbW92ZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjAu
dHh0JykKICAgICAgICAganNvbl9zdHJpbmcgPSBob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2Zp
bGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mdWxsX3Jlc3VsdHMuanNvbicpCkBAIC0xMDIz
LDEzICsxMDAwLDEyIEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBT
dHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0
YXRpb25zIGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRpb24KICAgICAgICAgIyBpcyBtaXNzaW5n
LCB1cGRhdGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9jYXRpb24uCiAgICAgICAgIGhvc3QgPSBN
b2NrSG9zdCgpCi0gICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bigKKyAgICAg
ICAgcmVzLCBlcnIsIF8gPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAgIFsnLS1waXhlbC10ZXN0
cycsICctLXJlc2V0LXJlc3VsdHMnLCAncGFzc2VzL2ltYWdlLmh0bWwnLCAnZmFpbHVyZXMvZXhw
ZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1sJ10sCiAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1U
cnVlLCBob3N0PWhvc3QsIG5ld19yZXN1bHRzPVRydWUpCiAgICAgICAgIGZpbGVfbGlzdCA9IGhv
c3QuZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzLmtleXMoKQogICAgICAgICBmaWxlX2xpc3QucmVt
b3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHQnKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlcywgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDcpCiAgICAgICAgIHNlbGYu
YXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwgInBhc3Nlcy9pbWFnZSIsIFsiLnR4dCIsICIucG5n
Il0sIGVycikKICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZXMoZmlsZV9saXN0LCAiZmFpbHVy
ZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFnZSIsIFsiLnR4dCIsICIucG5nIl0sIGVycikKQEAgLTEw
MzgsNyArMTAxNCw3IEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBT
dHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0
YXRpb25zIGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRpb24KICAgICAgICAgIyBpcyBtaXNzaW5n
LCB1cGRhdGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9jYXRpb24uCiAgICAgICAgIGhvc3QgPSBN
b2NrSG9zdCgpCi0gICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8t
c2hvdy1yZXN1bHRzJywKKyAgICAgICAgcmVzLCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8t
c2hvdy1yZXN1bHRzJywKICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3Npbmdf
dGV4dC5odG1sJywKICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfaW1h
Z2UuaHRtbCcsCiAgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNzaW5nX2F1ZGlv
Lmh0bWwnLApAQCAtMTA0Nyw3ICsxMDIzLDYgQEAgY2xhc3MgUmViYXNlbGluZVRlc3QodW5pdHRl
c3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIGZpbGVfbGlzdCA9IGhv
c3QuZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzLmtleXMoKQogICAgICAgICBmaWxlX2xpc3QucmVt
b3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHQnKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlcywgMCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwgImZhaWx1cmVzL3VuZXhwZWN0ZWQvbWlzc2lu
Z190ZXh0IiwgWyIudHh0Il0sIGVycikKICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZXMoZmls
ZV9saXN0LCAicGxhdGZvcm0vdGVzdC9mYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfaW1hZ2Ui
LCBbIi5wbmciXSwgZXJyKQpAQCAtMTA1NywxMyArMTAzMiwxMiBAQCBjbGFzcyBSZWJhc2VsaW5l
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgIyBU
ZXN0IHRoYXQgd2UgdXBkYXRlIHRoZSBwbGF0Zm9ybSBleHBlY3RhdGlvbnMgaW4gdGhlIHZlcnNp
b24tc3BlY2lmaWMgZGlyZWN0b3JpZXMKICAgICAgICAgIyBmb3IgYm90aCBleGlzdGluZyBhbmQg
bmV3IGJhc2VsaW5lcy4KICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgcmVzLCBv
dXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKAorICAgICAgICByZXMsIGVyciwgXyA9IGxvZ2dpbmdf
cnVuKAogICAgICAgICAgICAgWyctLXBpeGVsLXRlc3RzJywgJy0tbmV3LWJhc2VsaW5lJywgJ3Bh
c3Nlcy9pbWFnZS5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRtbCdd
LAogICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0LCBuZXdfcmVzdWx0
cz1UcnVlKQogICAgICAgICBmaWxlX2xpc3QgPSBob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxl
cy5rZXlzKCkKICAgICAgICAgZmlsZV9saXN0LnJlbW92ZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL3Rlc3RzX3J1bjAudHh0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIDApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihmaWxlX2xpc3QpLCA3KQogICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3Qs
CiAgICAgICAgICAgICAicGxhdGZvcm0vdGVzdC1tYWMtbGVvcGFyZC9wYXNzZXMvaW1hZ2UiLCBb
Ii50eHQiLCAiLnBuZyJdLCBlcnIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVzdWx0cy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNzMyNzgwODg3MjUyMTYxMzVmNDk3ZWM2M2JiOGVkYTBlMWQ5YWYzCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3Rf
cmVzdWx0cy5weQpAQCAtMCwwICsxLDE2NiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0
IHRlc3RfZXhwZWN0YXRpb25zCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVz
dWx0c2pzb25wYXJzZXIKKworCitUZXN0RXhwZWN0YXRpb25zID0gdGVzdF9leHBlY3RhdGlvbnMu
VGVzdEV4cGVjdGF0aW9ucworVGVzdEV4cGVjdGF0aW9uUGFyc2VyID0gdGVzdF9leHBlY3RhdGlv
bnMuVGVzdEV4cGVjdGF0aW9uUGFyc2VyCisKKworY2xhc3MgQnVpbGRCb3RQcmludGVyKG9iamVj
dCk6CisgICAgIyBUaGlzIG91dHB1dCBpcyBwYXJzZWQgYnkgYnVpbGRib3RzIGFuZCBtdXN0IG9u
bHkgYmUgY2hhbmdlZCBpbiBjb29yZGluYXRpb24gd2l0aCBidWlsZGJvdCBzY3JpcHRzIChzZWUg
d2Via2l0Lm9yZydzCisgICAgIyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9tYXN0ZXIuY2ZnOiBSdW5XZWJLaXRUZXN0cy5fcGFyc2VOZXdSdW5XZWJLaXRU
ZXN0c091dHB1dAorICAgICMgYW5kIGNocm9taXVtLm9yZydzIGJ1aWxkYm90L21hc3Rlci5jaHJv
bWl1bS9zY3JpcHRzL21hc3Rlci9sb2dfcGFyc2VyL3dlYmtpdF90ZXN0X2NvbW1hbmQucHkpLgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmVhbSwgZGVidWdfbG9nZ2luZyk6CisgICAgICAg
IHNlbGYuc3RyZWFtID0gc3RyZWFtCisgICAgICAgIHNlbGYuZGVidWdfbG9nZ2luZyA9IGRlYnVn
X2xvZ2dpbmcKKworICAgIGRlZiBwcmludF9yZXN1bHRzKHNlbGYsIHJ1bl9kZXRhaWxzKToKKyAg
ICAgICAgaWYgc2VsZi5kZWJ1Z19sb2dnaW5nOgorICAgICAgICAgICAgc2VsZi5wcmludF9yZXN1
bHRfc3VtbWFyeShydW5fZGV0YWlscy5yZXN1bHRfc3VtbWFyeSkKKyAgICAgICAgc2VsZi5wcmlu
dF91bmV4cGVjdGVkX3Jlc3VsdHMocnVuX2RldGFpbHMuc3VtbWFyaXplZF9yZXN1bHRzKQorCisg
ICAgZGVmIF9wcmludChzZWxmLCBtc2cpOgorICAgICAgICBzZWxmLnN0cmVhbS53cml0ZShtc2cg
KyAnXG4nKQorCisgICAgZGVmIHByaW50X3Jlc3VsdF9zdW1tYXJ5KHNlbGYsIHJlc3VsdF9zdW1t
YXJ5KToKKyAgICAgICAgZmFpbGVkID0gcmVzdWx0X3N1bW1hcnkudG90YWxfZmFpbHVyZXMKKyAg
ICAgICAgdG90YWwgPSByZXN1bHRfc3VtbWFyeS50b3RhbAorICAgICAgICBwYXNzZWQgPSB0b3Rh
bCAtIGZhaWxlZCAtIHJlc3VsdF9zdW1tYXJ5LnJlbWFpbmluZworICAgICAgICBwY3RfcGFzc2Vk
ID0gMC4wCisgICAgICAgIGlmIHRvdGFsID4gMDoKKyAgICAgICAgICAgIHBjdF9wYXNzZWQgPSBm
bG9hdChwYXNzZWQpICogMTAwIC8gdG90YWwKKworICAgICAgICBzZWxmLl9wcmludCgiPT4gUmVz
dWx0czogJWQvJWQgdGVzdHMgcGFzc2VkICglLjFmJSUpIiAlIChwYXNzZWQsIHRvdGFsLCBwY3Rf
cGFzc2VkKSkKKyAgICAgICAgc2VsZi5fcHJpbnQoIiIpCisgICAgICAgIHNlbGYuX3ByaW50X3Jl
c3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4cGVjdGF0aW9ucy5OT1cs
ICJUZXN0cyB0byBiZSBmaXhlZCIpCisKKyAgICAgICAgc2VsZi5fcHJpbnQoIiIpCisgICAgICAg
ICMgRklYTUU6IFdlIHNob3VsZCBiZSBza2lwcGluZyBhbnl0aGluZyBtYXJrZWQgV09OVEZJWCwg
c28gd2Ugc2hvdWxkbid0IGJvdGhlciBsb2dnaW5nIHRoZXNlIHN0YXRzLgorICAgICAgICBzZWxm
Ll9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFyeSwgdGVzdF9leHBlY3Rh
dGlvbnMuV09OVEZJWCwKKyAgICAgICAgICAgICJUZXN0cyB0aGF0IHdpbGwgb25seSBiZSBmaXhl
ZCBpZiB0aGV5IGNyYXNoIChXT05URklYKSIpCisgICAgICAgIHNlbGYuX3ByaW50KCIiKQorCisg
ICAgZGVmIF9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShzZWxmLCByZXN1bHRfc3VtbWFyeSwg
dGltZWxpbmUsIGhlYWRpbmcpOgorICAgICAgICB0b3RhbCA9IGxlbihyZXN1bHRfc3VtbWFyeS50
ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0pCisgICAgICAgIG5vdF9wYXNzaW5nID0gKHRvdGFs
IC0KKyAgICAgICAgICAgIGxlbihyZXN1bHRfc3VtbWFyeS50ZXN0c19ieV9leHBlY3RhdGlvblt0
ZXN0X2V4cGVjdGF0aW9ucy5QQVNTXSAmCisgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnku
dGVzdHNfYnlfdGltZWxpbmVbdGltZWxpbmVdKSkKKyAgICAgICAgc2VsZi5fcHJpbnQoIj0+ICVz
ICglZCk6IiAlIChoZWFkaW5nLCBub3RfcGFzc2luZykpCisKKyAgICAgICAgZm9yIHJlc3VsdCBp
biBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OX09SREVSOgorICAgICAgICAgICAgaWYgcmVz
dWx0IGluICh0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTLCB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQKToK
KyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgcmVzdWx0cyA9IChyZXN1bHRf
c3VtbWFyeS50ZXN0c19ieV9leHBlY3RhdGlvbltyZXN1bHRdICYKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkKKyAgICAg
ICAgICAgIGRlc2MgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OX0RFU0NSSVBUSU9OU1ty
ZXN1bHRdCisgICAgICAgICAgICBpZiBub3RfcGFzc2luZyBhbmQgbGVuKHJlc3VsdHMpOgorICAg
ICAgICAgICAgICAgIHBjdCA9IGxlbihyZXN1bHRzKSAqIDEwMC4wIC8gbm90X3Bhc3NpbmcKKyAg
ICAgICAgICAgICAgICBzZWxmLl9wcmludCgiICAlNWQgJS0yNHMgKCU0LjFmJSUpIiAlIChsZW4o
cmVzdWx0cyksIGRlc2MsIHBjdCkpCisKKyAgICBkZWYgcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRz
KHNlbGYsIHN1bW1hcml6ZWRfcmVzdWx0cyk6CisgICAgICAgIHBhc3NlcyA9IHt9CisgICAgICAg
IGZsYWt5ID0ge30KKyAgICAgICAgcmVncmVzc2lvbnMgPSB7fQorCisgICAgICAgIGRlZiBhZGRf
dG9fZGljdF9vZl9saXN0cyhkaWN0LCBrZXksIHZhbHVlKToKKyAgICAgICAgICAgIGRpY3Quc2V0
ZGVmYXVsdChrZXksIFtdKS5hcHBlbmQodmFsdWUpCisKKyAgICAgICAgZGVmIGFkZF9yZXN1bHQo
dGVzdCwgcmVzdWx0cywgcGFzc2VzPXBhc3NlcywgZmxha3k9Zmxha3ksIHJlZ3Jlc3Npb25zPXJl
Z3Jlc3Npb25zKToKKyAgICAgICAgICAgIGFjdHVhbCA9IHJlc3VsdHNbJ2FjdHVhbCddLnNwbGl0
KCIgIikKKyAgICAgICAgICAgIGV4cGVjdGVkID0gcmVzdWx0c1snZXhwZWN0ZWQnXS5zcGxpdCgi
ICIpCisKKyAgICAgICAgICAgIGRlZiBpc19leHBlY3RlZChyZXN1bHQpOgorICAgICAgICAgICAg
ICAgIHJldHVybiAocmVzdWx0IGluIGV4cGVjdGVkKSBvciAocmVzdWx0IGluICgnVEVYVCcsICdJ
TUFHRStURVhUJykgYW5kICdGQUlMJyBpbiBleHBlY3RlZCkKKworICAgICAgICAgICAgaWYgYWxs
KGlzX2V4cGVjdGVkKGFjdHVhbF9yZXN1bHQpIGZvciBhY3R1YWxfcmVzdWx0IGluIGFjdHVhbCk6
CisgICAgICAgICAgICAgICAgIyBEb24ndCBwcmludCBhbnl0aGluZyBmb3IgdGVzdHMgdGhhdCBy
YW4gYXMgZXhwZWN0ZWQuCisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgIGlm
IGFjdHVhbCA9PSBbJ1BBU1MnXToKKyAgICAgICAgICAgICAgICBpZiAnQ1JBU0gnIGluIGV4cGVj
dGVkOgorICAgICAgICAgICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9saXN0cyhwYXNzZXMsICdF
eHBlY3RlZCB0byBjcmFzaCwgYnV0IHBhc3NlZCcsIHRlc3QpCisgICAgICAgICAgICAgICAgZWxp
ZiAnVElNRU9VVCcgaW4gZXhwZWN0ZWQ6CisgICAgICAgICAgICAgICAgICAgIGFkZF90b19kaWN0
X29mX2xpc3RzKHBhc3NlcywgJ0V4cGVjdGVkIHRvIHRpbWVvdXQsIGJ1dCBwYXNzZWQnLCB0ZXN0
KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGFkZF90b19kaWN0
X29mX2xpc3RzKHBhc3NlcywgJ0V4cGVjdGVkIHRvIGZhaWwsIGJ1dCBwYXNzZWQnLCB0ZXN0KQor
ICAgICAgICAgICAgZWxpZiBsZW4oYWN0dWFsKSA+IDE6CisgICAgICAgICAgICAgICAgIyBXZSBn
cm91cCBmbGFreSB0ZXN0cyBieSB0aGUgZmlyc3QgYWN0dWFsIHJlc3VsdCB3ZSBnb3QuCisgICAg
ICAgICAgICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMoZmxha3ksIGFjdHVhbFswXSwgdGVzdCkK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMo
cmVncmVzc2lvbnMsIHJlc3VsdHNbJ2FjdHVhbCddLCB0ZXN0KQorCisgICAgICAgIHJlc3VsdHNq
c29ucGFyc2VyLmZvcl9lYWNoX3Rlc3Qoc3VtbWFyaXplZF9yZXN1bHRzWyd0ZXN0cyddLCBhZGRf
cmVzdWx0KQorCisgICAgICAgIGlmIGxlbihwYXNzZXMpIG9yIGxlbihmbGFreSkgb3IgbGVuKHJl
Z3Jlc3Npb25zKToKKyAgICAgICAgICAgIHNlbGYuX3ByaW50KCIiKQorICAgICAgICBpZiBsZW4o
cGFzc2VzKToKKyAgICAgICAgICAgIGZvciBrZXksIHRlc3RzIGluIHBhc3Nlcy5pdGVyaXRlbXMo
KToKKyAgICAgICAgICAgICAgICBzZWxmLl9wcmludCgiJXM6ICglZCkiICUgKGtleSwgbGVuKHRl
c3RzKSkpCisgICAgICAgICAgICAgICAgdGVzdHMuc29ydCgpCisgICAgICAgICAgICAgICAgZm9y
IHRlc3QgaW4gdGVzdHM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50KCIgICVzIiAl
IHRlc3QpCisgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnQoIiIpCisgICAgICAgICAgICBzZWxm
Ll9wcmludCgiIikKKworICAgICAgICBpZiBsZW4oZmxha3kpOgorICAgICAgICAgICAgZGVzY3Jp
cHRpb25zID0gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9ERVNDUklQVElPTlMKKyAgICAg
ICAgICAgIGZvciBrZXksIHRlc3RzIGluIGZsYWt5Lml0ZXJpdGVtcygpOgorICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TW2tleS5sb3dlcigpXQor
ICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50KCJVbmV4cGVjdGVkIGZsYWtpbmVzczogJXMgKCVk
KSIgJSAoZGVzY3JpcHRpb25zW3Jlc3VsdF0sIGxlbih0ZXN0cykpKQorICAgICAgICAgICAgICAg
IHRlc3RzLnNvcnQoKQorCisgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6CisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdHNqc29ucGFyc2VyLnJlc3VsdF9mb3JfdGVz
dChzdW1tYXJpemVkX3Jlc3VsdHNbJ3Rlc3RzJ10sIHRlc3QpCisgICAgICAgICAgICAgICAgICAg
IGFjdHVhbCA9IHJlc3VsdFsnYWN0dWFsJ10uc3BsaXQoIiAiKQorICAgICAgICAgICAgICAgICAg
ICBleHBlY3RlZCA9IHJlc3VsdFsnZXhwZWN0ZWQnXS5zcGxpdCgiICIpCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TW2tleS5sb3dlcigp
XQorICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBjbGVhbiB0aGlzIHVwIG9uY2UgdGhlIG9s
ZCBzeW50YXggaXMgZ29uZQorICAgICAgICAgICAgICAgICAgICBuZXdfZXhwZWN0YXRpb25zX2xp
c3QgPSBbVGVzdEV4cGVjdGF0aW9uUGFyc2VyLl9pbnZlcnRlZF9leHBlY3RhdGlvbl90b2tlbnNb
ZXhwXSBmb3IgZXhwIGluIGxpc3Qoc2V0KGFjdHVhbCkgfCBzZXQoZXhwZWN0ZWQpKV0KKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcHJpbnQoIiAgJXMgWyAlcyBdIiAlICh0ZXN0LCAiICIuam9p
bihuZXdfZXhwZWN0YXRpb25zX2xpc3QpKSkKKyAgICAgICAgICAgICAgICBzZWxmLl9wcmludCgi
IikKKyAgICAgICAgICAgIHNlbGYuX3ByaW50KCIiKQorCisgICAgICAgIGlmIGxlbihyZWdyZXNz
aW9ucyk6CisgICAgICAgICAgICBkZXNjcmlwdGlvbnMgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVD
VEFUSU9OX0RFU0NSSVBUSU9OUworICAgICAgICAgICAgZm9yIGtleSwgdGVzdHMgaW4gcmVncmVz
c2lvbnMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVGVzdEV4cGVjdGF0
aW9ucy5FWFBFQ1RBVElPTlNba2V5Lmxvd2VyKCldCisgICAgICAgICAgICAgICAgc2VsZi5fcHJp
bnQoIlJlZ3Jlc3Npb25zOiBVbmV4cGVjdGVkICVzICglZCkiICUgKGRlc2NyaXB0aW9uc1tyZXN1
bHRdLCBsZW4odGVzdHMpKSkKKyAgICAgICAgICAgICAgICB0ZXN0cy5zb3J0KCkKKyAgICAgICAg
ICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJp
bnQoIiAgJXMgWyAlcyBdIiAlICh0ZXN0LCBUZXN0RXhwZWN0YXRpb25QYXJzZXIuX2ludmVydGVk
X2V4cGVjdGF0aW9uX3Rva2Vuc1trZXldKSkKKyAgICAgICAgICAgICAgICBzZWxmLl9wcmludCgi
IikKKworICAgICAgICBpZiBsZW4oc3VtbWFyaXplZF9yZXN1bHRzWyd0ZXN0cyddKSBhbmQgc2Vs
Zi5kZWJ1Z19sb2dnaW5nOgorICAgICAgICAgICAgc2VsZi5fcHJpbnQoIiVzIiAlICgiLSIgKiA3
OCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3
cy9idWlsZGJvdF9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVzdWx0c191bml0dGVzdC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zM2VlODBkODkwN2U2Njk0Y2QwM2Q0M2Y5OTE2ODI1NjBhMzg3MTc4Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3Rf
cmVzdWx0c191bml0dGVzdC5weQpAQCAtMCwwICsxLDE1OCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IFN0cmluZ0lPCitpbXBvcnQgdW5pdHRlc3QK
KworZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAorCitmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycyBpbXBvcnQgbWFuYWdlcgorZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCByZXN1bHRfc3VtbWFyeQorZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucworZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCitmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cworZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMudmlld3MgaW1wb3J0IGJ1aWxkYm90X3Jlc3VsdHMKKworCitj
bGFzcyBCdWlsZEJvdFByaW50ZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIGFz
c2VydEVtcHR5KHNlbGYsIHN0cmVhbSk6CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc3RyZWFt
LmdldHZhbHVlKCkpCisKKyAgICBkZWYgYXNzZXJ0Tm90RW1wdHkoc2VsZiwgc3RyZWFtKToKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHN0cmVhbS5nZXR2YWx1ZSgpKQorCisgICAgZGVmIGdldF9w
cmludGVyKHNlbGYpOgorICAgICAgICBzdHJlYW0gPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAg
ICAgIHByaW50ZXIgPSBidWlsZGJvdF9yZXN1bHRzLkJ1aWxkQm90UHJpbnRlcihzdHJlYW0sIGRl
YnVnX2xvZ2dpbmc9VHJ1ZSkKKyAgICAgICAgcmV0dXJuIHByaW50ZXIsIHN0cmVhbQorCisgICAg
ZGVmIGdldF9yZXN1bHQoc2VsZiwgdGVzdF9uYW1lLCByZXN1bHRfdHlwZT10ZXN0X2V4cGVjdGF0
aW9ucy5QQVNTLCBydW5fdGltZT0wKToKKyAgICAgICAgZmFpbHVyZXMgPSBbXQorICAgICAgICBp
ZiByZXN1bHRfdHlwZSA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUOgorICAgICAgICAgICAg
ZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGltZW91dCgpXQorICAgICAgICBlbGlm
IHJlc3VsdF90eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIOgorICAgICAgICAgICAgZmFp
bHVyZXMgPSBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlQ3Jhc2goKV0KKyAgICAgICAgcmV0dXJuIHRl
c3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfbmFtZSwgZmFpbHVyZXM9ZmFpbHVyZXMsIHRlc3Rf
cnVuX3RpbWU9cnVuX3RpbWUpCisKKyAgICBkZWYgZ2V0X3Jlc3VsdF9zdW1tYXJ5KHNlbGYsIHBv
cnQsIHRlc3RfbmFtZXMsIGV4cGVjdGF0aW9uc19zdHIpOgorICAgICAgICBwb3J0LnRlc3RfZXhw
ZWN0YXRpb25zID0gbGFtYmRhOiBleHBlY3RhdGlvbnNfc3RyCisgICAgICAgIHBvcnQudGVzdF9l
eHBlY3RhdGlvbnNfb3ZlcnJpZGVzID0gbGFtYmRhOiBOb25lCisgICAgICAgIGV4cGVjdGF0aW9u
cyA9IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMocG9ydCwgdGVzdF9uYW1lcykK
KyAgICAgICAgcnMgPSByZXN1bHRfc3VtbWFyeS5SZXN1bHRTdW1tYXJ5KGV4cGVjdGF0aW9ucywg
bGVuKHRlc3RfbmFtZXMpKQorICAgICAgICByZXR1cm4gdGVzdF9uYW1lcywgcnMsIGV4cGVjdGF0
aW9ucworCisgICAgZGVmIHRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHNlbGYpOgorICAg
ICAgICAjIFRoaXMgcm91dGluZSBpcyB0aGUgb25seSBvbmUgdGhhdCBwcmludHMgc3R1ZmYgdGhh
dCB0aGUgYm90cworICAgICAgICAjIGNhcmUgYWJvdXQuCisgICAgICAgICMKKyAgICAgICAgIyBG
SVhNRTogdGhlcmUncyBzb21lIHdlaXJkIGxheWVyaW5nIGdvaW5nIG9uIGhlcmUuIEl0IHNlZW1z
CisgICAgICAgICMgbGlrZSB3ZSBzaG91bGRuJ3QgYmUgYm90aCB1c2luZyBhbiBleHBlY3RhdGlv
bnMgc3RyaW5nIGFuZAorICAgICAgICAjIGhhdmluZyB0byBzcGVjaWZ5IHdoZXRoZXIgb3Igbm90
IHRoZSByZXN1bHQgd2FzIGV4cGVjdGVkLgorICAgICAgICAjIFRoaXMgd2hvbGUgc2V0IG9mIHRl
c3RzIHNob3VsZCBwcm9iYWJseSBiZSByZXdyaXR0ZW4uCisgICAgICAgICMKKyAgICAgICAgIyBG
SVhNRTogUGx1cywgdGhlIGZhY3QgdGhhdCB3ZSdyZSBoYXZpbmcgdG8gY2FsbCBpbnRvCisgICAg
ICAgICMgcnVuX3dlYmtpdF90ZXN0cyBpcyBjbGVhcmx5IGEgbGF5ZXJpbmcgaW52ZXJzaW9uLgor
ICAgICAgICB0ZXN0cyA9IFsncGFzc2VzL3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC90
aW1lb3V0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCddCisgICAgICAgIGV4
cGVjdGF0aW9ucyA9ICcnCisKKyAgICAgICAgZGVmIGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhw
ZWN0ZWQsIHBhc3NpbmcsIGZsYWt5KToKKyAgICAgICAgICAgICIiIlJldHVybiBhbiB1bmV4cGVj
dGVkIHJlc3VsdHMgc3VtbWFyeSBtYXRjaGluZyB0aGUgaW5wdXQgZGVzY3JpcHRpb24uCisKKyAg
ICAgICAgICAgIFRoZXJlIGFyZSBhIGxvdCBvZiBkaWZmZXJlbnQgY29tYmluYXRpb25zIG9mIHRl
c3QgcmVzdWx0cyB0aGF0CisgICAgICAgICAgICBjYW4gYmUgdGVzdGVkOyB0aGlzIHJvdXRpbmUg
cHJvZHVjZXMgdmFyaW91cyBjb21iaW5hdGlvbnMgYmFzZWQKKyAgICAgICAgICAgIG9uIHRoZSB2
YWx1ZXMgb2YgdGhlIGlucHV0IGZsYWdzLgorCisgICAgICAgICAgICBBcmdzCisgICAgICAgICAg
ICAgICAgZXhwZWN0ZWQ6IHdoZXRoZXIgdGhlIHRlc3RzIHJhbiBhcyBleHBlY3RlZAorICAgICAg
ICAgICAgICAgIHBhc3Npbmc6IHdoZXRoZXIgdGhlIHRlc3RzIHNob3VsZCBhbGwgcGFzcworICAg
ICAgICAgICAgICAgIGZsYWt5OiB3aGV0aGVyIHRoZSB0ZXN0cyBzaG91bGQgYmUgZmxha3kgKGlm
IEZhbHNlLCB0aGV5CisgICAgICAgICAgICAgICAgICAgIHByb2R1Y2UgdGhlIHNhbWUgcmVzdWx0
cyBvbiBib3RoIHJ1bnM7IGlmIFRydWUsIHRoZXkKKyAgICAgICAgICAgICAgICAgICAgYWxsIHBh
c3Mgb24gdGhlIHNlY29uZCBydW4pLgorCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHBv
cnQgPSBNb2NrSG9zdCgpLnBvcnRfZmFjdG9yeS5nZXQoJ3Rlc3QnKQorICAgICAgICAgICAgdGVz
dF9pc19zbG93ID0gRmFsc2UKKyAgICAgICAgICAgIHBhdGhzLCBycywgZXhwID0gc2VsZi5nZXRf
cmVzdWx0X3N1bW1hcnkocG9ydCwgdGVzdHMsIGV4cGVjdGF0aW9ucykKKyAgICAgICAgICAgIGlm
IGV4cGVjdGVkOgorICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nl
cy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTKSwgZXhwZWN0ZWQsIHRlc3RfaXNf
c2xvdykKKyAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9l
eHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0
ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gp
LCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgZWxpZiBwYXNzaW5nOgorICAg
ICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwg
ZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRf
cmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3Rf
aXNfc2xvdykKKyAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJl
cy9leHBlY3RlZC9jcmFzaC5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nl
cy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3Rf
aXNfc2xvdykKKyAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJl
cy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVj
dGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3Vs
dCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVP
VVQpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcmV0cnkgPSBycworICAg
ICAgICAgICAgaWYgZmxha3k6CisgICAgICAgICAgICAgICAgcGF0aHMsIHJldHJ5LCBleHAgPSBz
ZWxmLmdldF9yZXN1bHRfc3VtbWFyeShwb3J0LCB0ZXN0cywgZXhwZWN0YXRpb25zKQorICAgICAg
ICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwg
VHJ1ZSwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9y
ZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Ns
b3cpCisgICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBy
ZXR1cm4gbWFuYWdlci5zdW1tYXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIHJzLCByZXRyeSkKKwor
ICAgICAgICBwcmludGVyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKKworICAgICAgICAjIHRl
c3QgZXZlcnl0aGluZyBydW5uaW5nIGFzIGV4cGVjdGVkCisgICAgICAgIHVyID0gZ2V0X3VuZXhw
ZWN0ZWRfcmVzdWx0cyhleHBlY3RlZD1UcnVlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkK
KyAgICAgICAgcHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHNl
bGYuYXNzZXJ0Tm90RW1wdHkob3V0KQorCisgICAgICAgICMgdGVzdCBmYWlsdXJlcworICAgICAg
ICBwcmludGVyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKKyAgICAgICAgdXIgPSBnZXRfdW5l
eHBlY3RlZF9yZXN1bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxz
ZSkKKyAgICAgICAgcHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAg
IHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQorCisgICAgICAgICMgdGVzdCB1bmV4cGVjdGVkIGZs
YWt5CisgICAgICAgIHByaW50ZXIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQorICAgICAgICB1
ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2Us
IGZsYWt5PVRydWUpCisgICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVy
KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKKworICAgICAgICBwcmludGVyLCBv
dXQgPSBzZWxmLmdldF9wcmludGVyKCkKKyAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1
bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKKyAgICAgICAg
cHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHNlbGYuYXNzZXJ0
Tm90RW1wdHkob3V0KQorCisgICAgICAgIGV4cGVjdGF0aW9ucyA9ICIiIgorQlVHWCA6IGZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwgPSBDUkFTSAorQlVHWCA6IGZhaWx1cmVzL2V4cGVjdGVk
L3RpbWVvdXQuaHRtbCA9IFRJTUVPVVQKKyIiIgorICAgICAgICBwcmludGVyLCBvdXQgPSBzZWxm
LmdldF9wcmludGVyKCkKKyAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVj
dGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKKyAgICAgICAgcHJpbnRlci5w
cmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHko
b3V0KQorCisgICAgICAgIHByaW50ZXIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQorICAgICAg
ICB1ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9VHJ1
ZSwgZmxha3k9RmFsc2UpCisgICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRz
KHVyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKaW5kZXggZGU2
MTVmOTVlN2MzMmZlMDBiNWU0OTExNTlhNzFhMDU1OTcxMzI1YS4uNDcwNjMyY2FmMjZkYWIzMDY4
YjRkN2FkMjJhNTM2Y2ZhNjU1N2IxMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKQEAgLTMyLDcgKzMyLDYgQEAgaW1w
b3J0IG1hdGgKIGltcG9ydCBvcHRwYXJzZQogCiBmcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IGdy
YW1tYXIKLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVzdWx0c2pzb25wYXJzZXIK
IGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlv
bnMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2V4cGVjdGF0aW9ucyBp
bXBvcnQgVGVzdEV4cGVjdGF0aW9ucywgVGVzdEV4cGVjdGF0aW9uUGFyc2VyCiBmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy52aWV3cy5tZXRlcmVkX3N0cmVhbSBpbXBvcnQgTWV0ZXJlZFN0cmVh
bQpAQCAtNTUsMjMgKzU0LDEzIEBAIGRlZiBwcmludF9vcHRpb25zKCk6CiAKIAogY2xhc3MgUHJp
bnRlcihvYmplY3QpOgotICAgICIiIkNsYXNzIGhhbmRsaW5nIGFsbCBub24tZGVidWctbG9nZ2lu
ZyBwcmludGluZyBkb25lIGJ5IHJ1bi13ZWJraXQtdGVzdHMuCi0KLSAgICBQcmludGluZyBmcm9t
IHJ1bi13ZWJraXQtdGVzdHMgZmFsbHMgaW50byB0d28gYnVja2V0czogZ2VuZXJhbCBvcgotICAg
IHJlZ3VsYXIgb3V0cHV0IHRoYXQgaXMgcmVhZCBvbmx5IGJ5IGh1bWFucyBhbmQgY2FuIGJlIGNo
YW5nZWQgYXQgYW55Ci0gICAgdGltZSwgYW5kIG91dHB1dCB0aGF0IGlzIHBhcnNlZCBieSBidWls
ZGJvdHMgKGFuZCBodW1hbnMpIGFuZCBoZW5jZQotICAgIG11c3QgYmUgY2hhbmdlZCBtb3JlIGNh
cmVmdWxseSBhbmQgaW4gY29vcmRpbmF0aW9uIHdpdGggdGhlIGJ1aWxkYm90Ci0gICAgcGFyc2lu
ZyBjb2RlIChpbiBjaHJvbWl1bS5vcmcncyBidWlsZGJvdC9tYXN0ZXIuY2hyb21pdW0vc2NyaXB0
cy9tYXN0ZXIvCi0gICAgbG9nX3BhcnNlci93ZWJraXRfdGVzdF9jb21tYW5kLnB5IHNjcmlwdCku
Ci0KLSAgICBCeSBkZWZhdWx0IHRoZSBidWlsZGJvdC1wYXJzZWQgY29kZSBnZXRzIGxvZ2dlZCB0
byBzdGRvdXQsIGFuZCByZWd1bGFyCi0gICAgb3V0cHV0IGdldHMgbG9nZ2VkIHRvIHN0ZGVyci4i
IiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywgcmVndWxhcl9vdXRwdXQs
IGJ1aWxkYm90X291dHB1dCwgbG9nZ2VyPU5vbmUpOgorICAgICIiIkNsYXNzIGhhbmRsaW5nIGFs
bCBub24tZGVidWctbG9nZ2luZyBwcmludGluZyBkb25lIGJ5IHJ1bi13ZWJraXQtdGVzdHMuIiIi
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywgcmVndWxhcl9vdXRwdXQs
IGxvZ2dlcj1Ob25lKToKICAgICAgICAgc2VsZi5udW1fY29tcGxldGVkID0gMAogICAgICAgICBz
ZWxmLm51bV90ZXN0cyA9IDAKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2Vs
Zi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtID0gYnVp
bGRib3Rfb3V0cHV0CiAgICAgICAgIHNlbGYuX21ldGVyID0gTWV0ZXJlZFN0cmVhbShyZWd1bGFy
X291dHB1dCwgb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZywgbG9nZ2VyPWxvZ2dlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcl9vZl9jb2x1bW5zPXNlbGYuX3Bv
cnQuaG9zdC5wbGF0Zm9ybS50ZXJtaW5hbF93aWR0aCgpKQogICAgICAgICBzZWxmLl9ydW5uaW5n
X3Rlc3RzID0gW10KQEAgLTE1MCwxMSArMTM5LDkgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgog
CiAgICAgZGVmIHByaW50X3Jlc3VsdHMoc2VsZiwgcnVuX3RpbWUsIHJlc3VsdF9zdW1tYXJ5LCBz
dW1tYXJpemVkX3Jlc3VsdHMpOgogICAgICAgICBzZWxmLl9wcmludF90aW1pbmdfc3RhdGlzdGlj
cyhydW5fdGltZSwgcmVzdWx0X3N1bW1hcnkpCi0gICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9z
dW1tYXJ5KHJlc3VsdF9zdW1tYXJ5KQogICAgICAgICBzZWxmLl9wcmludF9vbmVfbGluZV9zdW1t
YXJ5KHJlc3VsdF9zdW1tYXJ5LnRvdGFsIC0gcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkuZXhw
ZWN0ZWQgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9za2lwcywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkKQotICAgICAgICBz
ZWxmLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMoc3VtbWFyaXplZF9yZXN1bHRzKQogCiAgICAg
ZGVmIF9wcmludF90aW1pbmdfc3RhdGlzdGljcyhzZWxmLCB0b3RhbF90aW1lLCByZXN1bHRfc3Vt
bWFyeSk6CiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCJUZXN0IHRpbWluZzoiKQpAQCAtMjc1
LDQ0ICsyNjIsNiBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3ByaW50
X2RlYnVnKCIgIFN0YW5kYXJkIGRldjogICAgJTYuM2YiICUgc3RkX2RldmlhdGlvbikKICAgICAg
ICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCiAKLSAgICBkZWYgX3ByaW50X3Jlc3VsdF9zdW1tYXJ5
KHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKLSAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMuZGVi
dWdfcnd0X2xvZ2dpbmc6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBmYWlsZWQgPSBy
ZXN1bHRfc3VtbWFyeS50b3RhbF9mYWlsdXJlcwotICAgICAgICB0b3RhbCA9IHJlc3VsdF9zdW1t
YXJ5LnRvdGFsIC0gcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMKLSAgICAgICAgcGFzc2Vk
ID0gdG90YWwgLSBmYWlsZWQgLSByZXN1bHRfc3VtbWFyeS5yZW1haW5pbmcKLSAgICAgICAgcGN0
X3Bhc3NlZCA9IDAuMAotICAgICAgICBpZiB0b3RhbCA+IDA6Ci0gICAgICAgICAgICBwY3RfcGFz
c2VkID0gZmxvYXQocGFzc2VkKSAqIDEwMCAvIHRvdGFsCi0KLSAgICAgICAgc2VsZi5fcHJpbnRf
Zm9yX2JvdCgiPT4gUmVzdWx0czogJWQvJWQgdGVzdHMgcGFzc2VkICglLjFmJSUpIiAlIChwYXNz
ZWQsIHRvdGFsLCBwY3RfcGFzc2VkKSkKLSAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiIikK
LSAgICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkocmVzdWx0X3N1bW1hcnks
IHRlc3RfZXhwZWN0YXRpb25zLk5PVywgIlRlc3RzIHRvIGJlIGZpeGVkIikKLQotICAgICAgICBz
ZWxmLl9wcmludF9mb3JfYm90KCIiKQotICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgYmUgc2tp
cHBpbmcgYW55dGhpbmcgbWFya2VkIFdPTlRGSVgsIHNvIHdlIHNob3VsZG4ndCBib3RoZXIgbG9n
Z2luZyB0aGVzZSBzdGF0cy4KLSAgICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50
cnkocmVzdWx0X3N1bW1hcnksIHRlc3RfZXhwZWN0YXRpb25zLldPTlRGSVgsCi0gICAgICAgICAg
ICAiVGVzdHMgdGhhdCB3aWxsIG9ubHkgYmUgZml4ZWQgaWYgdGhleSBjcmFzaCAoV09OVEZJWCki
KQotICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQotCi0gICAgZGVmIF9wcmludF9yZXN1
bHRfc3VtbWFyeV9lbnRyeShzZWxmLCByZXN1bHRfc3VtbWFyeSwgdGltZWxpbmUsIGhlYWRpbmcp
OgotICAgICAgICB0b3RhbCA9IGxlbihyZXN1bHRfc3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0
aW1lbGluZV0pCi0gICAgICAgIG5vdF9wYXNzaW5nID0gKHRvdGFsIC0KLSAgICAgICAgICAgbGVu
KHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X2V4cGVjdGF0aW9uW3Rlc3RfZXhwZWN0YXRpb25zLlBB
U1NdICYKLSAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3Rp
bWVsaW5lXSkpCi0gICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIj0+ICVzICglZCk6IiAlICho
ZWFkaW5nLCBub3RfcGFzc2luZykpCi0KLSAgICAgICAgZm9yIHJlc3VsdCBpbiBUZXN0RXhwZWN0
YXRpb25zLkVYUEVDVEFUSU9OX09SREVSOgotICAgICAgICAgICAgaWYgcmVzdWx0IGluICh0ZXN0
X2V4cGVjdGF0aW9ucy5QQVNTLCB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQKToKLSAgICAgICAgICAg
ICAgICBjb250aW51ZQotICAgICAgICAgICAgcmVzdWx0cyA9IChyZXN1bHRfc3VtbWFyeS50ZXN0
c19ieV9leHBlY3RhdGlvbltyZXN1bHRdICYKLSAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGltZWxpbmVdKQotICAgICAgICAgICAgZGVzYyA9
IFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TW3Jlc3VsdF0KLSAgICAg
ICAgICAgIGlmIG5vdF9wYXNzaW5nIGFuZCBsZW4ocmVzdWx0cyk6Ci0gICAgICAgICAgICAgICAg
cGN0ID0gbGVuKHJlc3VsdHMpICogMTAwLjAgLyBub3RfcGFzc2luZwotICAgICAgICAgICAgICAg
IHNlbGYuX3ByaW50X2Zvcl9ib3QoIiAgJTVkICUtMjRzICglNC4xZiUlKSIgJSAobGVuKHJlc3Vs
dHMpLCBkZXNjLCBwY3QpKQotCiAgICAgZGVmIF9wcmludF9vbmVfbGluZV9zdW1tYXJ5KHNlbGYs
IHRvdGFsLCBleHBlY3RlZCwgdW5leHBlY3RlZCk6CiAgICAgICAgIGluY29tcGxldGUgPSB0b3Rh
bCAtIGV4cGVjdGVkIC0gdW5leHBlY3RlZAogICAgICAgICBpbmNvbXBsZXRlX3N0ciA9ICcnCkBA
IC00MjMsODMgKzM3Miw2IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgICAgIHJl
bHBhdGggPSAnPG5vbmU+JwogICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCcgICVzOiAlcycg
JSAoZXh0ZW5zaW9uWzE6XSwgcmVscGF0aCkpCiAKLSAgICBkZWYgX3ByaW50X3VuZXhwZWN0ZWRf
cmVzdWx0cyhzZWxmLCBzdW1tYXJpemVkX3Jlc3VsdHMpOgotICAgICAgICAjIFByaW50cyB0byB0
aGUgYnVpbGRib3Qgc3RyZWFtCi0gICAgICAgIHBhc3NlcyA9IHt9Ci0gICAgICAgIGZsYWt5ID0g
e30KLSAgICAgICAgcmVncmVzc2lvbnMgPSB7fQotCi0gICAgICAgIGRlZiBhZGRfdG9fZGljdF9v
Zl9saXN0cyhkaWN0LCBrZXksIHZhbHVlKToKLSAgICAgICAgICAgIGRpY3Quc2V0ZGVmYXVsdChr
ZXksIFtdKS5hcHBlbmQodmFsdWUpCi0KLSAgICAgICAgZGVmIGFkZF9yZXN1bHQodGVzdCwgcmVz
dWx0cywgcGFzc2VzPXBhc3NlcywgZmxha3k9Zmxha3ksIHJlZ3Jlc3Npb25zPXJlZ3Jlc3Npb25z
KToKLSAgICAgICAgICAgIGFjdHVhbCA9IHJlc3VsdHNbJ2FjdHVhbCddLnNwbGl0KCIgIikKLSAg
ICAgICAgICAgIGV4cGVjdGVkID0gcmVzdWx0c1snZXhwZWN0ZWQnXS5zcGxpdCgiICIpCi0KLSAg
ICAgICAgICAgIGRlZiBpc19leHBlY3RlZChyZXN1bHQpOgotICAgICAgICAgICAgICAgIHJldHVy
biAocmVzdWx0IGluIGV4cGVjdGVkKSBvciAocmVzdWx0IGluICgnVEVYVCcsICdJTUFHRStURVhU
JykgYW5kICdGQUlMJyBpbiBleHBlY3RlZCkKLQotICAgICAgICAgICAgaWYgYWxsKGlzX2V4cGVj
dGVkKGFjdHVhbF9yZXN1bHQpIGZvciBhY3R1YWxfcmVzdWx0IGluIGFjdHVhbCk6Ci0gICAgICAg
ICAgICAgICAgIyBEb24ndCBwcmludCBhbnl0aGluZyBmb3IgdGVzdHMgdGhhdCByYW4gYXMgZXhw
ZWN0ZWQuCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgIGlmIGFjdHVhbCA9
PSBbJ1BBU1MnXToKLSAgICAgICAgICAgICAgICBpZiAnQ1JBU0gnIGluIGV4cGVjdGVkOgotICAg
ICAgICAgICAgICAgICAgICBhZGRfdG9fZGljdF9vZl9saXN0cyhwYXNzZXMsICdFeHBlY3RlZCB0
byBjcmFzaCwgYnV0IHBhc3NlZCcsIHRlc3QpCi0gICAgICAgICAgICAgICAgZWxpZiAnVElNRU9V
VCcgaW4gZXhwZWN0ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIGFkZF90b19kaWN0X29mX2xpc3Rz
KHBhc3NlcywgJ0V4cGVjdGVkIHRvIHRpbWVvdXQsIGJ1dCBwYXNzZWQnLCB0ZXN0KQotICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGFkZF90b19kaWN0X29mX2xpc3Rz
KHBhc3NlcywgJ0V4cGVjdGVkIHRvIGZhaWwsIGJ1dCBwYXNzZWQnLCB0ZXN0KQotICAgICAgICAg
ICAgZWxpZiBsZW4oYWN0dWFsKSA+IDE6Ci0gICAgICAgICAgICAgICAgIyBXZSBncm91cCBmbGFr
eSB0ZXN0cyBieSB0aGUgZmlyc3QgYWN0dWFsIHJlc3VsdCB3ZSBnb3QuCi0gICAgICAgICAgICAg
ICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMoZmxha3ksIGFjdHVhbFswXSwgdGVzdCkKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgYWRkX3RvX2RpY3Rfb2ZfbGlzdHMocmVncmVzc2lv
bnMsIHJlc3VsdHNbJ2FjdHVhbCddLCB0ZXN0KQotCi0gICAgICAgIHJlc3VsdHNqc29ucGFyc2Vy
LmZvcl9lYWNoX3Rlc3Qoc3VtbWFyaXplZF9yZXN1bHRzWyd0ZXN0cyddLCBhZGRfcmVzdWx0KQot
Ci0gICAgICAgIGlmIGxlbihwYXNzZXMpIG9yIGxlbihmbGFreSkgb3IgbGVuKHJlZ3Jlc3Npb25z
KToKLSAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiIpCi0gICAgICAgIGlmIGxlbihw
YXNzZXMpOgotICAgICAgICAgICAgZm9yIGtleSwgdGVzdHMgaW4gcGFzc2VzLml0ZXJpdGVtcygp
OgotICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiVzOiAoJWQpIiAlIChrZXks
IGxlbih0ZXN0cykpKQotICAgICAgICAgICAgICAgIHRlc3RzLnNvcnQoKQotICAgICAgICAgICAg
ICAgIGZvciB0ZXN0IGluIHRlc3RzOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9wcmludF9m
b3JfYm90KCIgICVzIiAlIHRlc3QpCi0gICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2Jv
dCgiIikKLSAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiIpCi0KLSAgICAgICAgaWYg
bGVuKGZsYWt5KToKLSAgICAgICAgICAgIGRlc2NyaXB0aW9ucyA9IFRlc3RFeHBlY3RhdGlvbnMu
RVhQRUNUQVRJT05fREVTQ1JJUFRJT05TCi0gICAgICAgICAgICBmb3Iga2V5LCB0ZXN0cyBpbiBm
bGFreS5pdGVyaXRlbXMoKToKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBUZXN0RXhwZWN0YXRp
b25zLkVYUEVDVEFUSU9OU1trZXkubG93ZXIoKV0KLSAgICAgICAgICAgICAgICBzZWxmLl9wcmlu
dF9mb3JfYm90KCJVbmV4cGVjdGVkIGZsYWtpbmVzczogJXMgKCVkKSIgJSAoZGVzY3JpcHRpb25z
W3Jlc3VsdF0sIGxlbih0ZXN0cykpKQotICAgICAgICAgICAgICAgIHRlc3RzLnNvcnQoKQotCi0g
ICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6Ci0gICAgICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHJlc3VsdHNqc29ucGFyc2VyLnJlc3VsdF9mb3JfdGVzdChzdW1tYXJpemVkX3Jlc3Vs
dHNbJ3Rlc3RzJ10sIHRlc3QpCi0gICAgICAgICAgICAgICAgICAgIGFjdHVhbCA9IHJlc3VsdFsn
YWN0dWFsJ10uc3BsaXQoIiAiKQotICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IHJlc3Vs
dFsnZXhwZWN0ZWQnXS5zcGxpdCgiICIpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRl
c3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TW2tleS5sb3dlcigpXQotICAgICAgICAgICAgICAg
ICAgICAjIEZJWE1FOiBjbGVhbiB0aGlzIHVwIG9uY2UgdGhlIG9sZCBzeW50YXggaXMgZ29uZQot
ICAgICAgICAgICAgICAgICAgICBuZXdfZXhwZWN0YXRpb25zX2xpc3QgPSBbVGVzdEV4cGVjdGF0
aW9uUGFyc2VyLl9pbnZlcnRlZF9leHBlY3RhdGlvbl90b2tlbnNbZXhwXSBmb3IgZXhwIGluIGxp
c3Qoc2V0KGFjdHVhbCkgfCBzZXQoZXhwZWN0ZWQpKV0KLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fcHJpbnRfZm9yX2JvdCgiICAlcyBbICVzIF0iICUgKHRlc3QsICIgIi5qb2luKG5ld19leHBl
Y3RhdGlvbnNfbGlzdCkpKQotICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiIp
Ci0gICAgICAgICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIiKQotCi0gICAgICAgIGlmIGxlbihy
ZWdyZXNzaW9ucyk6Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbnMgPSBUZXN0RXhwZWN0YXRpb25z
LkVYUEVDVEFUSU9OX0RFU0NSSVBUSU9OUwotICAgICAgICAgICAgZm9yIGtleSwgdGVzdHMgaW4g
cmVncmVzc2lvbnMuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gVGVzdEV4
cGVjdGF0aW9ucy5FWFBFQ1RBVElPTlNba2V5Lmxvd2VyKCldCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fcHJpbnRfZm9yX2JvdCgiUmVncmVzc2lvbnM6IFVuZXhwZWN0ZWQgJXMgKCVkKSIgJSAoZGVz
Y3JpcHRpb25zW3Jlc3VsdF0sIGxlbih0ZXN0cykpKQotICAgICAgICAgICAgICAgIHRlc3RzLnNv
cnQoKQotICAgICAgICAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgotICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9wcmludF9mb3JfYm90KCIgICVzIFsgJXMgXSIgJSAodGVzdCwgVGVzdEV4cGVj
dGF0aW9uUGFyc2VyLl9pbnZlcnRlZF9leHBlY3RhdGlvbl90b2tlbnNba2V5XSkpCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcHJpbnRfZm9yX2JvdCgiIikKLQotICAgICAgICBpZiBsZW4oc3VtbWFy
aXplZF9yZXN1bHRzWyd0ZXN0cyddKSBhbmQgc2VsZi5fb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2lu
ZzoKLSAgICAgICAgICAgIHNlbGYuX3ByaW50X2Zvcl9ib3QoIiVzIiAlICgiLSIgKiA3OCkpCi0K
ICAgICBkZWYgX3ByaW50X3F1aWV0KHNlbGYsIG1zZyk6CiAgICAgICAgIHNlbGYud3JpdGVsbiht
c2cpCiAKQEAgLTUxMSw5ICszODMsNiBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAg
IGlmIHNlbGYuX29wdGlvbnMuZGVidWdfcnd0X2xvZ2dpbmc6CiAgICAgICAgICAgICBzZWxmLndy
aXRlbG4obXNnKQogCi0gICAgZGVmIF9wcmludF9mb3JfYm90KHNlbGYsIG1zZyk6Ci0gICAgICAg
IHNlbGYuX2J1aWxkYm90X3N0cmVhbS53cml0ZShtc2cgKyAiXG4iKQotCiAgICAgZGVmIHdyaXRl
X3VwZGF0ZShzZWxmLCBtc2cpOgogICAgICAgICBzZWxmLl9tZXRlci53cml0ZV91cGRhdGUobXNn
KQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3
cy9wcmludGluZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CmluZGV4IGFhNzk1OTJhM2M5ZTczN2I4NjJk
NDJkMDlkNzlkOGI3M2M3YWNmYjYuLjg1YTRmMGRjY2NmN2E0MjNlMGQ4N2MxYjZjODUzYmE4NzQw
OTAxNWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Zp
ZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CkBAIC04Miw5ICs4Miw4IEBAIGNs
YXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIG5wcm9jID0gMgog
CiAgICAgICAgIHJlZ3VsYXJfb3V0cHV0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgICAgICBi
dWlsZGJvdF9vdXRwdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCi0gICAgICAgIHByaW50ZXIgPSBw
cmludGluZy5QcmludGVyKHNlbGYuX3BvcnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0LCBidWls
ZGJvdF9vdXRwdXQpCi0gICAgICAgIHJldHVybiBwcmludGVyLCByZWd1bGFyX291dHB1dCwgYnVp
bGRib3Rfb3V0cHV0CisgICAgICAgIHByaW50ZXIgPSBwcmludGluZy5QcmludGVyKHNlbGYuX3Bv
cnQsIG9wdGlvbnMsIHJlZ3VsYXJfb3V0cHV0KQorICAgICAgICByZXR1cm4gcHJpbnRlciwgcmVn
dWxhcl9vdXRwdXQKIAogICAgIGRlZiBnZXRfcmVzdWx0KHNlbGYsIHRlc3RfbmFtZSwgcmVzdWx0
X3R5cGU9dGVzdF9leHBlY3RhdGlvbnMuUEFTUywgcnVuX3RpbWU9MCk6CiAgICAgICAgIGZhaWx1
cmVzID0gW10KQEAgLTk0LDI0ICs5MywxNiBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICAgICAgZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJlcy5GYWlsdXJl
Q3Jhc2goKV0KICAgICAgICAgcmV0dXJuIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfbmFt
ZSwgZmFpbHVyZXM9ZmFpbHVyZXMsIHRlc3RfcnVuX3RpbWU9cnVuX3RpbWUpCiAKLSAgICBkZWYg
Z2V0X3Jlc3VsdF9zdW1tYXJ5KHNlbGYsIHRlc3RfbmFtZXMsIGV4cGVjdGF0aW9uc19zdHIpOgot
ICAgICAgICBwb3J0LnRlc3RfZXhwZWN0YXRpb25zID0gbGFtYmRhOiBleHBlY3RhdGlvbnNfc3Ry
Ci0gICAgICAgIHBvcnQudGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzID0gbGFtYmRhOiBOb25l
Ci0gICAgICAgIGV4cGVjdGF0aW9ucyA9IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlv
bnMoc2VsZi5fcG9ydCwgdGVzdF9uYW1lcykKLQotICAgICAgICBycyA9IHJlc3VsdF9zdW1tYXJ5
LlJlc3VsdFN1bW1hcnkoZXhwZWN0YXRpb25zLCBsZW4odGVzdF9uYW1lcykpCi0gICAgICAgIHJl
dHVybiB0ZXN0X25hbWVzLCBycywgZXhwZWN0YXRpb25zCi0KICAgICBkZWYgdGVzdF9jb25maWd1
cmVfYW5kX2NsZWFudXAoc2VsZik6CiAgICAgICAgICMgVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQg
Y2FsbGluZyBjbGVhbnVwIHJlcGVhdGVkbHkgYW5kIGRlbGV0aW5nCiAgICAgICAgICMgdGhlIG9i
amVjdCBpcyBzYWZlLgotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50
ZXIoKQorICAgICAgICBwcmludGVyLCBlcnIgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAg
cHJpbnRlci5jbGVhbnVwKCkKICAgICAgICAgcHJpbnRlci5jbGVhbnVwKCkKICAgICAgICAgcHJp
bnRlciA9IE5vbmUKIAogICAgIGRlZiB0ZXN0X3ByaW50X2NvbmZpZyhzZWxmKToKLSAgICAgICAg
cHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKKyAgICAgICAgcHJpbnRlciwg
ZXJyID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAgICAgICMgRklYTUU6IGl0J3MgbGFtZSB0aGF0
IGkgaGF2ZSB0byBzZXQgdGhlc2Ugb3B0aW9ucyBkaXJlY3RseS4KICAgICAgICAgcHJpbnRlci5f
b3B0aW9ucy5waXhlbF90ZXN0cyA9IFRydWUKICAgICAgICAgcHJpbnRlci5fb3B0aW9ucy5uZXdf
YmFzZWxpbmUgPSBUcnVlCkBAIC0xMzMsMTI4ICsxMjQsMjggQEAgY2xhc3MgIFRlc3RwcmludGVy
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnQmFzZWxpbmUg
c2VhcmNoIHBhdGg6IHRlc3QtbWFjLWxlb3BhcmQgLT4gdGVzdC1tYWMtc25vd2xlb3BhcmQgLT4g
Z2VuZXJpYycgaW4gZXJyLmdldHZhbHVlKCkpCiAKICAgICBkZWYgdGVzdF9wcmludF9vbmVfbGlu
ZV9zdW1tYXJ5KHNlbGYpOgotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3By
aW50ZXIoKQorICAgICAgICBwcmludGVyLCBlcnIgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAg
ICAgcHJpbnRlci5fcHJpbnRfb25lX2xpbmVfc3VtbWFyeSgxLCAxLCAwKQogICAgICAgICBzZWxm
LmFzc2VydFdyaXR0ZW4oZXJyLCBbIlRoZSB0ZXN0IHJhbiBhcyBleHBlY3RlZC5cbiIsICJcbiJd
KQogCi0gICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCisgICAg
ICAgIHByaW50ZXIsIGVyciA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICBwcmludGVyLl9w
cmludF9vbmVfbGluZV9zdW1tYXJ5KDEsIDEsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRl
bihlcnIsIFsiVGhlIHRlc3QgcmFuIGFzIGV4cGVjdGVkLlxuIiwgIlxuIl0pCiAKLSAgICAgICAg
cHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKKyAgICAgICAgcHJpbnRlciwg
ZXJyID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAgICAgIHByaW50ZXIuX3ByaW50X29uZV9saW5l
X3N1bW1hcnkoMiwgMSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWyJcbiIs
ICIxIHRlc3QgcmFuIGFzIGV4cGVjdGVkLCAxIGRpZG4ndDpcbiIsICJcbiJdKQogCi0gICAgICAg
IHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCisgICAgICAgIHByaW50ZXIs
IGVyciA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICBwcmludGVyLl9wcmludF9vbmVfbGlu
ZV9zdW1tYXJ5KDMsIDIsIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsiXG4i
LCAiMiB0ZXN0cyByYW4gYXMgZXhwZWN0ZWQsIDEgZGlkbid0OlxuIiwgIlxuIl0pCiAKLSAgICAg
ICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKKyAgICAgICAgcHJpbnRl
ciwgZXJyID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAgICAgIHByaW50ZXIuX3ByaW50X29uZV9s
aW5lX3N1bW1hcnkoMywgMiwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgWydc
bicsICIyIHRlc3RzIHJhbiBhcyBleHBlY3RlZCAoMSBkaWRuJ3QgcnVuKS5cbiIsICdcbiddKQog
Ci0gICAgZGVmIHRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHNlbGYpOgotICAgICAgICAj
IFRoaXMgcm91dGluZSBpcyB0aGUgb25seSBvbmUgdGhhdCBwcmludHMgc3R1ZmYgdGhhdCB0aGUg
Ym90cwotICAgICAgICAjIGNhcmUgYWJvdXQuCi0gICAgICAgICMKLSAgICAgICAgIyBGSVhNRTog
dGhlcmUncyBzb21lIHdlaXJkIGxheWVyaW5nIGdvaW5nIG9uIGhlcmUuIEl0IHNlZW1zCi0gICAg
ICAgICMgbGlrZSB3ZSBzaG91bGRuJ3QgYmUgYm90aCB1c2luZyBhbiBleHBlY3RhdGlvbnMgc3Ry
aW5nIGFuZAotICAgICAgICAjIGhhdmluZyB0byBzcGVjaWZ5IHdoZXRoZXIgb3Igbm90IHRoZSBy
ZXN1bHQgd2FzIGV4cGVjdGVkLgotICAgICAgICAjIFRoaXMgd2hvbGUgc2V0IG9mIHRlc3RzIHNo
b3VsZCBwcm9iYWJseSBiZSByZXdyaXR0ZW4uCi0gICAgICAgICMKLSAgICAgICAgIyBGSVhNRTog
UGx1cywgdGhlIGZhY3QgdGhhdCB3ZSdyZSBoYXZpbmcgdG8gY2FsbCBpbnRvCi0gICAgICAgICMg
cnVuX3dlYmtpdF90ZXN0cyBpcyBjbGVhcmx5IGEgbGF5ZXJpbmcgaW52ZXJzaW9uLgotICAgICAg
ICBkZWYgZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyhleHBlY3RlZCwgcGFzc2luZywgZmxha3kpOgot
ICAgICAgICAgICAgIiIiUmV0dXJuIGFuIHVuZXhwZWN0ZWQgcmVzdWx0cyBzdW1tYXJ5IG1hdGNo
aW5nIHRoZSBpbnB1dCBkZXNjcmlwdGlvbi4KLQotICAgICAgICAgICAgVGhlcmUgYXJlIGEgbG90
IG9mIGRpZmZlcmVudCBjb21iaW5hdGlvbnMgb2YgdGVzdCByZXN1bHRzIHRoYXQKLSAgICAgICAg
ICAgIGNhbiBiZSB0ZXN0ZWQ7IHRoaXMgcm91dGluZSBwcm9kdWNlcyB2YXJpb3VzIGNvbWJpbmF0
aW9ucyBiYXNlZAotICAgICAgICAgICAgb24gdGhlIHZhbHVlcyBvZiB0aGUgaW5wdXQgZmxhZ3Mu
Ci0KLSAgICAgICAgICAgIEFyZ3MKLSAgICAgICAgICAgICAgICBleHBlY3RlZDogd2hldGhlciB0
aGUgdGVzdHMgcmFuIGFzIGV4cGVjdGVkCi0gICAgICAgICAgICAgICAgcGFzc2luZzogd2hldGhl
ciB0aGUgdGVzdHMgc2hvdWxkIGFsbCBwYXNzCi0gICAgICAgICAgICAgICAgZmxha3k6IHdoZXRo
ZXIgdGhlIHRlc3RzIHNob3VsZCBiZSBmbGFreSAoaWYgRmFsc2UsIHRoZXkKLSAgICAgICAgICAg
ICAgICAgICAgcHJvZHVjZSB0aGUgc2FtZSByZXN1bHRzIG9uIGJvdGggcnVuczsgaWYgVHJ1ZSwg
dGhleQotICAgICAgICAgICAgICAgICAgICBhbGwgcGFzcyBvbiB0aGUgc2Vjb25kIHJ1bikuCi0K
LSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgdGVzdF9pc19zbG93ID0gRmFsc2UKLSAgICAg
ICAgICAgIHBhdGhzLCBycywgZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1hcnkodGVzdHMsIGV4
cGVjdGF0aW9ucykKLSAgICAgICAgICAgIGlmIGV4cGVjdGVkOgotICAgICAgICAgICAgICAgIHJz
LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9u
cy5QQVNTKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgICAgICAgICBycy5hZGQo
c2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4
cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgICAg
ICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1s
JywgdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQotICAg
ICAgICAgICAgZWxpZiBwYXNzaW5nOgotICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9y
ZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAg
ICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1l
b3V0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgICAgICAgICBycy5h
ZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIGV4cGVj
dGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJz
LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9u
cy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgICAgICAgICBycy5h
ZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0
X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAg
ICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRt
bCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQot
ICAgICAgICAgICAgcmV0cnkgPSBOb25lCi0gICAgICAgICAgICBpZiBmbGFreToKLSAgICAgICAg
ICAgICAgICBwYXRocywgcmV0cnksIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3Rz
LCBleHBlY3RhdGlvbnMpCi0gICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3Vs
dCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICAg
ICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5o
dG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2Vs
Zi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIFRydWUsIHRlc3Rf
aXNfc2xvdykKLSAgICAgICAgICAgIHJldHVybiBtYW5hZ2VyLnN1bW1hcml6ZV9yZXN1bHRzKHNl
bGYuX3BvcnQsIGV4cCwgcnMsIHJldHJ5KQotCi0gICAgICAgIHRlc3RzID0gWydwYXNzZXMvdGV4
dC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsICdmYWlsdXJlcy9leHBl
Y3RlZC9jcmFzaC5odG1sJ10KLSAgICAgICAgZXhwZWN0YXRpb25zID0gJycKLQotICAgICAgICBw
cmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQotCi0gICAgICAgICMgdGVzdCBl
dmVyeXRoaW5nIHJ1bm5pbmcgYXMgZXhwZWN0ZWQKLSAgICAgICAgdXIgPSBnZXRfdW5leHBlY3Rl
ZF9yZXN1bHRzKGV4cGVjdGVkPVRydWUsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZhbHNlKQotICAg
ICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RW1wdHkoZXJyKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKLQotICAgICAg
ICAjIHRlc3QgZmFpbHVyZXMKLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9w
cmludGVyKCkKLSAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVjdGVkPUZh
bHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKLSAgICAgICAgcHJpbnRlci5fcHJpbnRf
dW5leHBlY3RlZF9yZXN1bHRzKHVyKQotICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLSAg
ICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShvdXQpCi0KLSAgICAgICAgIyB0ZXN0IHVuZXhwZWN0
ZWQgZmxha3kKLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkK
LSAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNz
aW5nPUZhbHNlLCBmbGFreT1UcnVlKQotICAgICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVk
X3Jlc3VsdHModXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQotICAgICAgICBzZWxm
LmFzc2VydE5vdEVtcHR5KG91dCkKLQotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYu
Z2V0X3ByaW50ZXIoKQotICAgICAgICB1ciA9IGdldF91bmV4cGVjdGVkX3Jlc3VsdHMoZXhwZWN0
ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZhbHNlKQotICAgICAgICBwcmludGVyLl9w
cmludF91bmV4cGVjdGVkX3Jlc3VsdHModXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJy
KQotICAgICAgICBzZWxmLmFzc2VydE5vdEVtcHR5KG91dCkKLQotICAgICAgICBleHBlY3RhdGlv
bnMgPSAiIiIKLUJVR1ggOiBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sID0gQ1JBU0gKLUJV
R1ggOiBmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwgPSBUSU1FT1VUCi0iIiIKLSAgICAg
ICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkKLSAgICAgICAgdXIgPSBn
ZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFr
eT1GYWxzZSkKLSAgICAgICAgcHJpbnRlci5fcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVyKQot
ICAgICAgICBzZWxmLmFzc2VydEVtcHR5KGVycikKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0
eShvdXQpCi0KLSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKCkK
LSAgICAgICAgdXIgPSBnZXRfdW5leHBlY3RlZF9yZXN1bHRzKGV4cGVjdGVkPUZhbHNlLCBwYXNz
aW5nPVRydWUsIGZsYWt5PUZhbHNlKQotICAgICAgICBwcmludGVyLl9wcmludF91bmV4cGVjdGVk
X3Jlc3VsdHModXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkoZXJyKQotICAgICAgICBzZWxm
LmFzc2VydE5vdEVtcHR5KG91dCkKLQotICAgIGRlZiB0ZXN0X3ByaW50X3VuZXhwZWN0ZWRfcmVz
dWx0c19idWlsZGJvdChzZWxmKToKLSAgICAgICAgIyBGSVhNRTogVGVzdCB0aGF0IHByaW50X3Vu
ZXhwZWN0ZWRfcmVzdWx0cygpIHByb2R1Y2VzIHRoZSBwcmludGVyIHRoZQotICAgICAgICAjIGJ1
aWxkYm90IGlzIGV4cGVjdGluZy4KLSAgICAgICAgcGFzcwotCiAgICAgZGVmIHRlc3RfdGVzdF9z
dGF0dXNfbGluZShzZWxmKToKLSAgICAgICAgcHJpbnRlciwgXywgXyA9IHNlbGYuZ2V0X3ByaW50
ZXIoKQorICAgICAgICBwcmludGVyLCBfID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAgICAgIHBy
aW50ZXIuX21ldGVyLm51bWJlcl9vZl9jb2x1bW5zID0gbGFtYmRhOiA4MAogICAgICAgICBhY3R1
YWwgPSBwcmludGVyLl90ZXN0X3N0YXR1c19saW5lKCdmYXN0L2RvbS9IVE1MRm9ybUVsZW1lbnQv
YXNzb2NpYXRlZC1lbGVtZW50cy1hZnRlci1pbmRleC1hc3NlcnRpb24tZmFpbDEuaHRtbCcsICcg
cGFzc2VkJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4MCwgbGVuKGFjdHVhbCkpCkBAIC0y
ODAsNyArMTcxLDcgQEAgQlVHWCA6IGZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCA9IFRJ
TUVPVVQKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsICdbMC8wXSBhc3NvY2lhdGVk
LWVsZW1lbnRzLWFmdGVyLWluZGV4LWFzc2VydGlvbi1mYWlsMS5odG1sIHBhc3NlZCcpCiAKICAg
ICBkZWYgdGVzdF9kZXRhaWxzKHNlbGYpOgotICAgICAgICBwcmludGVyLCBlcnIsIF8gPSBzZWxm
LmdldF9wcmludGVyKFsnLS1kZXRhaWxzJ10pCisgICAgICAgIHByaW50ZXIsIGVyciA9IHNlbGYu
Z2V0X3ByaW50ZXIoWyctLWRldGFpbHMnXSkKICAgICAgICAgcmVzdWx0ID0gc2VsZi5nZXRfcmVz
dWx0KCdwYXNzZXMvaW1hZ2UuaHRtbCcpCiAgICAgICAgIHByaW50ZXIucHJpbnRfc3RhcnRlZF90
ZXN0KCdwYXNzZXMvaW1hZ2UuaHRtbCcpCiAgICAgICAgIHByaW50ZXIucHJpbnRfZmluaXNoZWRf
dGVzdChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBleHBfc3RyPScnLCBnb3Rfc3RyPScnKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>