<?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>311360</bug_id>
          
          <creation_ts>2026-04-02 10:56:32 -0700</creation_ts>
          <short_desc>REGRESSION(309933@main): it is causing lot of false positives on the EWS.</short_desc>
          <delta_ts>2026-04-02 11:00:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>310315</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>clopez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2196342</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-04-02 10:56:32 -0700</bug_when>
    <thetext>https://commits.webkit.org/309933@main introduced a regression:
it is causing lot of false positives on the EWS.

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2196344</commentid>
    <comment_count>1</comment_count>
      <attachid>478909</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-04-02 10:56:41 -0700</bug_when>
    <thetext>Created attachment 478909
REVERT of 309933@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2196346</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-04-02 10:59:20 -0700</bug_when>
    <thetext>Committed 310452@main (de8da20647c0): &lt;https://commits.webkit.org/310452@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 478909.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2196347</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-04-02 11:00:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/173947491&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>478909</attachid>
            <date>2026-04-02 10:56:41 -0700</date>
            <delta_ts>2026-04-02 10:59:21 -0700</delta_ts>
            <desc>REVERT of 309933@main</desc>
            <filename>bug-311360-20260402175640.patch</filename>
            <type>text/plain</type>
            <size>69438</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSBhZWQ5MzQxZTlhY2Q2YWExYzNkNWI1NmRlODVjMmM0NWIyYzBhYjRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUaHUsIDIgQXByIDIwMjYgMTc6NTY6MzkgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMzA5OTMzQG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzExMzYwCgppdCBpcyBjYXVzaW5nIGxvdCBvZiBmYWxzZSBwb3Np
dGl2ZXMgb24gdGhlIEVXUy4KClJldmVydGVkIGNoYW5nZXNldDoKCiJbV0tDSV1bV1BFXVtHVEtd
IE1ha2UgdGhlIHN0ZXBzIGZvciBHVEsvV1BFIFdLMiB0ZXN0aW5nIG9uIHRoZSBFV1MgbGVzcyBs
aWtlbHkgdG8gbWFyayBhcyBnb29kIHBhdGNoZXMgaW50cm9kdWNpbmcgbmV3IGZsYWtlcy4iCmh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAzMTUKaHR0cHM6Ly9jb21t
aXRzLndlYmtpdC5vcmcvMzA5OTMzQG1haW4KLS0tCiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxk
L3N0ZXBzLnB5ICAgICAgICAgIHwgMjczICsrKysrKysrKysrKysrLS0tLS0KIFRvb2xzL0NJU3Vw
cG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkgfCAyODEgKysrKysrKysrKysrKysrLS0t
LS0KIDIgZmlsZXMgY2hhbmdlZCwgNDE2IGluc2VydGlvbnMoKyksIDEzOCBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5IGIvVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQppbmRleCBiMzAwM2FlZGI1MWUuLjQ1Y2JmNzU0
ZTUzZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQorKysg
Yi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC0xMDksNyArMTA5LDYgQEAg
Y2xhc3MgUGFyc2VCeUxpbmVMb2dPYnNlcnZlcihsb2dvYnNlcnZlci5MaW5lQ29uc3VtZXJMb2dP
YnNlcnZlcik6CiAgICAgICAgICAgICByZXR1cm4KIAogCi0jIEJ1aWxkYm90IG1lc3NhZ2VzIGFi
b3V0IHRpbWVvdXQgcmVhY2hlZCBhcHBlYXIgb24gdGhlIGhlYWRlciBzdHJlYW0gb2YgQnVmZmVy
TG9nCiBjbGFzcyBCdWZmZXJMb2dIZWFkZXJPYnNlcnZlcihsb2dvYnNlcnZlci5CdWZmZXJMb2dP
YnNlcnZlcik6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgpAQCAtNDIzOSw3
ICs0MjM4LDcgQEAgY2xhc3MgUnVuV2ViS2l0VGVzdHMoc2hlbGwuVGVzdCwgQWRkVG9Mb2dNaXhp
biwgU2hlbGxNaXhpbik6CiAgICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIEBkZWZlci5pbmxp
bmVDYWxsYmFja3MKLSAgICBkZWYgcnVuKHNlbGYsIEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9QnVm
ZmVyTG9nSGVhZGVyT2JzZXJ2ZXIpOgorICAgIGRlZiBydW4oc2VsZiwgQnVmZmVyTG9nT2JzZXJ2
ZXJDbGFzcz1sb2dvYnNlcnZlci5CdWZmZXJMb2dPYnNlcnZlcik6CiAgICAgICAgIHNlbGYubG9n
X29ic2VydmVyID0gQnVmZmVyTG9nT2JzZXJ2ZXJDbGFzcyh3YW50U3RkZXJyPVRydWUpCiAgICAg
ICAgIHNlbGYuYWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2ZXIpCiAgICAg
ICAgIHNlbGYubG9nX29ic2VydmVyX2pzb24gPSBsb2dvYnNlcnZlci5CdWZmZXJMb2dPYnNlcnZl
cigpCkBAIC00MjUzLDE1ICs0MjUyLDYgQEAgY2xhc3MgUnVuV2ViS2l0VGVzdHMoc2hlbGwuVGVz
dCwgQWRkVG9Mb2dNaXhpbiwgU2hlbGxNaXhpbik6CiAgICAgIyBGSVhNRTogVGhpcyB3aWxsIGJy
ZWFrIGlmIHJ1bi13ZWJraXQtdGVzdHMgY2hhbmdlcyBpdHMgZGVmYXVsdCBsb2cgZm9ybWF0dGVy
LgogICAgIG5yd3RfbG9nX21lc3NhZ2VfcmVnZXhwID0gcmUuY29tcGlsZShyJ1xkezJ9OlxkezJ9
OlxkezJ9KFwuXGQrKT9ccytcZCtccysoP1A8bWVzc2FnZT4uKiknKQogCi0gICAgZGVmIF9kaWRf
Y29tbWFuZF90aW1lZF9vdXQoc2VsZiwgbG9nSGVhZGVyc1RleHQpOgotICAgICAgICB0aW1lZF9v
dXRfbGluZV9zdGFydCA9IGYnY29tbWFuZCB0aW1lZCBvdXQ6IHtzZWxmLnRpbWVvdXR9IHNlY29u
ZHMgZWxhcHNlZCBydW5uaW5nJwotICAgICAgICB0aW1lZF9vdXRfbGluZV9lbmQgPSAnYXR0ZW1w
dGluZyB0byBraWxsJwotICAgICAgICBmb3IgbGluZSBpbiBsb2dIZWFkZXJzVGV4dC5zcGxpdGxp
bmVzKCk6Ci0gICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCi0gICAgICAgICAgICBpZiBs
aW5lLnN0YXJ0c3dpdGgodGltZWRfb3V0X2xpbmVfc3RhcnQpIGFuZCBsaW5lLmVuZHN3aXRoKHRp
bWVkX291dF9saW5lX2VuZCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAg
cmV0dXJuIEZhbHNlCi0KICAgICBkZWYgX3N0cmlwX3B5dGhvbl9sb2dnaW5nX3ByZWZpeChzZWxm
LCBsaW5lKToKICAgICAgICAgbWF0Y2hfb2JqZWN0ID0gc2VsZi5ucnd0X2xvZ19tZXNzYWdlX3Jl
Z2V4cC5tYXRjaChsaW5lKQogICAgICAgICBpZiBtYXRjaF9vYmplY3Q6CkBAIC00MzE5LDggKzQz
MDksNiBAQCBjbGFzcyBSdW5XZWJLaXRUZXN0cyhzaGVsbC5UZXN0LCBBZGRUb0xvZ01peGluLCBT
aGVsbE1peGluKToKICAgICAgICAgICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5f
ZmFpbHVyZXNfZmlsdGVyZWQnLCBzb3J0ZWQoc2VsZi5mYWlsaW5nX3Rlc3RzX2ZpbHRlcmVkKSkK
ICAgICAgICAgICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdyZXN1bHRzLWRiX2ZpcnN0X3J1bl9w
cmVfZXhpc3RpbmcnLCBzb3J0ZWQoc2VsZi5wcmVleGlzdGluZ19mYWlsdXJlc19pbl9yZXN1bHRz
X2RiKSkKIAotICAgICAgICBjb21tYW5kX3RpbWVkb3V0ID0gc2VsZi5fZGlkX2NvbW1hbmRfdGlt
ZWRfb3V0KHNlbGYubG9nX29ic2VydmVyLmdldEhlYWRlcnMoKSkKLSAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnZmlyc3RfcnVuX3RpbWVkb3V0JywgY29tbWFuZF90aW1lZG91dCkKICAgICAgICAg
c2VsZi5fcGFyc2VSdW5XZWJLaXRUZXN0c091dHB1dChsb2dUZXh0KQogCiAgICAgQGRlZmVyLmlu
bGluZUNhbGxiYWNrcwpAQCAtNDM4NCwxMCArNDM3Miw2IEBAIGNsYXNzIFJ1bldlYktpdFRlc3Rz
KHNoZWxsLlRlc3QsIEFkZFRvTG9nTWl4aW4sIFNoZWxsTWl4aW4pOgogCiAgICAgICAgIHJldHVy
biByZXN1bHQKIAotICAgIGRlZiBfbmV4dF9zdGVwc19mb3JfcGxhdGZvcm0oc2VsZiwgcGxhdGZv
cm0pOgotICAgICAgICAjIG1ldGhvZCBvdmVycmlkZW4gaW4gc3ViY2xhc3MgUnVuV2ViS2l0VGVz
dHNSZWRUcmVlCi0gICAgICAgIHJldHVybiBbXQotCiAgICAgZGVmIGV2YWx1YXRlQ29tbWFuZChz
ZWxmLCBjbWQpOgogICAgICAgICByYyA9IHNlbGYuZXZhbHVhdGVSZXN1bHQoY21kKQogICAgICAg
ICBwcmV2aW91c19idWlsZF9zdW1tYXJ5ID0gc2VsZi5nZXRQcm9wZXJ0eSgnYnVpbGRfc3VtbWFy
eScsICcnKQpAQCAtNDQzMSw5ICs0NDE1LDcgQEAgY2xhc3MgUnVuV2ViS2l0VGVzdHMoc2hlbGwu
VGVzdCwgQWRkVG9Mb2dNaXhpbiwgU2hlbGxNaXhpbik6CiAgICAgICAgICAgICAgICAgRXh0cmFj
dFRlc3RSZXN1bHRzKCksCiAgICAgICAgICAgICAgICAgVmFsaWRhdGVDaGFuZ2UodmVyaWZ5QnVn
Q2xvc2VkPUZhbHNlLCBhZGRVUkxzPUZhbHNlKSwKICAgICAgICAgICAgIF0KLSAgICAgICAgICAg
IGlmIHBsYXRmb3JtIGluIFsnZ3RrJywgJ3dwZSddOgotICAgICAgICAgICAgICAgIHN0ZXBzX3Rv
X2FkZCArPSBzZWxmLl9uZXh0X3N0ZXBzX2Zvcl9wbGF0Zm9ybShwbGF0Zm9ybSkKLSAgICAgICAg
ICAgIGVsaWYgR2l0SHViLk5PX0ZBSUxVUkVfTElNSVRTX0xBQkVMIG5vdCBpbiBzZWxmLmdldFBy
b3BlcnR5KCdnaXRodWJfbGFiZWxzJywgW10pOgorICAgICAgICAgICAgaWYgR2l0SHViLk5PX0ZB
SUxVUkVfTElNSVRTX0xBQkVMIG5vdCBpbiBzZWxmLmdldFByb3BlcnR5KCdnaXRodWJfbGFiZWxz
JywgW10pOgogICAgICAgICAgICAgICAgIHN0ZXBzX3RvX2FkZCArPSBbCiAgICAgICAgICAgICAg
ICAgICAgIEtpbGxPbGRQcm9jZXNzZXMoKSwKICAgICAgICAgICAgICAgICAgICAgUmVSdW5XZWJL
aXRUZXN0cygpLApAQCAtNDcyMyw3ICs0NzA1LDYgQEAgY2xhc3MgUnVuV2ViS2l0VGVzdHNXaXRo
b3V0Q2hhbmdlKFJ1bldlYktpdFRlc3RzKToKIAogICAgIGRlZiBldmFsdWF0ZUNvbW1hbmQoc2Vs
ZiwgY21kKToKICAgICAgICAgcmMgPSBzaGVsbC5UZXN0LmV2YWx1YXRlQ29tbWFuZChzZWxmLCBj
bWQpCi0gICAgICAgIHBsYXRmb3JtID0gc2VsZi5nZXRQcm9wZXJ0eSgncGxhdGZvcm0nKQogICAg
ICAgICBzdGVwc190b19hZGQgPSBbXQogCiAgICAgICAgIGlmIFNIT1VMRF9GSUxURVJfTE9HUyBp
cyBUcnVlOgpAQCAtNDczOSwxMyArNDcyMCw3IEBAIGNsYXNzIFJ1bldlYktpdFRlc3RzV2l0aG91
dENoYW5nZShSdW5XZWJLaXRUZXN0cyk6CiAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlw
ZT0ndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgXQotCi0gICAg
ICAgIHN0ZXBzX3RvX2FkZCArPSBbCi0gICAgICAgICAgICBBcmNoaXZlVGVzdFJlc3VsdHMoKSwK
LSAgICAgICAgICAgIFVwbG9hZFRlc3RSZXN1bHRzKGlkZW50aWZpZXI9J2NsZWFuLXRyZWUnKSwK
LSAgICAgICAgICAgIEV4dHJhY3RUZXN0UmVzdWx0cyhpZGVudGlmaWVyPSdjbGVhbi10cmVlJyks
Ci0gICAgICAgICAgICBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZSgpIGlmIHBsYXRm
b3JtIGluIFsnZ3RrJywgJ3dwZSddIGVsc2UgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cygpCi0g
ICAgICAgIF0KKyAgICAgICAgc3RlcHNfdG9fYWRkICs9IFtBcmNoaXZlVGVzdFJlc3VsdHMoKSwg
VXBsb2FkVGVzdFJlc3VsdHMoaWRlbnRpZmllcj0nY2xlYW4tdHJlZScpLCBFeHRyYWN0VGVzdFJl
c3VsdHMoaWRlbnRpZmllcj0nY2xlYW4tdHJlZScpLCBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRz
KCldCiAgICAgICAgIHNlbGYuYnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwKHN0ZXBzX3Rv
X2FkZCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fc3RhdHVzJywg
cmMpCiAgICAgICAgIHJldHVybiByYwpAQCAtNTA4NSw0MiArNTA2MCwxNTggQEAgY2xhc3MgUnVu
V2ViS2l0MVRlc3RzKFJ1bldlYktpdFRlc3RzKToKIAogCiAjIFRoaXMgaXMgYSBzcGVjaWFsaXpl
ZCBjbGFzcyBkZXNpZ25lZCB0byBjb3BlIHdpdGggYSB0cmVlIHRoYXQgaXMgbm90IGFsd2F5cyBn
cmVlbi4KLSMgSXQgdHJpZXMgaGFyZCB0byBhdm9pZCByZXBvcnRpbmcgYW55IGZhbHNlIHBvc2l0
aXZlLgorIyBJdCB0cmllcyBoYXJkIHRvIGF2b2lkIHJlcG9ydGluZyBhbnkgZmFsc2UgcG9zaXRp
dmUsIHNvIGl0IHdpbGwgb25seSByZXBvcnQgbmV3CisjIGNvbnNpc3RlbnQgZmFpbHVyZXMgKGZh
aWwgYWx3YXlzIHdpdGggdGhlIHBhdGNoIGFuZCBwYXNzIGFsd2F5cyB3aXRob3V0IGl0KS4KIGNs
YXNzIFJ1bldlYktpdFRlc3RzUmVkVHJlZShSdW5XZWJLaXRUZXN0cyk6CiAgICAgRVhJVF9BRlRF
Ul9GQUlMVVJFUyA9IDUwMAogCi0gICAgZGVmIF9uZXh0X3N0ZXBzX2Zvcl9wbGF0Zm9ybShzZWxm
LCBwbGF0Zm9ybSk6Ci0gICAgICAgIHN0ZXBzX3RvX2FkZCA9IFtdCisgICAgZGVmIF9kaWRfY29t
bWFuZF90aW1lZF9vdXQoc2VsZiwgbG9nSGVhZGVyc1RleHQpOgorICAgICAgICB0aW1lZF9vdXRf
bGluZV9zdGFydCA9ICdjb21tYW5kIHRpbWVkIG91dDoge30gc2Vjb25kcyBlbGFwc2VkIHJ1bm5p
bmcnLmZvcm1hdChzZWxmLk1BWF9TRUNPTkRTX1NURVBfUlVOKQorICAgICAgICB0aW1lZF9vdXRf
bGluZV9lbmQgPSAnYXR0ZW1wdGluZyB0byBraWxsJworICAgICAgICBmb3IgbGluZSBpbiBsb2dI
ZWFkZXJzVGV4dC5zcGxpdGxpbmVzKCk6CisgICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgp
CisgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgodGltZWRfb3V0X2xpbmVfc3RhcnQpIGFu
ZCBsaW5lLmVuZHN3aXRoKHRpbWVkX291dF9saW5lX2VuZCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgZXZhbHVhdGVDb21tYW5k
KHNlbGYsIGNtZCk6CiAgICAgICAgIGZpcnN0X3Jlc3VsdHNfZmFpbGluZ190ZXN0cyA9IHNldChz
ZWxmLmdldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbXSkpCiAgICAgICAgIGZpcnN0
X3Jlc3VsdHNfZmxha3lfdGVzdHMgPSBzZXQoc2VsZi5nZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2Zs
YWtpZXMnLCBbXSkpCi0gICAgICAgIGZpcnN0X3J1bl90aW1lZG91dCA9IHNlbGYuZ2V0UHJvcGVy
dHkoJ2ZpcnN0X3J1bl90aW1lZG91dCcsIEZhbHNlKQotICAgICAgICByZXRyeV9jb3VudCA9IGlu
dChzZWxmLmdldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIDApKQotICAgICAgICBzdGVwX3RvX2Fk
ZF93aXRob3V0X3BhdGNoID0gTm9uZQotICAgICAgICBpZiBmaXJzdF9ydW5fdGltZWRvdXQgYW5k
IHJldHJ5X2NvdW50IDwgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUuTUFYX1JFVFJZ
OgotICAgICAgICAgICAgc3RlcHNfdG9fYWRkLmFwcGVuZChBbmFseXplTGF5b3V0VGVzdHNSZXN1
bHRzUmVkVHJlZSgpKQotICAgICAgICBlbGlmIGZpcnN0X3Jlc3VsdHNfZmFpbGluZ190ZXN0czoK
LSAgICAgICAgICAgIHN0ZXBfdG9fYWRkX3dpdGhvdXRfcGF0Y2ggPSBSdW5XZWJLaXRUZXN0c1Jl
cGVhdEZhaWx1cmVzV2l0aG91dENoYW5nZVJlZFRyZWUoKQorICAgICAgICBwbGF0Zm9ybSA9IHNl
bGYuZ2V0UHJvcGVydHkoJ3BsYXRmb3JtJykKKyAgICAgICAgcmMgPSBzZWxmLmV2YWx1YXRlUmVz
dWx0KGNtZCkKKyAgICAgICAgc3RlcHNfdG9fYWRkID0gW10KKworICAgICAgICBpZiBTSE9VTERf
RklMVEVSX0xPR1MgaXMgVHJ1ZToKKyAgICAgICAgICAgIHN0ZXBzX3RvX2FkZCA9IFsKKyAgICAg
ICAgICAgICAgICBHZW5lcmF0ZVMzVVJMKAorICAgICAgICAgICAgICAgICAgICBmIntzZWxmLmdl
dFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nKX0te3NlbGYuZ2V0UHJvcGVydHkoJ2FyY2hGb3JVcGxv
YWQnKX0te3NlbGYuZ2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nKX0te3NlbGYubmFtZX0iLAor
ICAgICAgICAgICAgICAgICAgICBleHRlbnNpb249J3R4dCcsCisgICAgICAgICAgICAgICAgICAg
IGFkZGl0aW9ucz1mJ3tzZWxmLmJ1aWxkLm51bWJlcn0nLAorICAgICAgICAgICAgICAgICAgICBj
b250ZW50X3R5cGU9J3RleHQvcGxhaW4nLAorICAgICAgICAgICAgICAgICksIFVwbG9hZEZpbGVU
b1MzKAorICAgICAgICAgICAgICAgICAgICAnbG9ncy50eHQnLAorICAgICAgICAgICAgICAgICAg
ICBsaW5rcz17c2VsZi5uYW1lOiAnRnVsbCBsb2dzJ30sCisgICAgICAgICAgICAgICAgICAgIGNv
bnRlbnRfdHlwZT0ndGV4dC9wbGFpbicsCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
XQorICAgICAgICBzdGVwc190b19hZGQgKz0gW0FyY2hpdmVUZXN0UmVzdWx0cygpLCBVcGxvYWRU
ZXN0UmVzdWx0cygpLCBFeHRyYWN0VGVzdFJlc3VsdHMoKV0KKyAgICAgICAgaWYgZmlyc3RfcmVz
dWx0c19mYWlsaW5nX3Rlc3RzOgorICAgICAgICAgICAgc3RlcHNfdG9fYWRkLmV4dGVuZChbVmFs
aWRhdGVDaGFuZ2UodmVyaWZ5QnVnQ2xvc2VkPUZhbHNlLCBhZGRVUkxzPUZhbHNlKSwgS2lsbE9s
ZFByb2Nlc3NlcygpLCBSdW5XZWJLaXRUZXN0c1JlcGVhdEZhaWx1cmVzUmVkVHJlZSgpXSkKICAg
ICAgICAgZWxpZiBmaXJzdF9yZXN1bHRzX2ZsYWt5X3Rlc3RzOgogICAgICAgICAgICAgc3RlcHNf
dG9fYWRkLmFwcGVuZChBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZSgpKQorICAgICAg
ICBlbGlmIHJjID09IFNVQ0NFU1Mgb3IgcmMgPT0gV0FSTklOR1M6CisgICAgICAgICAgICBzdGVw
c190b19hZGQgPSBOb25lCisgICAgICAgICAgICBtZXNzYWdlID0gJ1Bhc3NlZCBsYXlvdXQgdGVz
dHMnCisgICAgICAgICAgICBzZWxmLmRlc2NyaXB0aW9uRG9uZSA9IG1lc3NhZ2UKKyAgICAgICAg
ICAgIHNlbGYuYnVpbGQucmVzdWx0cyA9IFNVQ0NFU1MKKyAgICAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ2J1aWxkX3N1bW1hcnknLCBtZXNzYWdlKQogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgIyBXZSBoYXZlIGEgZmFpbHVyZSByZXR1cm4gY29kZSBidXQgbm90IGEgbGlzdCBvZiBmYWls
ZWQgb3IgZmxha3kgdGVzdHMsIHNvIHdlIGNhbid0IHJ1biB0aGUgcmVwZWF0IHN0ZXBzLgogICAg
ICAgICAgICAgIyBJZiB3ZSBhcmUgb24gdGhlIGxhc3QgcmV0cnkgdGhlbiBydW4gdGhlIHdob2xl
IGxheW91dCB0ZXN0cyB3aXRob3V0IHBhdGNoLgogICAgICAgICAgICAgIyBJZiBub3QsIHRoZW4g
Z28gdG8gYW5hbHl6ZS1sYXlvdXQtdGVzdHMtcmVzdWx0cyB3aGVyZSB3ZSB3aWxsIHJldHJ5IGV2
ZXJ5dGhpbmcgaG9waW5nIHRoaXMgd2FzIGEgcmFuZG9tIGZhaWx1cmUuCisgICAgICAgICAgICBy
ZXRyeV9jb3VudCA9IGludChzZWxmLmdldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIDApKQogICAg
ICAgICAgICAgaWYgcmV0cnlfY291bnQgPCBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJl
ZS5NQVhfUkVUUlk6CiAgICAgICAgICAgICAgICAgc3RlcHNfdG9fYWRkLmFwcGVuZChBbmFseXpl
TGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZSgpKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBzdGVwX3RvX2FkZF93aXRob3V0X3BhdGNoID0gUnVuV2ViS2l0VGVzdHNXaXRob3V0
Q2hhbmdlUmVkVHJlZSgpCi0gICAgICAgIGlmIHN0ZXBfdG9fYWRkX3dpdGhvdXRfcGF0Y2g6Ci0g
ICAgICAgICAgICBzdGVwc190b19hZGQgKz0gWworICAgICAgICAgICAgICAgIHN0ZXBzX3RvX2Fk
ZC5leHRlbmQoW1JldmVydEFwcGxpZWRDaGFuZ2VzKCksIENsZWFuV29ya2luZ0RpcmVjdG9yeSgp
XSkKKyAgICAgICAgICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnd3BlJzoKKyAgICAgICAgICAgICAg
ICAgICAgc3RlcHNfdG9fYWRkLmFwcGVuZChJbnN0YWxsV3BlRGVwZW5kZW5jaWVzKCkpCisgICAg
ICAgICAgICAgICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJzoKKyAgICAgICAgICAgICAgICAgICAg
c3RlcHNfdG9fYWRkLmFwcGVuZChJbnN0YWxsR3RrRGVwZW5kZW5jaWVzKCkpCisgICAgICAgICAg
ICAgICAgc3RlcHNfdG9fYWRkLmV4dGVuZChbCisgICAgICAgICAgICAgICAgICAgIENvbXBpbGVX
ZWJLaXRXaXRob3V0Q2hhbmdlKHJldHJ5X2J1aWxkX29uX2ZhaWx1cmU9VHJ1ZSksCisgICAgICAg
ICAgICAgICAgICAgIFZhbGlkYXRlQ2hhbmdlKHZlcmlmeUJ1Z0Nsb3NlZD1GYWxzZSwgYWRkVVJM
cz1GYWxzZSksCisgICAgICAgICAgICAgICAgICAgIFJ1bldlYktpdFRlc3RzV2l0aG91dENoYW5n
ZVJlZFRyZWUoKSwKKyAgICAgICAgICAgICAgICBdKQorICAgICAgICBpZiBzdGVwc190b19hZGQ6
CisgICAgICAgICAgICBzZWxmLmJ1aWxkLmFkZFN0ZXBzQWZ0ZXJDdXJyZW50U3RlcChzdGVwc190
b19hZGQpCisgICAgICAgIHJldHVybiByYworCisKK2NsYXNzIFJ1bldlYktpdFRlc3RzUmVwZWF0
RmFpbHVyZXNSZWRUcmVlKFJ1bldlYktpdFRlc3RzUmVkVHJlZSk6CisgICAgbmFtZSA9ICdsYXlv
dXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzJworICAgIE5VTV9SRVBFQVRTX1BFUl9URVNUID0gMTAK
KyAgICBFWElUX0FGVEVSX0ZBSUxVUkVTID0gTm9uZQorICAgIE1BWF9TRUNPTkRTX1NURVBfUlVO
ID0gMTgwMDAgICMgNWgKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAg
ICAgIHN1cGVyKCkuX19pbml0X18obWF4VGltZT1zZWxmLk1BWF9TRUNPTkRTX1NURVBfUlVOLCAq
Kmt3YXJncykKKworICAgIGRlZiBzZXRMYXlvdXRUZXN0Q29tbWFuZChzZWxmKToKKyAgICAgICAg
c3VwZXIoKS5zZXRMYXlvdXRUZXN0Q29tbWFuZCgpCisgICAgICAgICMgT24gdGhlIHJlcGVhdCBz
dGVwcyB3ZSBkb24ndCBlbmFibGUgY29yZWR1bXAgZ2VuZXJhdGlvbiAobWFrZXMgdGhlIHJ1biBt
dWNoIHNsb3dlciBpZiB0aGVyZSBhcmUgY3Jhc2hlcykKKyAgICAgICAgc2VsZi5jb21tYW5kID0g
W2FyZyBmb3IgYXJnIGluIHNlbGYuY29tbWFuZCBpZiBhcmcgIT0gJy0tZW5hYmxlLWNvcmUtZHVt
cHMtbm9saW1pdCddCisgICAgICAgIGZpcnN0X3Jlc3VsdHNfZmFpbGluZ190ZXN0cyA9IHNldChz
ZWxmLmdldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbXSkpCisgICAgICAgIHNlbGYu
Y29tbWFuZCArPSBbJy0tZnVsbHktcGFyYWxsZWwnLCAnLS1yZXBlYXQtZWFjaD0lcycgJSBzZWxm
Lk5VTV9SRVBFQVRTX1BFUl9URVNUXSArIHNvcnRlZChmaXJzdF9yZXN1bHRzX2ZhaWxpbmdfdGVz
dHMpCisKKyAgICBkZWYgZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCk6CisgICAgICAgIHdpdGhf
Y2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzID0gc2V0KHNl
bGYuZ2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZs
YWt5X2ZhaWx1cmVzJywgW10pKQorICAgICAgICB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNf
cmVzdWx0c19mbGFraWVzID0gc2V0KHNlbGYuZ2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVh
dF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbXSkpCisgICAgICAgIHdpdGhfY2hhbmdlX3Jl
cGVhdF9mYWlsdXJlc190aW1lZG91dCA9IHNlbGYuZ2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3Jl
cGVhdF9mYWlsdXJlc190aW1lZG91dCcsIEZhbHNlKQorICAgICAgICBmaXJzdF9yZXN1bHRzX2Zs
YWt5X3Rlc3RzID0gc2V0KHNlbGYuZ2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgW10p
KQorICAgICAgICBwbGF0Zm9ybSA9IHNlbGYuZ2V0UHJvcGVydHkoJ3BsYXRmb3JtJykKKyAgICAg
ICAgcmMgPSBzZWxmLmV2YWx1YXRlUmVzdWx0KGNtZCkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3JldGNvZGUnLCByYykKKyAgICAgICAgc3Rl
cHNfdG9fYWRkID0gW10KKworICAgICAgICBpZiBTSE9VTERfRklMVEVSX0xPR1MgaXMgVHJ1ZToK
KyAgICAgICAgICAgIHN0ZXBzX3RvX2FkZCA9IFsKKyAgICAgICAgICAgICAgICBHZW5lcmF0ZVMz
VVJMKAorICAgICAgICAgICAgICAgICAgICBmIntzZWxmLmdldFByb3BlcnR5KCdmdWxsUGxhdGZv
cm0nKX0te3NlbGYuZ2V0UHJvcGVydHkoJ2FyY2hGb3JVcGxvYWQnKX0te3NlbGYuZ2V0UHJvcGVy
dHkoJ2NvbmZpZ3VyYXRpb24nKX0te3NlbGYubmFtZX0iLAorICAgICAgICAgICAgICAgICAgICBl
eHRlbnNpb249J3R4dCcsCisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9ucz1mJ3tzZWxmLmJ1
aWxkLm51bWJlcn0nLAorICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J3RleHQvcGxh
aW4nLAorICAgICAgICAgICAgICAgICksIFVwbG9hZEZpbGVUb1MzKAorICAgICAgICAgICAgICAg
ICAgICAnbG9ncy50eHQnLAorICAgICAgICAgICAgICAgICAgICBsaW5rcz17c2VsZi5uYW1lOiAn
RnVsbCBsb2dzJ30sCisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0ndGV4dC9wbGFp
bicsCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgXQorICAgICAgICBzdGVwc190b19h
ZGQgKz0gW0FyY2hpdmVUZXN0UmVzdWx0cygpLCBVcGxvYWRUZXN0UmVzdWx0cyhpZGVudGlmaWVy
PSdyZXBlYXQtZmFpbHVyZXMnKSwgRXh0cmFjdFRlc3RSZXN1bHRzKGlkZW50aWZpZXI9J3JlcGVh
dC1mYWlsdXJlcycpXQorICAgICAgICBpZiB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19ub25mbGFreV9mYWlsdXJlcyBvciB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfdGlt
ZWRvdXQ6CisgICAgICAgICAgICBzdGVwc190b19hZGQuZXh0ZW5kKFsKKyAgICAgICAgICAgICAg
ICBWYWxpZGF0ZUNoYW5nZSh2ZXJpZnlCdWdDbG9zZWQ9RmFsc2UsIGFkZFVSTHM9RmFsc2UpLAog
ICAgICAgICAgICAgICAgIEtpbGxPbGRQcm9jZXNzZXMoKSwKICAgICAgICAgICAgICAgICBSZXZl
cnRBcHBsaWVkQ2hhbmdlcygpLAogICAgICAgICAgICAgICAgIENsZWFuV29ya2luZ0RpcmVjdG9y
eSgpLAotICAgICAgICAgICAgICAgIEluc3RhbGxHdGtEZXBlbmRlbmNpZXMoKSBpZiBwbGF0Zm9y
bSA9PSAnZ3RrJyBlbHNlIEluc3RhbGxXcGVEZXBlbmRlbmNpZXMoKSwKKyAgICAgICAgICAgIF0p
CisgICAgICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnd3BlJzoKKyAgICAgICAgICAgICAgICBzdGVw
c190b19hZGQuYXBwZW5kKEluc3RhbGxXcGVEZXBlbmRlbmNpZXMoKSkKKyAgICAgICAgICAgIGVs
aWYgcGxhdGZvcm0gPT0gJ2d0ayc6CisgICAgICAgICAgICAgICAgc3RlcHNfdG9fYWRkLmFwcGVu
ZChJbnN0YWxsR3RrRGVwZW5kZW5jaWVzKCkpCisgICAgICAgICAgICBzdGVwc190b19hZGQuZXh0
ZW5kKFsKICAgICAgICAgICAgICAgICBDb21waWxlV2ViS2l0V2l0aG91dENoYW5nZShyZXRyeV9i
dWlsZF9vbl9mYWlsdXJlPVRydWUpLAogICAgICAgICAgICAgICAgIFZhbGlkYXRlQ2hhbmdlKHZl
cmlmeUJ1Z0Nsb3NlZD1GYWxzZSwgYWRkVVJMcz1GYWxzZSksCi0gICAgICAgICAgICAgICAgc3Rl
cF90b19hZGRfd2l0aG91dF9wYXRjaAotICAgICAgICAgICAgXQotICAgICAgICByZXR1cm4gc3Rl
cHNfdG9fYWRkCisgICAgICAgICAgICAgICAgUnVuV2ViS2l0VGVzdHNSZXBlYXRGYWlsdXJlc1dp
dGhvdXRDaGFuZ2VSZWRUcmVlKCksCisgICAgICAgICAgICBdKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc3RlcHNfdG9fYWRkLmFwcGVuZChBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVk
VHJlZSgpKQorICAgICAgICBpZiBzdGVwc190b19hZGQ6CisgICAgICAgICAgICBzZWxmLmJ1aWxk
LmFkZFN0ZXBzQWZ0ZXJDdXJyZW50U3RlcChzdGVwc190b19hZGQpCisgICAgICAgIHJldHVybiBy
YworCisgICAgQGRlZmVyLmlubGluZUNhbGxiYWNrcworICAgIGRlZiBydW5Db21tYW5kKHNlbGYs
IGNvbW1hbmQpOgorICAgICAgICB5aWVsZCBzaGVsbC5UZXN0LnJ1bkNvbW1hbmQoc2VsZiwgY29t
bWFuZCkKKyAgICAgICAgeWllbGQgc2VsZi5fYWRkVG9Mb2coJ2pzb24nLCAnXG4nKQorICAgICAg
ICBsb2dUZXh0ID0gc2VsZi5sb2dfb2JzZXJ2ZXIuZ2V0U3Rkb3V0KCkgKyBzZWxmLmxvZ19vYnNl
cnZlci5nZXRTdGRlcnIoKQorICAgICAgICBsb2dUZXh0SnNvbiA9IHNlbGYubG9nX29ic2VydmVy
X2pzb24uZ2V0U3Rkb3V0KCkucnN0cmlwKCkKKyAgICAgICAgd2l0aF9jaGFuZ2VfcmVwZWF0X2Zh
aWx1cmVzX3Jlc3VsdHMgPSBMYXlvdXRUZXN0RmFpbHVyZXMucmVzdWx0c19mcm9tX3N0cmluZyhs
b2dUZXh0SnNvbikKKyAgICAgICAgaWYgd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3Vs
dHM6CisgICAgICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFp
bHVyZXNfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCcsIHdpdGhfY2hhbmdlX3JlcGVhdF9m
YWlsdXJlc19yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KQorICAgICAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
bm9uZmxha3lfZmFpbHVyZXMnLCBzb3J0ZWQod2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHMuZmFpbGluZ190ZXN0cykpCisgICAgICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRo
X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgc29ydGVkKHdpdGhfY2hh
bmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzLmZsYWt5X3Rlc3RzKSkKKyAgICAgICAgICAgIGlm
IHdpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzLmZhaWxpbmdfdGVzdHM6CisgICAg
ICAgICAgICAgICAgeWllbGQgc2VsZi5fYWRkVG9Mb2coc2VsZi50ZXN0X2ZhaWx1cmVzX2xvZ19u
YW1lLCAnXG4nLmpvaW4od2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHMuZmFpbGlu
Z190ZXN0cykpCisgICAgICAgIGNvbW1hbmRfdGltZWRvdXQgPSBzZWxmLl9kaWRfY29tbWFuZF90
aW1lZF9vdXQoc2VsZi5sb2dfb2JzZXJ2ZXIuZ2V0SGVhZGVycygpKQorICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQnLCBjb21tYW5k
X3RpbWVkb3V0KQorICAgICAgICBzZWxmLl9wYXJzZVJ1bldlYktpdFRlc3RzT3V0cHV0KGxvZ1Rl
eHQpCisKKyAgICBAZGVmZXIuaW5saW5lQ2FsbGJhY2tzCisgICAgZGVmIHJ1bihzZWxmKToKKyAg
ICAgICAgIyBidWlsZGJvdCBtZXNzYWdlcyBhYm91dCB0aW1lb3V0IHJlYWNoZWQgYXBwZWFyIG9u
IHRoZSBoZWFkZXIgc3RyZWFtIG9mIEJ1ZmZlckxvZworICAgICAgICByYyA9IHlpZWxkIHN1cGVy
KCkucnVuKEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9QnVmZmVyTG9nSGVhZGVyT2JzZXJ2ZXIpCisg
ICAgICAgIGRlZmVyLnJldHVyblZhbHVlKHJjKQogCiAKIGNsYXNzIFJ1bldlYktpdFRlc3RzUmVw
ZWF0RmFpbHVyZXNXaXRob3V0Q2hhbmdlUmVkVHJlZShSdW5XZWJLaXRUZXN0c1JlZFRyZWUpOgpA
QCAtNTEzNiwxMiArNTIyNywxNSBAQCBjbGFzcyBSdW5XZWJLaXRUZXN0c1JlcGVhdEZhaWx1cmVz
V2l0aG91dENoYW5nZVJlZFRyZWUoUnVuV2ViS2l0VGVzdHNSZWRUcmVlKToKICAgICAgICAgc3Vw
ZXIoKS5zZXRMYXlvdXRUZXN0Q29tbWFuZCgpCiAgICAgICAgICMgT24gdGhlIHJlcGVhdCBzdGVw
cyB3ZSBkb24ndCBlbmFibGUgY29yZWR1bXAgZ2VuZXJhdGlvbiAobWFrZXMgdGhlIHJ1biBtdWNo
IHNsb3dlciBpZiB0aGVyZSBhcmUgY3Jhc2hlcykKICAgICAgICAgc2VsZi5jb21tYW5kID0gW2Fy
ZyBmb3IgYXJnIGluIHNlbGYuY29tbWFuZCBpZiBhcmcgIT0gJy0tZW5hYmxlLWNvcmUtZHVtcHMt
bm9saW1pdCddCisgICAgICAgIHdpdGhfY2hhbmdlX25vbmZsYWt5X2ZhaWx1cmVzID0gc2V0KHNl
bGYuZ2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZs
YWt5X2ZhaWx1cmVzJywgW10pKQogICAgICAgICBmaXJzdF9ydW5fZmFpbHVyZXMgPSBzZXQoc2Vs
Zi5nZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgW10pKQorICAgICAgICB3aXRoX2No
YW5nZV9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQgPSBzZWxmLmdldFByb3BlcnR5KCd3aXRoX2No
YW5nZV9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQnLCBGYWxzZSkKKyAgICAgICAgZmFpbHVyZXNf
dG9fcmVwZWF0ID0gZmlyc3RfcnVuX2ZhaWx1cmVzIGlmIHdpdGhfY2hhbmdlX3JlcGVhdF9mYWls
dXJlc190aW1lZG91dCBlbHNlIHdpdGhfY2hhbmdlX25vbmZsYWt5X2ZhaWx1cmVzCiAgICAgICAg
ICMgUGFzcyAnLS1za2lwcGVkPWFsd2F5cycgdG8gZW5zdXJlIHRoYXQgYW55IHRlc3QgcGFzc2Vk
IHZpYSBjb21tYW5kIGxpbmUgYXJndW1lbnRzCiAgICAgICAgICMgaXMgc2tpcHBlZCBhbnl3YXlz
IGlmIGlzIG1hcmtlZCBhcyBzdWNoIG9uIHRoZSBFeHBlY3RhdGlvbiBmaWxlcyBvciBpZiBpcyBt
YXJrZWQKICAgICAgICAgIyBhcyBmYWlsdXJlIChzaW5jZSB3ZSBhcmUgcGFzc2luZyBhbHNvICct
LXNraXAtZmFpbGluZy10ZXN0cycpLiBUaGF0IHdheSB3ZSBlbnN1cmUKICAgICAgICAgIyB0byBy
ZXBvcnQgdGhlIGNhc2Ugb2YgYSBjaGFuZ2UgcmVtb3ZpbmcgYW4gZXhwZWN0YXRpb24gdGhhdCBz
dGlsbCBmYWlscyB3aXRoIGl0LgotICAgICAgICBzZWxmLmNvbW1hbmQgKz0gWyctLWZ1bGx5LXBh
cmFsbGVsJywgJy0tcmVwZWF0LWVhY2g9JXMnICUgc2VsZi5OVU1fUkVQRUFUU19QRVJfVEVTVCwg
Jy0tc2tpcHBlZD1hbHdheXMnXSArIHNvcnRlZChmaXJzdF9ydW5fZmFpbHVyZXMpCisgICAgICAg
IHNlbGYuY29tbWFuZCArPSBbJy0tZnVsbHktcGFyYWxsZWwnLCAnLS1yZXBlYXQtZWFjaD0lcycg
JSBzZWxmLk5VTV9SRVBFQVRTX1BFUl9URVNULCAnLS1za2lwcGVkPWFsd2F5cyddICsgc29ydGVk
KGZhaWx1cmVzX3RvX3JlcGVhdCkKIAogICAgIGRlZiBldmFsdWF0ZUNvbW1hbmQoc2VsZiwgY21k
KToKICAgICAgICAgcmMgPSBzZWxmLmV2YWx1YXRlUmVzdWx0KGNtZCkKQEAgLTUxODIsMTAgKzUy
NzYsMzkgQEAgY2xhc3MgUnVuV2ViS2l0VGVzdHNSZXBlYXRGYWlsdXJlc1dpdGhvdXRDaGFuZ2VS
ZWRUcmVlKFJ1bldlYktpdFRlc3RzUmVkVHJlZSk6CiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc190aW1lZG91dCcsIGNvbW1hbmRfdGltZWRv
dXQpCiAgICAgICAgIHNlbGYuX3BhcnNlUnVuV2ViS2l0VGVzdHNPdXRwdXQobG9nVGV4dCkKIAor
ICAgIEBkZWZlci5pbmxpbmVDYWxsYmFja3MKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICAj
IGJ1aWxkYm90IG1lc3NhZ2VzIGFib3V0IHRpbWVvdXQgcmVhY2hlZCBhcHBlYXIgb24gdGhlIGhl
YWRlciBzdHJlYW0gb2YgQnVmZmVyTG9nCisgICAgICAgIHJjID0geWllbGQgc3VwZXIoKS5ydW4o
QnVmZmVyTG9nT2JzZXJ2ZXJDbGFzcz1CdWZmZXJMb2dIZWFkZXJPYnNlcnZlcikKKyAgICAgICAg
ZGVmZXIucmV0dXJuVmFsdWUocmMpCisKIAogY2xhc3MgUnVuV2ViS2l0VGVzdHNXaXRob3V0Q2hh
bmdlUmVkVHJlZShSdW5XZWJLaXRUZXN0c1dpdGhvdXRDaGFuZ2UpOgogICAgIEVYSVRfQUZURVJf
RkFJTFVSRVMgPSA1MDAKIAorICAgIGRlZiBldmFsdWF0ZUNvbW1hbmQoc2VsZiwgY21kKToKKyAg
ICAgICAgcmMgPSBzaGVsbC5UZXN0LmV2YWx1YXRlQ29tbWFuZChzZWxmLCBjbWQpCisgICAgICAg
IHN0ZXBzX3RvX2FkZCA9IFtdCisKKyAgICAgICAgaWYgU0hPVUxEX0ZJTFRFUl9MT0dTIGlzIFRy
dWU6CisgICAgICAgICAgICBzdGVwc190b19hZGQgPSBbCisgICAgICAgICAgICAgICAgR2VuZXJh
dGVTM1VSTCgKKyAgICAgICAgICAgICAgICAgICAgZiJ7c2VsZi5nZXRQcm9wZXJ0eSgnZnVsbFBs
YXRmb3JtJyl9LXtzZWxmLmdldFByb3BlcnR5KCdhcmNoRm9yVXBsb2FkJyl9LXtzZWxmLmdldFBy
b3BlcnR5KCdjb25maWd1cmF0aW9uJyl9LXtzZWxmLm5hbWV9IiwKKyAgICAgICAgICAgICAgICAg
ICAgZXh0ZW5zaW9uPSd0eHQnLAorICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbnM9Zid7c2Vs
Zi5idWlsZC5udW1iZXJ9JywKKyAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSd0ZXh0
L3BsYWluJywKKyAgICAgICAgICAgICAgICApLCBVcGxvYWRGaWxlVG9TMygKKyAgICAgICAgICAg
ICAgICAgICAgJ2xvZ3MudHh0JywKKyAgICAgICAgICAgICAgICAgICAgbGlua3M9e3NlbGYubmFt
ZTogJ0Z1bGwgbG9ncyd9LAorICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J3RleHQv
cGxhaW4nLAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIF0KKworICAgICAgICBzdGVw
c190b19hZGQgKz0gW0FyY2hpdmVUZXN0UmVzdWx0cygpLCBVcGxvYWRUZXN0UmVzdWx0cyhpZGVu
dGlmaWVyPSdjbGVhbi10cmVlJyksIEV4dHJhY3RUZXN0UmVzdWx0cyhpZGVudGlmaWVyPSdjbGVh
bi10cmVlJyksIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKCldCisgICAgICAgIHNl
bGYuYnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwKHN0ZXBzX3RvX2FkZCkKKyAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fc3RhdHVzJywgcmMpCisgICAgICAgIHJl
dHVybiByYworCiAKIGNsYXNzIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEFuYWx5
emVMYXlvdXRUZXN0c1Jlc3VsdHMpOgogICAgIE1BWF9SRVRSWSA9IDMKQEAgLTUyNjMsMjUgKzUz
ODYsMjMgQEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQW5hbHl6ZUxh
eW91dFRlc3RzUmVzdWx0cyk6CiAgICAgICAgIGZpcnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVf
bGltaXQgPSBzZWxmLmdldFByb3BlcnR5KCdmaXJzdF9yZXN1bHRzX2V4Y2VlZF9mYWlsdXJlX2xp
bWl0JywgRmFsc2UpCiAgICAgICAgIGZpcnN0X3J1bl9mYWlsdXJlcyA9IHNldChzZWxmLmdldFBy
b3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbXSkpCiAgICAgICAgIGZpcnN0X3J1bl9mbGFr
aWVzID0gc2V0KHNlbGYuZ2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgW10pKQotICAg
ICAgICBmaXJzdF9ydW5fdGltZWRvdXQgPSBzZWxmLmdldFByb3BlcnR5KCdmaXJzdF9ydW5fdGlt
ZWRvdXQnLCBGYWxzZSkKIAotICAgICAgICAjIFJ1biB3aXRob3V0IGNoYW5nZSwgcnVubmluZyBm
aXJzdF9ydW5fZmFpbHVyZXMgMTAgdGltZXMgZWFjaCB0ZXN0CisgICAgICAgICMgUnVuIHdpdGgg
Y2hhbmdlLCBydW5uaW5nIGZpcnN0X3J1bl9mYWlsdXJlcyAxMCB0aW1lcyBlYWNoIHRlc3QKKyAg
ICAgICAgd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVf
bGltaXQgPSBzZWxmLmdldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCcsIEZhbHNlKQorICAgICAgICB3aXRoX2NoYW5nZV9y
ZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcyA9IHNldChzZWxmLmdldFBy
b3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWls
dXJlcycsIFtdKSkKKyAgICAgICAgd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
Zmxha2llcyA9IHNldChzZWxmLmdldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVy
ZXNfcmVzdWx0c19mbGFraWVzJywgW10pKQorICAgICAgICB3aXRoX2NoYW5nZV9yZXBlYXRfZmFp
bHVyZXNfdGltZWRvdXQgPSBzZWxmLmdldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFp
bHVyZXNfdGltZWRvdXQnLCBGYWxzZSkKKworICAgICAgICAjIFJ1biB3aXRob3V0IGNoYW5nZSwg
cnVubmluZyB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWls
dXJlcyAxMCB0aW1lcyBlYWNoIHRlc3QKICAgICAgICAgd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2Zh
aWx1cmVzX3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQgPSBzZWxmLmdldFByb3BlcnR5KCd3
aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1p
dCcsIEZhbHNlKQogICAgICAgICB3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0
c19ub25mbGFreV9mYWlsdXJlcyA9IHNldChzZWxmLmdldFByb3BlcnR5KCd3aXRob3V0X2NoYW5n
ZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFtdKSkKICAgICAg
ICAgd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcyA9IHNldChz
ZWxmLmdldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19m
bGFraWVzJywgW10pKQogICAgICAgICB3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfdGlt
ZWRvdXQgPSBzZWxmLmdldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNf
dGltZWRvdXQnLCBGYWxzZSkKLSAgICAgICAgd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVz
X3JldGNvZGUgPSBzZWxmLmdldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVy
ZXNfcmV0Y29kZScsIEZBSUxVUkUpCi0KLSAgICAgICAgcmV0cnlfY291bnQgPSBpbnQoc2VsZi5n
ZXRQcm9wZXJ0eSgncmV0cnlfY291bnQnLCAwKSkKLQotICAgICAgICAjIElmIHRoZSBmaXJzdCBy
dW4gd2l0aCBwYXRjaCB0aW1lcyBvdXQsIHRoZW4gcmV0cnkgdGhlIHdob2xlIHN0ZXAgMiB0aW1l
cywgYnV0IGF0IHRoZSB0aGlyZCB0cnkgY29udGludWUgYW55d2F5IGFuZCByZXBvcnQgd2hhdCBw
b3NzaWJsZS4KLSAgICAgICAgaWYgZmlyc3RfcnVuX3RpbWVkb3V0OgotICAgICAgICAgICAgaWYg
cmV0cnlfY291bnQgPCBzZWxmLk1BWF9SRVRSWToKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVm
ZXIucmV0dXJuVmFsdWUoc2VsZi5yZXBvcnRfaW5mcmFzdHJ1Y3R1cmVfaXNzdWVfYW5kX21heWJl
X3JldHJ5X2J1aWxkKCdUaGUgbGF5b3V0LXRlc3QgcnVuIHdpdGggY2hhbmdlIHRpbWVkIG91dCwg
cmV0cnlpbmcgd2l0aCB0aGUgaG9wZSBpdCB3YXMgYSByYW5kb20gaW5mcmFzdHJ1Y3R1cmUgZXJy
b3IuJykpCiAKICAgICAgICAgIyBJZiB3ZSd2ZSBtYWRlIGl0IGhlcmUgdGhhdCBtZWFucyB0aGF0
IHRoZSBmaXJzdF9ydW4gZmFpbGVkIChub24temVybyBzdGF0dXMpIGJ1dCB3ZSBkb24ndCBoYXZl
IGEgbGlzdCBvZiBmYWlsdXJlcyBvciBmbGFraWVzLiBUaGF0IGlzIG5vdCBleHBlY3RlZC4KICAg
ICAgICAgaWYgKG5vdCBmaXJzdF9ydW5fZmFpbHVyZXMpIGFuZCAobm90IGZpcnN0X3J1bl9mbGFr
aWVzKToKICAgICAgICAgICAgICMgSWYgd2UgYXJlIG5vdCBvbiB0aGUgbGFzdCByZXRyeSwgdGhl
biB0cnkgdG8gcmV0cnkgdGhlIHdob2xlIHRlc3Rpbmcgd2l0aCB0aGUgaG9wZSBpdCB3YXMgYSBy
YW5kb20gaW5mcmFzdHJ1Y3R1cmUgZXJyb3IuCisgICAgICAgICAgICByZXRyeV9jb3VudCA9IGlu
dChzZWxmLmdldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIDApKQogICAgICAgICAgICAgaWYgcmV0
cnlfY291bnQgPCBzZWxmLk1BWF9SRVRSWToKICAgICAgICAgICAgICAgICByZXR1cm4gZGVmZXIu
cmV0dXJuVmFsdWUoc2VsZi5yZXBvcnRfaW5mcmFzdHJ1Y3R1cmVfaXNzdWVfYW5kX21heWJlX3Jl
dHJ5X2J1aWxkKCdUaGUgbGF5b3V0LXRlc3QgcnVuIHdpdGggY2hhbmdlIGdlbmVyYXRlZCBubyBs
aXN0IG9mIHJlc3VsdHMgYW5kIGV4aXRlZCB3aXRoIGVycm9yLCByZXRyeWluZyB3aXRoIHRoZSBo
b3BlIGl0IHdhcyBhIHJhbmRvbSBpbmZyYXN0cnVjdHVyZSBlcnJvci4nKSkKICAgICAgICAgICAg
ICMgT3RoZXJ3aXNlIChsYXN0IHJldHJ5KSByZXBvcnQgYW5kIGVycm9yIG9yIGEgd2FybmluZywg
c2luY2Ugd2UgYWxyZWFkeSBnYXZlIGl0IGVub3VnaCByZXRyaWVzIGZvciB0aGUgaXNzdWUgdG8g
bm90IGJlIGNhdXNlZCBieSBhIHJhbmRvbSBpbmZyYXN0cnVjdHVyZSBlcnJvci4KQEAgLTUyOTEs
MzAgKzU0MTIsNTAgQEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQW5h
bHl6ZUxheW91dFRlc3RzUmVzdWx0cyk6CiAgICAgICAgICAgICBjbGVhbl90cmVlX3J1bl9zdGF0
dXMgPSBzZWxmLmdldFByb3BlcnR5KCdjbGVhbl90cmVlX3J1bl9zdGF0dXMnLCBGQUlMVVJFKQog
ICAgICAgICAgICAgIyBJZiB0aGUgY2xlYW4tdHJlZSBydW4gZ2VuZXJhdGVkIHNvbWUgcmVzdWx0
cyB0aGVuIHdlIGFzc3VtZSB0aGlzIGNoYW5nZSBicm9rZSB0aGUgc2NyaXB0IHJ1bi13ZWJraXQt
dGVzdHMgb3Igc29tZXRoaW5nIGxpa2UgdGhhdC4KICAgICAgICAgICAgIGlmIChjbGVhbl90cmVl
X3J1bl9zdGF0dXMgaW4gW1NVQ0NFU1MsIFdBUk5JTkdTXSkgb3IgY2xlYW5fdHJlZV9ydW5fZmFp
bHVyZXMgb3IgY2xlYW5fdHJlZV9ydW5fZmxha2llczoKLSAgICAgICAgICAgICAgICByYyA9IHlp
ZWxkIHNlbGYucmVwb3J0X2ZhaWx1cmUoc2V0KCksIGZpcnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1
cmVfbGltaXQgb3IgZmlyc3RfcnVuX3RpbWVkb3V0KQorICAgICAgICAgICAgICAgIHJjID0geWll
bGQgc2VsZi5yZXBvcnRfZmFpbHVyZShzZXQoKSwgZmlyc3RfcmVzdWx0c19leGNlZWRfZmFpbHVy
ZV9saW1pdCkKICAgICAgICAgICAgICAgICByZXR1cm4gZGVmZXIucmV0dXJuVmFsdWUocmMpCiAg
ICAgICAgICAgICAjIFRoaXMgd2lsbCBlbmQgdGhlIHRlc3RpbmcgYXMgcmV0cnlfY291bnQgd2ls
bCBiZSBub3cgc2VsZi5NQVhfUkVUUlkgYW5kIGEgd2FybmluZyB3aWxsIGJlIHJlcG9ydGVkLgog
ICAgICAgICAgICAgcmV0dXJuIGRlZmVyLnJldHVyblZhbHVlKHNlbGYucmVwb3J0X2luZnJhc3Ry
dWN0dXJlX2lzc3VlX2FuZF9tYXliZV9yZXRyeV9idWlsZCgnVGhlIGxheW91dC10ZXN0IHJ1biB3
aXRoIGNoYW5nZSBnZW5lcmF0ZWQgbm8gbGlzdCBvZiByZXN1bHRzIGFuZCBleGl0ZWQgd2l0aCBl
cnJvciwgYW5kIHRoZSBjbGVhbl90cmVlIHdpdGhvdXQgY2hhbmdlIHJ1biBkaWQgdGhlIHNhbWUg
dGhpbmcuJykpCiAKLSAgICAgICAgaWYgd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQ6Ci0gICAgICAgICAgICByZXR1cm4gZGVmZXIucmV0
dXJuVmFsdWUoc2VsZi5yZXBvcnRfaW5mcmFzdHJ1Y3R1cmVfaXNzdWVfYW5kX21heWJlX3JldHJ5
X2J1aWxkKCdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LWNo
YW5nZSIgaGFzIGV4aXRlZCBlYXJseSwgYnV0IHRoaXMgc3RlcCBzaG91bGQgcnVuIHdpdGhvdXQg
Ii0tZXhpdC1hZnRlci1uLWZhaWx1cmVzIiBzd2l0Y2gsIHNvIGl0IHNob3VsZCBub3QgZXhpdCBl
YXJseS4nKSkKKyAgICAgICAgaWYgd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
ZXhjZWVkX2ZhaWx1cmVfbGltaXQgb3Igd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQ6CisgICAgICAgICAgICByZXR1cm4gZGVmZXIucmV0
dXJuVmFsdWUoc2VsZi5yZXBvcnRfaW5mcmFzdHJ1Y3R1cmVfaXNzdWVfYW5kX21heWJlX3JldHJ5
X2J1aWxkKCdPbmUgb2YgdGhlIHN0ZXBzIGZvciByZXRyeWluZyB0aGUgZmFpbGVkIHRlc3RzIGhh
cyBleGl0ZWQgZWFybHksIGJ1dCB0aGlzIHN0ZXBzIHNob3VsZCBydW4gd2l0aG91dCAiLS1leGl0
LWFmdGVyLW4tZmFpbHVyZXMiIHN3aXRjaCwgc28gdGhleSBzaG91bGQgbm90IGV4aXQgZWFybHku
JykpCiAKICAgICAgICAgaWYgd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3RpbWVkb3V0
OgogICAgICAgICAgICAgcmV0dXJuIGRlZmVyLnJldHVyblZhbHVlKHNlbGYucmVwb3J0X2luZnJh
c3RydWN0dXJlX2lzc3VlX2FuZF9tYXliZV9yZXRyeV9idWlsZCgnVGhlIHN0ZXAgImxheW91dC10
ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1jaGFuZ2UiIHdhcyBpbnRlcnJ1bXBlZCBiZWNh
dXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuJykpCiAKLSAgICAgICAgIyBUaGUgc3RlcCB3aXRo
b3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXMgZ2VuZXJhdGVkIGFuIGVycm9yIGNvZGUuIFRoYXQg
bWVhbnMgdGhlcmUgc2hvdWxkIGJlIGVpdGhlciB0ZXN0cyBmYWlsaW5nIG9yIHRlc3RzIGZsYWtp
ZXMuIENoZWNrIHRoYXQuCi0gICAgICAgIGlmIGZpcnN0X3J1bl9mYWlsdXJlcyBhbmQgd2l0aG91
dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3JldGNvZGUgbm90IGluIFtTVUNDRVNTLCBXQVJOSU5H
U106Ci0gICAgICAgICAgICBpZiBub3Qgd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfbm9uZmxha3lfZmFpbHVyZXMgYW5kIG5vdCB3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFp
bHVyZXNfcmVzdWx0c19mbGFraWVzOgotICAgICAgICAgICAgICAgIHJldHVybiBkZWZlci5yZXR1
cm5WYWx1ZShzZWxmLnJlcG9ydF9pbmZyYXN0cnVjdHVyZV9pc3N1ZV9hbmRfbWF5YmVfcmV0cnlf
YnVpbGQoJ1RoZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtY2hh
bmdlIiBmYWlsZWQgdG8gZ2VuZXJhdGUgYW55IGxpc3Qgb2YgZmFpbHVyZXMgb3IgZmxha2llcyBh
bmQgcmV0dXJuZWQgYW4gZXJyb3IgY29kZS4nKSkKKyAgICAgICAgaWYgd2l0aF9jaGFuZ2VfcmVw
ZWF0X2ZhaWx1cmVzX3RpbWVkb3V0OgorICAgICAgICAgICAgIyBUaGUgY2hhbmdlIGlzIGNhdXNp
bmcgdGhlIHN0ZXAgJ2xheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aC1jaGFuZ2UnIHRv
IHRpbWVvdXQsIGxpa2VseSB0aGUgY2hhbmdlIGlzIGFkZGluZyBtYW55IGZhaWx1cmVzIG9yIGxv
bmcgdGltZW91dHMgbmVlZGluZyBsb3Qgb2YgdGltZSB0byB0ZXN0IHRoZSByZXBlYXRzLgorICAg
ICAgICAgICAgIyBSZXBvcnQgdGhlIHRlc3RzIHRoYXQgZmFpbGVkIG9uIHRoZSBmaXJzdCBydW4g
YXMgd2UgZG9uJ3QgaGF2ZSB0aGUgaW5mb3JtYXRpb24gb2YgdGhlIG9uZXMgdGhhdCBmYWlsZWQg
b24gJ2xheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aC1jaGFuZ2UnIGJlY2F1c2UgaXQg
d2FzIGludGVycnVwdGVkIGR1ZSB0byB0aGUgdGltZW91dC4KKyAgICAgICAgICAgICMgVGhlcmUg
aXMgbm8gcG9pbnQgaW4gcmVwZWF0aW5nIHRoaXMgcnVuLCBpdCB3b3VsZCBoYXBwZW4gdGhlIHNh
bWUgb24gbmV4dCBydW5zIGFuZCBjb25zdW1lIGxvdCBvZiB0aW1lLgorICAgICAgICAgICAgbGlr
ZWx5X25ld19ub25fZmxha3lfZmFpbHVyZXMgPSBmaXJzdF9ydW5fZmFpbHVyZXMgLSB3aXRob3V0
X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcy51bmlvbih3
aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzKQorICAgICAgICAg
ICAgc2VsZi5zZW5kX2VtYWlsX2Zvcl9pbmZyYXN0cnVjdHVyZV9pc3N1ZSgnVGhlIHN0ZXAgImxh
eW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aC1jaGFuZ2UiIHJlYWNoZWQgdGhlIHRpbWVv
dXQgYnV0IHRoZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtY2hh
bmdlIiBlbmRlZC4gTm90IHRyeWluZyB0byByZXBlYXQgdGhpcy4gUmVwb3J0aW5nIHt9IGZhaWx1
cmVzIGZyb20gdGhlIGZpcnN0IHJ1bi4nLmZvcm1hdChsZW4obGlrZWx5X25ld19ub25fZmxha3lf
ZmFpbHVyZXMpKSkKKyAgICAgICAgICAgIHJjID0geWllbGQgc2VsZi5yZXBvcnRfZmFpbHVyZShs
aWtlbHlfbmV3X25vbl9mbGFreV9mYWlsdXJlcywgZmlyc3RfcmVzdWx0c19leGNlZWRfZmFpbHVy
ZV9saW1pdCkKKyAgICAgICAgICAgIHJldHVybiBkZWZlci5yZXR1cm5WYWx1ZShyYykKKworICAg
ICAgICAjIFRoZSBjaGVja3MgYmVsb3cgbmVlZCB0byBiZSBhZnRlciB0aGUgdGltZW91dCBvbmVz
IChhYm92ZSkgYmVjYXVzZSB3aGVuIGEgdGltZW91dCBpcyB0cmlnZXJyZWQgbm8gcmVzdWx0cyB3
aWxsIGJlIGdlbmVyYXRlZCBmb3IgdGhlIHN0ZXAuCisgICAgICAgICMgVGhlIHN0ZXAgd2l0aF9j
aGFuZ2VfcmVwZWF0X2ZhaWx1cmVzIGdlbmVyYXRlZCBhbiBlcnJvciBjb2RlLiBUaGF0IG1lYW5z
IHRoZXJlIHNob3VsZCBiZSBlaXRoZXIgdGVzdHMgZmFpbGluZyBvciB0ZXN0cyBmbGFraWVzLiBD
aGVjayB0aGF0LgorICAgICAgICB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmV0Y29kZSA9
IHNlbGYuZ2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXRjb2RlJywg
RkFJTFVSRSkKKyAgICAgICAgaWYgZmlyc3RfcnVuX2ZhaWx1cmVzIGFuZCB3aXRoX2NoYW5nZV9y
ZXBlYXRfZmFpbHVyZXNfcmV0Y29kZSBub3QgaW4gW1NVQ0NFU1MsIFdBUk5JTkdTXToKKyAgICAg
ICAgICAgIGlmIG5vdCB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFr
eV9mYWlsdXJlcyBhbmQgbm90IHdpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2Zs
YWtpZXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmVyLnJldHVyblZhbHVlKHNlbGYucmVw
b3J0X2luZnJhc3RydWN0dXJlX2lzc3VlX2FuZF9tYXliZV9yZXRyeV9idWlsZCgnVGhlIHN0ZXAg
ImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMiIGZhaWxlZCB0byBnZW5lcmF0ZSBhbnkgbGlz
dCBvZiBmYWlsdXJlcyBvciBmbGFraWVzIGFuZCByZXR1cm5lZCBhbiBlcnJvciBjb2RlLicpKQor
ICAgICAgICAgICAgZWxpZiB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25m
bGFreV9mYWlsdXJlczoKKyAgICAgICAgICAgICAgICAjIENoZWNrIHRoZSBzYW1lIGZvciB0aGUg
c3RlcCB3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXMgYnV0IG9ubHkgaWYgdGhlcmUgd2hl
cmUgZmFpbHVyZXMgb24gdGhlIHByZXZpb3VzIHN0ZXAgKHdpdGhfY2hhbmdlX3JlcGVhdF9mYWls
dXJlcyksIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBjaGVjayBkb2Vzbid0IG1ha2Ugc2Vuc2UgKHRo
ZSBzdGVwIHdvdWxkIGhhdmUgbm90IHJ1biBhdCBhbGwpCisgICAgICAgICAgICAgICAgd2l0aG91
dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3JldGNvZGUgPSBzZWxmLmdldFByb3BlcnR5KCd3aXRo
b3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmV0Y29kZScsIEZBSUxVUkUpCisgICAgICAgICAg
ICAgICAgaWYgd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3JldGNvZGUgbm90IGluIFtT
VUNDRVNTLCBXQVJOSU5HU106CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCB3aXRob3V0X2No
YW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcyBhbmQgbm90IHdp
dGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXM6CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZGVmZXIucmV0dXJuVmFsdWUoc2VsZi5yZXBvcnRfaW5mcmFz
dHJ1Y3R1cmVfaXNzdWVfYW5kX21heWJlX3JldHJ5X2J1aWxkKCdUaGUgc3RlcCAibGF5b3V0LXRl
c3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LWNoYW5nZSIgZmFpbGVkIHRvIGdlbmVyYXRlIGFu
eSBsaXN0IG9mIGZhaWx1cmVzIG9yIGZsYWtpZXMgYW5kIHJldHVybmVkIGFuIGVycm9yIGNvZGUu
JykpCiAKICAgICAgICAgIyBXYXJuIEVXUyBib3Qgd2F0Y2hlcnMgYWJvdXQgZmxha2llcyBzbyB0
aGV5IGNhbiBnYXJkZW4gdGhvc2UuIEluY2x1ZGUgdGhlIHN0ZXAgd2hlcmUgdGhlIGZsYWt5IHdh
cyBmb3VuZCBpbiB0aGUgZS1tYWlsIHRvIGtub3cgaWYgaXQgd2FzIGZvdW5kIHdpdGggY2hhbmdl
IG9yIHdpdGhvdXQgaXQuCiAgICAgICAgICMgRHVlIHRvIHRoZSB3YXkgdGhpcyBjbGFzcyB3b3Jr
cyBtb3N0IG9mIHRoZSBmbGFraWVzIGFyZSBmaWx0ZXJlZCBvbiB0aGUgc3RlcCB3aXRoIGNoYW5n
ZSBldmVuIHdoZW4gdGhvc2Ugd2VyZSBwcmUtZXhpc3RlbnQgaXNzdWVzIChzbyB0aGlzIGlzIGFs
c28gdXNlZnVsIGZvciBib3Qgd2F0Y2hlcnMpLgotICAgICAgICBhbGxfZmxha3lfZmFpbHVyZXMg
PSBmaXJzdF9ydW5fZmxha2llcy51bmlvbih3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNf
cmVzdWx0c19mbGFraWVzKQorICAgICAgICBhbGxfZmxha3lfZmFpbHVyZXMgPSBmaXJzdF9ydW5f
Zmxha2llcy51bmlvbih3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVz
KS51bmlvbih3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzKQor
ICAgICAgICBhbGxfZmxha3lfZmFpbHVyZXMudXBkYXRlKGZpcnN0X3J1bl9mYWlsdXJlcyAtIHdp
dGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzKQogICAg
ICAgICBmbGFreV9zdGVwc19kaWN0ID0ge30KICAgICAgICAgZm9yIGZsYWt5X2ZhaWx1cmUgaW4g
YWxsX2ZsYWt5X2ZhaWx1cmVzOgogICAgICAgICAgICAgc3RlcF9uYW1lcyA9IFtdCiAgICAgICAg
ICAgICBpZiBmbGFreV9mYWlsdXJlIGluIHdpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX2ZsYWtpZXM6CiAgICAgICAgICAgICAgICAgc3RlcF9uYW1lcy5hcHBlbmQoJ2xheW91
dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1jaGFuZ2UnKQorICAgICAgICAgICAgaWYg
Zmxha3lfZmFpbHVyZSBpbiB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFr
aWVzOgorICAgICAgICAgICAgICAgIHN0ZXBfbmFtZXMuYXBwZW5kKCdsYXlvdXQtdGVzdHMtcmVw
ZWF0LWZhaWx1cmVzICh3aXRoIGNoYW5nZSknKQogICAgICAgICAgICAgaWYgZmxha3lfZmFpbHVy
ZSBpbiBmaXJzdF9ydW5fZmxha2llczoKICAgICAgICAgICAgICAgICBzdGVwX25hbWVzLmFwcGVu
ZCgnbGF5b3V0LXRlc3RzICh3aXRoIGNoYW5nZSknKQogICAgICAgICAgICAgZmxha3lfc3RlcHNf
ZGljdFtmbGFreV9mYWlsdXJlXSA9IHN0ZXBfbmFtZXMKQEAgLTUzMjYsOSArNTQ2Nyw5IEBAIGNs
YXNzIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEFuYWx5emVMYXlvdXRUZXN0c1Jl
c3VsdHMpOgogICAgICAgICAgICAgc2VsZi5zZW5kX2VtYWlsX2Zvcl9wcmVfZXhpc3RlbnRfZmFp
bHVyZXMocHJlX2V4aXN0ZW50X25vbl9mbGFreV9mYWlsdXJlcykKIAogICAgICAgICAjIEZpbmFs
bHkgY2hlY2sgaWYgdGhlcmUgYXJlIG5ldyBjb25zaXN0ZW50IChub24tZmxha3kpIGZhaWx1cmVz
IGNhdXNlZCBieSB0aGUgY2hhbmdlIGFuZCB3YXJuIHRoZSBjaGFuZ2UgYXV0aG9yIHN0ZXR0aW5n
IHRoZSBzdGF0dXMgZm9yIHRoZSBidWlsZC4KLSAgICAgICAgbmV3X25vbl9mbGFreV9mYWlsdXJl
cyA9IGZpcnN0X3J1bl9mYWlsdXJlcyAtIHdpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzLnVuaW9uKHdpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWls
dXJlc19yZXN1bHRzX2ZsYWtpZXMpCisgICAgICAgIG5ld19ub25fZmxha3lfZmFpbHVyZXMgPSB3
aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcyAtIHdp
dGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzLnVu
aW9uKHdpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMpCiAgICAg
ICAgIGlmIG5ld19ub25fZmxha3lfZmFpbHVyZXM6Ci0gICAgICAgICAgICByYyA9IHlpZWxkIHNl
bGYucmVwb3J0X2ZhaWx1cmUobmV3X25vbl9mbGFreV9mYWlsdXJlcywgZmlyc3RfcmVzdWx0c19l
eGNlZWRfZmFpbHVyZV9saW1pdCBvciBmaXJzdF9ydW5fdGltZWRvdXQpCisgICAgICAgICAgICBy
YyA9IHlpZWxkIHNlbGYucmVwb3J0X2ZhaWx1cmUobmV3X25vbl9mbGFreV9mYWlsdXJlcywgZmly
c3RfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCkKICAgICAgICAgICAgIHJldHVybiBkZWZl
ci5yZXR1cm5WYWx1ZShyYykKIAogICAgICAgICByZXR1cm4gZGVmZXIucmV0dXJuVmFsdWUoc2Vs
Zi5yZXBvcnRfc3VjY2VzcygpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5p
dHRlc3QucHkKaW5kZXggZDEyZjUzOGE4MDY5Li5lODZlNGI1MWJjYzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvQ0lT
dXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQpAQCAtMzA5NSwzNyArMzA5NSwyMSBA
QCBjbGFzcyBUZXN0UnVuV2ViS2l0VGVzdHNSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25z
LCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShDb21waWxlV2Vi
S2l0V2l0aG91dENoYW5nZShyZXRyeV9idWlsZF9vbl9mYWlsdXJlPVRydWUpKQogICAgICAgICBz
ZWxmLmFzc2VydFRydWUoUnVuV2ViS2l0VGVzdHNXaXRob3V0Q2hhbmdlUmVkVHJlZSgpIGluIG5l
eHRfc3RlcHMpCiAKLSAgICBkZWYgdGVzdF9mbGFraWVzX3dpdGhfZmFpbF9yZXRjb2RlX3RoZW5f
Z29fdG9fYW5hbHl6ZV9yZXN1bHRzKHNlbGYpOgorICAgIGRlZiB0ZXN0X2ZsYWtpZXNfYnV0X25v
X2ZhaWx1cmVzX3RoZW5fZ29fdG9fYW5hbHl6ZV9yZXN1bHRzKHNlbGYpOgogICAgICAgICBzZWxm
LmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFp
bHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMn
LCBbJ2Zhc3QvY3NzL2ZsYWt5MS5odG1sJywgJ2Zhc3Qvc3ZnL2ZsYWt5Mi5zdmcnLCAnaW1wb3J0
ZWQvdGVzdC9mbGFreTMuaHRtbCddKQogICAgICAgICBuZXh0X3N0ZXBzID0gW10KICAgICAgICAg
c2VsZi5wYXRjaChzZWxmLmJ1aWxkLCAnYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwJywgbGFtYmRh
IHM6IG5leHRfc3RlcHMuZXh0ZW5kKHMpKQogICAgICAgICBzZWxmLnBhdGNoKFJ1bldlYktpdFRl
c3RzUmVkVHJlZSwgJ2V2YWx1YXRlUmVzdWx0JywgbGFtYmRhIHMsIHI6IHIpCi0gICAgICAgIHNl
bGYuZ2V0X250aF9zdGVwKDApLmV2YWx1YXRlQ29tbWFuZChGQUlMVVJFKQorICAgICAgICBzZWxm
LmdldF9udGhfc3RlcCgwKS5ldmFsdWF0ZUNvbW1hbmQoU1VDQ0VTUykKICAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShSZXZlcnRBcHBsaWVkQ2hhbmdlcygpIGluIG5leHRfc3RlcHMpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoSW5zdGFsbFdwZURlcGVuZGVuY2llcygpIGluIG5leHRfc3RlcHMp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUnVuV2ViS2l0VGVzdHNXaXRob3V0Q2hhbmdlUmVk
VHJlZSgpIGluIG5leHRfc3RlcHMpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShBbmFseXplTGF5
b3V0VGVzdHNSZXN1bHRzUmVkVHJlZSgpIGluIG5leHRfc3RlcHMpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoaGFzYXR0cihzZWxmLmJ1aWxkLCAncmVzdWx0cycpKQotCi0gICAgZGVmIHRlc3Rf
Zmxha2llc193aXRoX3dhcm5pbmdfcmV0Y29kZV90aGVuX2ZpbmlzaChzZWxmKToKLSAgICAgICAg
c2VsZi5jb25maWd1cmVTdGVwKCkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVu
X2ZhaWx1cmVzJywgW10pCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFr
aWVzJywgWydmYXN0L2Nzcy9mbGFreTEuaHRtbCcsICdmYXN0L3N2Zy9mbGFreTIuc3ZnJywgJ2lt
cG9ydGVkL3Rlc3QvZmxha3kzLmh0bWwnXSkKLSAgICAgICAgbmV4dF9zdGVwcyA9IFtdCi0gICAg
ICAgIHNlbGYucGF0Y2goc2VsZi5idWlsZCwgJ2FkZFN0ZXBzQWZ0ZXJDdXJyZW50U3RlcCcsIGxh
bWJkYSBzOiBuZXh0X3N0ZXBzLmV4dGVuZChzKSkKLSAgICAgICAgc2VsZi5wYXRjaChSdW5XZWJL
aXRUZXN0c1JlZFRyZWUsICdldmFsdWF0ZVJlc3VsdCcsIGxhbWJkYSBzLCByOiByKQotICAgICAg
ICBzZWxmLmdldF9udGhfc3RlcCgwKS5ldmFsdWF0ZUNvbW1hbmQoV0FSTklOR1MpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoUmV2ZXJ0QXBwbGllZENoYW5nZXMoKSBpbiBuZXh0X3N0ZXBzKQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKEluc3RhbGxXcGVEZXBlbmRlbmNpZXMoKSBpbiBuZXh0
X3N0ZXBzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFJ1bldlYktpdFRlc3RzV2l0aG91dENo
YW5nZVJlZFRyZWUoKSBpbiBuZXh0X3N0ZXBzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKEFu
YWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKCkgaW4gbmV4dF9zdGVwcykKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoc2VsZi5idWlsZCwgJ3Jlc3VsdHMnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzZWxmLmJ1aWxkLnJlc3VsdHMsIFNVQ0NFU1MpCiAKIAotY2xhc3Mg
VGVzdFJ1bldlYktpdFRlc3RzUmVwZWF0RmFpbHVyZXNXaXRob3V0Q2hhbmdlUmVkVHJlZShCdWls
ZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgVGVzdFJ1bldl
YktpdFRlc3RzUmVwZWF0RmFpbHVyZXNSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLmxv
bmdNZXNzYWdlID0gVHJ1ZQogICAgICAgICBzZWxmLmpzb25GaWxlTmFtZSA9ICdsYXlvdXQtdGVz
dC1yZXN1bHRzL2Z1bGxfcmVzdWx0cy5qc29uJwpAQCAtMzEzNSw3ICszMTE5LDcgQEAgY2xhc3Mg
VGVzdFJ1bldlYktpdFRlc3RzUmVwZWF0RmFpbHVyZXNXaXRob3V0Q2hhbmdlUmVkVHJlZShCdWls
ZFN0ZXBNaXhpbkFkZGl0aW8KICAgICAgICAgcmV0dXJuIHNlbGYudGVhcl9kb3duX3Rlc3RfYnVp
bGRfc3RlcCgpCiAKICAgICBkZWYgY29uZmlndXJlU3RlcChzZWxmKToKLSAgICAgICAgc2VsZi5z
ZXR1cF9zdGVwKFJ1bldlYktpdFRlc3RzUmVwZWF0RmFpbHVyZXNXaXRob3V0Q2hhbmdlUmVkVHJl
ZSgpKQorICAgICAgICBzZWxmLnNldHVwX3N0ZXAoUnVuV2ViS2l0VGVzdHNSZXBlYXRGYWlsdXJl
c1JlZFRyZWUoKSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGxhdGZvcm0nLCAnd3BlJykK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ3dwZScpCiAgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCkBAIC0zMTUwLDkg
KzMxMzQsOSBAQCBjbGFzcyBUZXN0UnVuV2ViS2l0VGVzdHNSZXBlYXRGYWlsdXJlc1dpdGhvdXRD
aGFuZ2VSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpbwogICAgICAgICAgICAgRXhwZWN0U2hl
bGwod29ya2Rpcj0nd2tkaXInLAogICAgICAgICAgICAgICAgICAgICAgICAgbG9nZmlsZXM9eydq
c29uJzogc2VsZi5qc29uRmlsZU5hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgbG9nX2Vu
dmlyb249RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBtYXhfdGltZT0xMDgwMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1heF90aW1lPTE4MDAwLAogICAgICAgICAgICAgICAgICAg
ICAgICAgdGltZW91dD0xOTgwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9Wycv
YmluL2Jhc2gnLCAnLS1wb3NpeCcsICctbycsICdwaXBlZmFpbCcsICctYycsICdweXRob24zIFRv
b2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cyAtLW5vLWJ1aWxkIC0tbm8tc2hvdy1yZXN1bHRz
IC0tbm8tbmV3LXRlc3QtcmVzdWx0cyAtLWNsb2JiZXItb2xkLXJlc3VsdHMgLS1yZWxlYXNlIC0t
d3BlIC0tcmVzdWx0cy1kaXJlY3RvcnkgbGF5b3V0LXRlc3QtcmVzdWx0cyAtLWRlYnVnLXJ3dC1s
b2dnaW5nIC0tc2tpcC1mYWlsaW5nLXRlc3RzIC0tZnVsbHktcGFyYWxsZWwgLS1yZXBlYXQtZWFj
aD0xMCAtLXNraXBwZWQ9YWx3YXlzIGZhc3QvY3NzL3Rlc3QxLmh0bWwgZmFzdC9zdmcvdGVzdDMu
c3ZnIGltcG9ydGVkL3Rlc3QvdGVzdDIuaHRtbCAyPiYxIHwgVG9vbHMvU2NyaXB0cy9maWx0ZXIt
dGVzdC1sb2dzIGxheW91dCddCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsnL2Jp
bi9iYXNoJywgJy0tcG9zaXgnLCAnLW8nLCAncGlwZWZhaWwnLCAnLWMnLCAncHl0aG9uMyBUb29s
cy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgLS1uby1idWlsZCAtLW5vLXNob3ctcmVzdWx0cyAt
LW5vLW5ldy10ZXN0LXJlc3VsdHMgLS1jbG9iYmVyLW9sZC1yZXN1bHRzIC0tcmVsZWFzZSAtLXdw
ZSAtLXJlc3VsdHMtZGlyZWN0b3J5IGxheW91dC10ZXN0LXJlc3VsdHMgLS1kZWJ1Zy1yd3QtbG9n
Z2luZyAtLXNraXAtZmFpbGluZy10ZXN0cyAtLWZ1bGx5LXBhcmFsbGVsIC0tcmVwZWF0LWVhY2g9
MTAgZmFzdC9jc3MvdGVzdDEuaHRtbCBmYXN0L3N2Zy90ZXN0My5zdmcgaW1wb3J0ZWQvdGVzdC90
ZXN0Mi5odG1sIDI+JjEgfCBUb29scy9TY3JpcHRzL2ZpbHRlci10ZXN0LWxvZ3MgbGF5b3V0J10K
ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgIC5leGl0KDApLAogICAgICAg
ICApCkBAIC0zMTczLDkgKzMxNTcsOSBAQCBjbGFzcyBUZXN0UnVuV2ViS2l0VGVzdHNSZXBlYXRG
YWlsdXJlc1dpdGhvdXRDaGFuZ2VSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpbwogICAgICAg
ICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAogICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nZmlsZXM9eydqc29uJzogc2VsZi5qc29uRmlsZU5hbWV9LAogICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nX2Vudmlyb249RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBtYXhf
dGltZT0xMDgwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heF90aW1lPTE4MDAwLAogICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZW91dD0xOTgwMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbW1hbmQ9WycvYmluL2Jhc2gnLCAnLS1wb3NpeCcsICctbycsICdwaXBlZmFpbCcsICct
YycsICdweXRob24zIFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cyAtLW5vLWJ1aWxkIC0t
bm8tc2hvdy1yZXN1bHRzIC0tbm8tbmV3LXRlc3QtcmVzdWx0cyAtLWNsb2JiZXItb2xkLXJlc3Vs
dHMgLS1yZWxlYXNlIC0td3BlIC0tcmVzdWx0cy1kaXJlY3RvcnkgbGF5b3V0LXRlc3QtcmVzdWx0
cyAtLWRlYnVnLXJ3dC1sb2dnaW5nIC0tc2tpcC1mYWlsaW5nLXRlc3RzIC0tZnVsbHktcGFyYWxs
ZWwgLS1yZXBlYXQtZWFjaD0xMCAtLXNraXBwZWQ9YWx3YXlzIFwnaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLmh0bWw/ZXhjbHVkZT0oRG9j
dW1lbnR8V2luZG93fEhUTUwuKilcJyBcJ2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy5odG1sP2luY2x1ZGU9SFRNTC4qXCcgXCd0cnkvY3Jh
c2gvZm9yL3Rlc3Rfd2l0aCBzcGFjZXMgIiBhbmQgXCciXCciXCcgcXVvdGVzXCcgXCd0cnkvY3Jh
c2gvZm9yL3Rlc3Rfd2l0aF9icmFja2V0c1tde31cJyAyPiYxIHwgVG9vbHMvU2NyaXB0cy9maWx0
ZXItdGVzdC1sb2dzIGxheW91dCddCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsn
L2Jpbi9iYXNoJywgJy0tcG9zaXgnLCAnLW8nLCAncGlwZWZhaWwnLCAnLWMnLCAncHl0aG9uMyBU
b29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgLS1uby1idWlsZCAtLW5vLXNob3ctcmVzdWx0
cyAtLW5vLW5ldy10ZXN0LXJlc3VsdHMgLS1jbG9iYmVyLW9sZC1yZXN1bHRzIC0tcmVsZWFzZSAt
LXdwZSAtLXJlc3VsdHMtZGlyZWN0b3J5IGxheW91dC10ZXN0LXJlc3VsdHMgLS1kZWJ1Zy1yd3Qt
bG9nZ2luZyAtLXNraXAtZmFpbGluZy10ZXN0cyAtLWZ1bGx5LXBhcmFsbGVsIC0tcmVwZWF0LWVh
Y2g9MTAgXCdpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5l
c3MuaHR0cHMuaHRtbD9leGNsdWRlPShEb2N1bWVudHxXaW5kb3d8SFRNTC4qKVwnIFwnaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLmh0bWw/
aW5jbHVkZT1IVE1MLipcJyBcJ3RyeS9jcmFzaC9mb3IvdGVzdF93aXRoIHNwYWNlcyAiIGFuZCBc
JyJcJyJcJyBxdW90ZXNcJyBcJ3RyeS9jcmFzaC9mb3IvdGVzdF93aXRoX2JyYWNrZXRzW117fVwn
IDI+JjEgfCBUb29scy9TY3JpcHRzL2ZpbHRlci10ZXN0LWxvZ3MgbGF5b3V0J10KICAgICAgICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgIC5leGl0KDApLAogICAgICAgICApCkBAIC0z
MTk1LDkgKzMxNzksOSBAQCBjbGFzcyBUZXN0UnVuV2ViS2l0VGVzdHNSZXBlYXRGYWlsdXJlc1dp
dGhvdXRDaGFuZ2VSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpbwogICAgICAgICAgICAgRXhw
ZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAogICAgICAgICAgICAgICAgICAgICAgICAgbG9nZmls
ZXM9eydqc29uJzogc2VsZi5qc29uRmlsZU5hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAg
bG9nX2Vudmlyb249RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBtYXhfdGltZT0xMDgw
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heF90aW1lPTE4MDAwLAogICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZW91dD0xOTgwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1h
bmQ9WycvYmluL2Jhc2gnLCAnLS1wb3NpeCcsICctbycsICdwaXBlZmFpbCcsICctYycsICdweXRo
b24zIFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cyAtLW5vLWJ1aWxkIC0tbm8tc2hvdy1y
ZXN1bHRzIC0tbm8tbmV3LXRlc3QtcmVzdWx0cyAtLWNsb2JiZXItb2xkLXJlc3VsdHMgLS1yZWxl
YXNlIC0td3BlIC0tcmVzdWx0cy1kaXJlY3RvcnkgbGF5b3V0LXRlc3QtcmVzdWx0cyAtLWRlYnVn
LXJ3dC1sb2dnaW5nIC0tc2tpcC1mYWlsaW5nLXRlc3RzIC0tZnVsbHktcGFyYWxsZWwgLS1yZXBl
YXQtZWFjaD0xMCAtLXNraXBwZWQ9YWx3YXlzIGZhc3QvY3NzL3Rlc3QxLmh0bWwgZmFzdC9zdmcv
dGVzdDMuc3ZnIGltcG9ydGVkL3Rlc3QvdGVzdDIuaHRtbCAyPiYxIHwgVG9vbHMvU2NyaXB0cy9m
aWx0ZXItdGVzdC1sb2dzIGxheW91dCddCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
PVsnL2Jpbi9iYXNoJywgJy0tcG9zaXgnLCAnLW8nLCAncGlwZWZhaWwnLCAnLWMnLCAncHl0aG9u
MyBUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgLS1uby1idWlsZCAtLW5vLXNob3ctcmVz
dWx0cyAtLW5vLW5ldy10ZXN0LXJlc3VsdHMgLS1jbG9iYmVyLW9sZC1yZXN1bHRzIC0tcmVsZWFz
ZSAtLXdwZSAtLXJlc3VsdHMtZGlyZWN0b3J5IGxheW91dC10ZXN0LXJlc3VsdHMgLS1kZWJ1Zy1y
d3QtbG9nZ2luZyAtLXNraXAtZmFpbGluZy10ZXN0cyAtLWZ1bGx5LXBhcmFsbGVsIC0tcmVwZWF0
LWVhY2g9MTAgZmFzdC9jc3MvdGVzdDEuaHRtbCBmYXN0L3N2Zy90ZXN0My5zdmcgaW1wb3J0ZWQv
dGVzdC90ZXN0Mi5odG1sIDI+JjEgfCBUb29scy9TY3JpcHRzL2ZpbHRlci10ZXN0LWxvZ3MgbGF5
b3V0J10KICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgIC5leGl0KDIpCiAg
ICAgICAgICkKQEAgLTMyMTQsMjQgKzMxOTgsMTQ4IEBAIGNsYXNzIFRlc3RSdW5XZWJLaXRUZXN0
c1JlcGVhdEZhaWx1cmVzV2l0aG91dENoYW5nZVJlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlv
CiAgICAgICAgIHNlbGYuZXhwZWN0X3Byb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIGZpcnN0
X3J1bl9mbGFraWVzKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuZ2V0UHJvcGVydHko
J2ZpcnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnKSkKICAgICAgICAgIyBUZXN0IGFs
c28gdGhhdCB0aGlzIGZha2UgdmFsdWVzIGFyZSBzZXQgX29ubHlfIGZvciB0aGUgcHJvcGVydGll
cyB0aGlzIGNsYXNzIHNob3VsZCBkZWZpbmUKLSAgICAgICAgc2VsZi5leHBlY3RfcHJvcGVydHko
J3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVz
JywgZmFrZV9mYWlsaW5nX3Rlc3RzKQotICAgICAgICBzZWxmLmV4cGVjdF9wcm9wZXJ0eSgnd2l0
aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIGZha2VfZmxha3lf
dGVzdHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmdldFByb3BlcnR5KCd3aXRob3V0
X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCcpKQor
ICAgICAgICBzZWxmLmV4cGVjdF9wcm9wZXJ0eSgnd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVz
X3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBmYWtlX2ZhaWxpbmdfdGVzdHMpCisgICAgICAg
IHNlbGYuZXhwZWN0X3Byb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0
c19mbGFraWVzJywgZmFrZV9mbGFreV90ZXN0cykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNl
bGYuZ2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2V4Y2Vl
ZF9mYWlsdXJlX2xpbWl0JykpCiAgICAgICAgIHJldHVybiByYwogCi0gICAgZGVmIHRlc3RfcnVu
X2VuZHNfdGhlbl9nb190b19hbmFseXplKHNlbGYpOgorICAgIGRlZiB0ZXN0X2xhc3RfcnVuX3dp
dGhfcGF0Y2hfZW5kc193aXRoX2xpc3Rfb2ZfZmFpbGluZ190ZXN0c190aGVuX3NjaGVkdWxlX3Vw
ZGF0ZV9saWJzX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2VsZik6CiAgICAgICAgIHNlbGYuY29u
ZmlndXJlU3RlcCgpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJl
cycsIFsnZmFrZS9zaG91bGQvbm90L2hhcHBlbi9mYWlsdXJlMS5odG1sJywgJ2ltcG9ydGVkL2Zh
a2UvZmFpbHVyZTIuaHRtbCddKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5f
Zmxha2llcycsIFtdKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBl
YXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsnZmFrZS9zaG91bGQvbm90
L2hhcHBlbi9mYWlsdXJlMS5odG1sJywgJ2ltcG9ydGVkL2Zha2UvZmFpbHVyZTIuaHRtbCddKQor
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19mbGFraWVzJywgW10pCiAgICAgICAgIG5leHRfc3RlcHMgPSBbXQogICAgICAgICBzZWxm
LnBhdGNoKHNlbGYuYnVpbGQsICdhZGRTdGVwc0FmdGVyQ3VycmVudFN0ZXAnLCBsYW1iZGEgczog
bmV4dF9zdGVwcy5leHRlbmQocykpCi0gICAgICAgIHNlbGYucGF0Y2goUnVuV2ViS2l0VGVzdHNS
ZXBlYXRGYWlsdXJlc1dpdGhvdXRDaGFuZ2VSZWRUcmVlLCAnZXZhbHVhdGVSZXN1bHQnLCBsYW1i
ZGEgcywgcjogcikKLSAgICAgICAgc2VsZi5nZXRfbnRoX3N0ZXAoMCkuZXZhbHVhdGVDb21tYW5k
KFNVQ0NFU1MpCisgICAgICAgIHNlbGYucGF0Y2goUnVuV2ViS2l0VGVzdHNSZXBlYXRGYWlsdXJl
c1JlZFRyZWUsICdldmFsdWF0ZVJlc3VsdCcsIGxhbWJkYSBzLCByOiByKQorICAgICAgICBzZWxm
LmdldF9udGhfc3RlcCgwKS5ldmFsdWF0ZUNvbW1hbmQoRkFJTFVSRSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKFJldmVydEFwcGxpZWRDaGFuZ2VzKCkgaW4gbmV4dF9zdGVwcykKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKEluc3RhbGxXcGVEZXBlbmRlbmNpZXMoKSBpbiBuZXh0X3N0ZXBzKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUoQ29tcGlsZVdlYktpdFdpdGhvdXRDaGFuZ2UocmV0cnlf
YnVpbGRfb25fZmFpbHVyZT1UcnVlKSBpbiBuZXh0X3N0ZXBzKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoUnVuV2ViS2l0VGVzdHNSZXBlYXRGYWlsdXJlc1dpdGhvdXRDaGFuZ2VSZWRUcmVlKCkg
aW4gbmV4dF9zdGVwcykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShBbmFseXplTGF5b3V0VGVz
dHNSZXN1bHRzUmVkVHJlZSgpIGluIG5leHRfc3RlcHMpCisKKyAgICBkZWYgdGVzdF9sYXN0X3J1
bl93aXRoX3BhdGNoX2VuZHNfd2l0aF9ub19mYWlsaW5nX3Rlc3RzX3RoZW5fZ29fdG9fYW5hbHl6
ZShzZWxmKToKKyAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKKyAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFp
bHVyZXMnLCBbXSkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9jaGFuZ2VfcmVwZWF0
X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFsnZmFrZS9zaG91bGQvbm90L2hhcHBlbi9mbGFr
eTEuaHRtbCcsICdpbXBvcnRlZC9mYWtlL2ZsYWt5Mi5odG1sJ10pCisgICAgICAgIG5leHRfc3Rl
cHMgPSBbXQorICAgICAgICBzZWxmLnBhdGNoKHNlbGYuYnVpbGQsICdhZGRTdGVwc0FmdGVyQ3Vy
cmVudFN0ZXAnLCBsYW1iZGEgczogbmV4dF9zdGVwcy5leHRlbmQocykpCisgICAgICAgIHNlbGYu
cGF0Y2goUnVuV2ViS2l0VGVzdHNSZXBlYXRGYWlsdXJlc1JlZFRyZWUsICdldmFsdWF0ZVJlc3Vs
dCcsIGxhbWJkYSBzLCByOiByKQorICAgICAgICBzZWxmLmdldF9udGhfc3RlcCgwKS5ldmFsdWF0
ZUNvbW1hbmQoRkFJTFVSRSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShSZXZlcnRBcHBsaWVk
Q2hhbmdlcygpIGluIG5leHRfc3RlcHMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoSW5zdGFs
bFdwZURlcGVuZGVuY2llcygpIGluIG5leHRfc3RlcHMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoQ29tcGlsZVdlYktpdFdpdGhvdXRDaGFuZ2UocmV0cnlfYnVpbGRfb25fZmFpbHVyZT1UcnVl
KSBpbiBuZXh0X3N0ZXBzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFJ1bldlYktpdFRlc3Rz
UmVwZWF0RmFpbHVyZXNXaXRob3V0Q2hhbmdlUmVkVHJlZSgpIGluIG5leHRfc3RlcHMpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZSgpIGlu
IG5leHRfc3RlcHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihzZWxmLmJ1aWxk
LCAncmVzdWx0cycpKQorCisKK2NsYXNzIFRlc3RSdW5XZWJLaXRUZXN0c1JlcGVhdEZhaWx1cmVz
V2l0aG91dENoYW5nZVJlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRl
c3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYubG9uZ01lc3NhZ2Ug
PSBUcnVlCisgICAgICAgIHNlbGYuanNvbkZpbGVOYW1lID0gJ2xheW91dC10ZXN0LXJlc3VsdHMv
ZnVsbF9yZXN1bHRzLmpzb24nCisgICAgICAgIHJldHVybiBzZWxmLnNldHVwX3Rlc3RfYnVpbGRf
c3RlcCgpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnRl
YXJfZG93bl90ZXN0X2J1aWxkX3N0ZXAoKQorCisgICAgZGVmIGNvbmZpZ3VyZVN0ZXAoc2VsZik6
CisgICAgICAgIHNlbGYuc2V0dXBfc3RlcChSdW5XZWJLaXRUZXN0c1JlcGVhdEZhaWx1cmVzV2l0
aG91dENoYW5nZVJlZFRyZWUoKSkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGxhdGZvcm0n
LCAnd3BlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ3dwZScp
CisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisK
KyAgICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYpOgorICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAo
KQorICAgICAgICBmaXJzdF9ydW5fZmFpbHVyZXMgPSBbJ2Zhc3QvY3NzL3Rlc3QxLmh0bWwnLCAn
aW1wb3J0ZWQvdGVzdC90ZXN0Mi5odG1sJywgJ2Zhc3Qvc3ZnL3Rlc3QzLnN2ZyddCisgICAgICAg
IGZpcnN0X3J1bl9mbGFraWVzID0gWydmYXN0L2Nzcy9mbGFreTEuaHRtbCcsICdpbXBvcnRlZC90
ZXN0L2ZsYWt5Mi5odG1sJywgJ2Zhc3Qvc3ZnL2ZsYWt5My5zdmcnXQorICAgICAgICB3aXRoX2No
YW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcyA9IFsnZmFzdC9j
c3MvdGVzdDEuaHRtbCddCisgICAgICAgIHdpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1
bHRzX2ZsYWtpZXMgPSBbJ2ltcG9ydGVkL3Rlc3QvdGVzdDIuaHRtbCcsICdmYXN0L3N2Zy90ZXN0
My5zdmcnXQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBm
aXJzdF9ydW5fZmFpbHVyZXMpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9m
bGFraWVzJywgZmlyc3RfcnVuX2ZsYWtpZXMpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dp
dGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgd2l0
aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMpCisgICAg
ICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRz
X2ZsYWtpZXMnLCB3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzKQor
ICAgICAgICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1hbmRzKAorICAgICAgICAgICAgRXhwZWN0U2hl
bGwod29ya2Rpcj0nd2tkaXInLAorICAgICAgICAgICAgICAgICAgICAgICAgbG9nZmlsZXM9eydq
c29uJzogc2VsZi5qc29uRmlsZU5hbWV9LAorICAgICAgICAgICAgICAgICAgICAgICAgbG9nX2Vu
dmlyb249RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBtYXhfdGltZT0xMDgwMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9MTk4MDAsCisgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tYW5kPVsnL2Jpbi9iYXNoJywgJy0tcG9zaXgnLCAnLW8nLCAncGlwZWZhaWwnLCAn
LWMnLCAncHl0aG9uMyBUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgLS1uby1idWlsZCAt
LW5vLXNob3ctcmVzdWx0cyAtLW5vLW5ldy10ZXN0LXJlc3VsdHMgLS1jbG9iYmVyLW9sZC1yZXN1
bHRzIC0tcmVsZWFzZSAtLXdwZSAtLXJlc3VsdHMtZGlyZWN0b3J5IGxheW91dC10ZXN0LXJlc3Vs
dHMgLS1kZWJ1Zy1yd3QtbG9nZ2luZyAtLXNraXAtZmFpbGluZy10ZXN0cyAtLWZ1bGx5LXBhcmFs
bGVsIC0tcmVwZWF0LWVhY2g9MTAgLS1za2lwcGVkPWFsd2F5cyBmYXN0L2Nzcy90ZXN0MS5odG1s
IDI+JjEgfCBUb29scy9TY3JpcHRzL2ZpbHRlci10ZXN0LWxvZ3MgbGF5b3V0J10KKyAgICAgICAg
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIC5leGl0KDApLAorICAgICAgICApCisgICAg
ICAgIHNlbGYuZXhwZWN0X291dGNvbWUocmVzdWx0PVNVQ0NFU1MsIHN0YXRlX3N0cmluZz0nbGF5
b3V0LXRlc3RzJykKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuX3N0ZXAoKQorCisgICAgZGVmIHRl
c3Rfc3RlcF93aXRoX2NoYW5nZV9kaWRfdGltZW91dChzZWxmKToKKyAgICAgICAgc2VsZi5jb25m
aWd1cmVTdGVwKCkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0
aycpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScp
CisgICAgICAgIGZpcnN0X3J1bl9mYWlsdXJlcyA9IFsnZmFzdC9jc3MvdGVzdDEuaHRtbCcsICdp
bXBvcnRlZC90ZXN0L3Rlc3QyLmh0bWwnLCAnZmFzdC9zdmcvdGVzdDMuc3ZnJ10KKyAgICAgICAg
Zmlyc3RfcnVuX2ZsYWtpZXMgPSBbJ2Zhc3QvY3NzL2ZsYWt5MS5odG1sJywgJ2ltcG9ydGVkL3Rl
c3QvZmxha3kyLmh0bWwnLCAnZmFzdC9zdmcvZmxha3kzLnN2ZyddCisgICAgICAgIHdpdGhfY2hh
bmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzID0gWydmYXN0L2Nz
cy90ZXN0MS5odG1sJ10KKyAgICAgICAgd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3Vs
dHNfZmxha2llcyA9IFsnaW1wb3J0ZWQvdGVzdC90ZXN0Mi5odG1sJywgJ2Zhc3Qvc3ZnL3Rlc3Qz
LnN2ZyddCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIGZp
cnN0X3J1bl9mYWlsdXJlcykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2Zs
YWtpZXMnLCBmaXJzdF9ydW5fZmxha2llcykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0
aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCB3aXRo
X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcykKKyAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
Zmxha2llcycsIHdpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMpCisg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc190aW1l
ZG91dCcsIFRydWUpCisgICAgICAgIHNlbGYuZXhwZWN0UmVtb3RlQ29tbWFuZHMoCisgICAgICAg
ICAgICBFeHBlY3RTaGVsbCh3b3JrZGlyPSd3a2RpcicsCisgICAgICAgICAgICAgICAgICAgICAg
ICBsb2dmaWxlcz17J2pzb24nOiBzZWxmLmpzb25GaWxlTmFtZX0sCisgICAgICAgICAgICAgICAg
ICAgICAgICBsb2dfZW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heF90
aW1lPTEwODAwLAorICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dD0xOTgwMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9WycvYmluL2Jhc2gnLCAnLS1wb3NpeCcsICctbycs
ICdwaXBlZmFpbCcsICctYycsICdweXRob24zIFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0
cyAtLW5vLWJ1aWxkIC0tbm8tc2hvdy1yZXN1bHRzIC0tbm8tbmV3LXRlc3QtcmVzdWx0cyAtLWNs
b2JiZXItb2xkLXJlc3VsdHMgLS1yZWxlYXNlIC0td3BlIC0tcmVzdWx0cy1kaXJlY3RvcnkgbGF5
b3V0LXRlc3QtcmVzdWx0cyAtLWRlYnVnLXJ3dC1sb2dnaW5nIC0tc2tpcC1mYWlsaW5nLXRlc3Rz
IC0tZnVsbHktcGFyYWxsZWwgLS1yZXBlYXQtZWFjaD0xMCAtLXNraXBwZWQ9YWx3YXlzIGZhc3Qv
Y3NzL3Rlc3QxLmh0bWwgZmFzdC9zdmcvdGVzdDMuc3ZnIGltcG9ydGVkL3Rlc3QvdGVzdDIuaHRt
bCAyPiYxIHwgVG9vbHMvU2NyaXB0cy9maWx0ZXItdGVzdC1sb2dzIGxheW91dCddCisgICAgICAg
ICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAuZXhpdCgwKSwKKyAgICAgICAgKQorICAg
ICAgICBzZWxmLmV4cGVjdF9vdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J2xh
eW91dC10ZXN0cycpCisgICAgICAgIHJldHVybiBzZWxmLnJ1bl9zdGVwKCkKKworICAgIEBkZWZl
ci5pbmxpbmVDYWxsYmFja3MKKyAgICBkZWYgdGVzdF9zZXRfcHJvcGVydGllc193aGVuX2V4ZWN1
dGVkX3Njb3BlX3RoaXNfY2xhc3Moc2VsZik6CisgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgp
CisgICAgICAgIGZpcnN0X3J1bl9mYWlsdXJlcyA9IFsnZmFzdC9jc3MvdGVzdDEuaHRtbCcsICdp
bXBvcnRlZC90ZXN0L3Rlc3QyLmh0bWwnLCAnZmFzdC9zdmcvdGVzdDMuc3ZnJ10KKyAgICAgICAg
Zmlyc3RfcnVuX2ZsYWtpZXMgPSBbJ2Zhc3QvY3NzL2ZsYWt5MS5odG1sJywgJ2ltcG9ydGVkL3Rl
c3QvZmxha3kyLmh0bWwnLCAnZmFzdC9zdmcvZmxha3kzLnN2ZyddCisgICAgICAgIHdpdGhfY2hh
bmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzID0gWydmYXN0L2Nz
cy90ZXN0MS5odG1sJ10KKyAgICAgICAgd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3Vs
dHNfZmxha2llcyA9IFsnaW1wb3J0ZWQvdGVzdC90ZXN0Mi5odG1sJywgJ2Zhc3Qvc3ZnL3Rlc3Qz
LnN2ZyddCisgICAgICAgICMgU2V0IGdvb2QgdmFsdWVzIGZvciBwcm9wZXJ0aWVzIHRoYXQgb25s
eSB0aGUgc3VwZXJjbGFzcyBzaG91bGQgc2V0CisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2Zp
cnN0X3J1bl9mYWlsdXJlcycsIGZpcnN0X3J1bl9mYWlsdXJlcykKKyAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBmaXJzdF9ydW5fZmxha2llcykKKyAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCcsIEZh
bHNlKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVy
ZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIHdpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJl
c19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3
aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgd2l0aF9jaGFuZ2Vf
cmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3RpbWVkb3V0JywgRmFsc2UpCisgICAgICAg
IHNlbGYuZXhwZWN0UmVtb3RlQ29tbWFuZHMoCisgICAgICAgICAgICBFeHBlY3RTaGVsbCh3b3Jr
ZGlyPSd3a2RpcicsCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dmaWxlcz17J2pzb24nOiBz
ZWxmLmpzb25GaWxlTmFtZX0sCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dfZW52aXJvbj1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heF90aW1lPTEwODAwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgdGltZW91dD0xOTgwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv
bW1hbmQ9WycvYmluL2Jhc2gnLCAnLS1wb3NpeCcsICctbycsICdwaXBlZmFpbCcsICctYycsICdw
eXRob24zIFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cyAtLW5vLWJ1aWxkIC0tbm8tc2hv
dy1yZXN1bHRzIC0tbm8tbmV3LXRlc3QtcmVzdWx0cyAtLWNsb2JiZXItb2xkLXJlc3VsdHMgLS1y
ZWxlYXNlIC0td3BlIC0tcmVzdWx0cy1kaXJlY3RvcnkgbGF5b3V0LXRlc3QtcmVzdWx0cyAtLWRl
YnVnLXJ3dC1sb2dnaW5nIC0tc2tpcC1mYWlsaW5nLXRlc3RzIC0tZnVsbHktcGFyYWxsZWwgLS1y
ZXBlYXQtZWFjaD0xMCAtLXNraXBwZWQ9YWx3YXlzIGZhc3QvY3NzL3Rlc3QxLmh0bWwgMj4mMSB8
IFRvb2xzL1NjcmlwdHMvZmlsdGVyLXRlc3QtbG9ncyBsYXlvdXQnXQorICAgICAgICAgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgLmV4aXQoMikKKyAgICAgICAgKQorICAgICAgICAjIFBh
dGNoIExheW91dFRlc3RGYWlsdXJlcy5yZXN1bHRzX2Zyb21fc3RyaW5nKCkgc28gaXQgYWx3YXlz
IHJlcG9ydHMgZmFrZSB2YWx1ZXMuCisgICAgICAgICMgQ2hlY2sgdGhpcyBmYWtlIHZhbHVlcyBk
byBub3QgZW5kIG9uIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYmVsb25nIHRvIHRoZSBzdXBlcmNsYXNz
LgorICAgICAgICBmYWtlX2ZhaWxpbmdfdGVzdHMgPSBbJ2Zha2Uvc2hvdWxkL25vdC9oYXBwZW4v
ZmFpbHVyZTEuaHRtbCcsICdpbXBvcnRlZC9mYWtlL2ZhaWx1cmUyLmh0bWwnXQorICAgICAgICBm
YWtlX2ZsYWt5X3Rlc3RzID0gWydmYWtlL3Nob3VsZC9ub3QvaGFwcGVuL2ZsYWt5MS5odG1sJywg
J2ltcG9ydGVkL2Zha2UvZmxha3kyLmh0bWwnXQorICAgICAgICBmYWtlX2xheW91dF90ZXN0X2Zh
aWx1cmVzID0gTW9ja0xheW91dFRlc3RGYWlsdXJlcyhmYWtlX2ZhaWxpbmdfdGVzdHMsIGZha2Vf
Zmxha3lfdGVzdHMsIFRydWUpCisgICAgICAgIHNlbGYucGF0Y2goTGF5b3V0VGVzdEZhaWx1cmVz
LCAncmVzdWx0c19mcm9tX3N0cmluZycsIGxhbWJkYSBmOiBmYWtlX2xheW91dF90ZXN0X2ZhaWx1
cmVzKQorICAgICAgICBzZWxmLmV4cGVjdF9vdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9z
dHJpbmc9J2xheW91dC10ZXN0cyAoZmFpbHVyZSknKQorICAgICAgICByYyA9IHlpZWxkIHNlbGYu
cnVuX3N0ZXAoKQorICAgICAgICAjIGZpcnN0X3J1biBwcm9wZXJ0aWVzIHNob3VsZCBub3QgYmUg
c2V0IHRvIGZha2VfbGF5b3V0X3Rlc3RfZmFpbHVyZXMgd2hlbiBydW5uaW5nIFJ1bldlYktpdFRl
c3RzUmVwZWF0RmFpbHVyZXNXaXRob3V0Q2hhbmdlUmVkVHJlZSgpCisgICAgICAgIHNlbGYuZXhw
ZWN0X3Byb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBmaXJzdF9ydW5fZmFpbHVyZXMpCisg
ICAgICAgIHNlbGYuZXhwZWN0X3Byb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIGZpcnN0X3J1
bl9mbGFraWVzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuZ2V0UHJvcGVydHkoJ2Zp
cnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnKSkKKyAgICAgICAgc2VsZi5leHBlY3Rf
cHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2Zh
aWx1cmVzJywgd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFp
bHVyZXMpCisgICAgICAgIHNlbGYuZXhwZWN0X3Byb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRf
ZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfZmxha2llcykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmdldFByb3BlcnR5
KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQnKSkKKyAgICAgICAgIyBUZXN0
IGFsc28gdGhhdCB0aGlzIGZha2UgdmFsdWVzIGFyZSBzZXQgX29ubHlfIGZvciB0aGUgcHJvcGVy
dGllcyB0aGlzIGNsYXNzIHNob3VsZCBkZWZpbmUKKyAgICAgICAgc2VsZi5leHBlY3RfcHJvcGVy
dHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1
cmVzJywgZmFrZV9mYWlsaW5nX3Rlc3RzKQorICAgICAgICBzZWxmLmV4cGVjdF9wcm9wZXJ0eSgn
d2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIGZha2VfZmxh
a3lfdGVzdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmdldFByb3BlcnR5KCd3aXRo
b3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCcp
KQorICAgICAgICByZXR1cm4gcmMKIAogCiBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVz
dWx0c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToK
QEAgLTMyNTYsOCArMzM2NCwxMCBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0
c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICBz
ZWxmLmNvbmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1
cmUyLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMn
LCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQorICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFr
eV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRl
c3QvZmFpbHVyZTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2No
YW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFtdKQotICAg
ICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19mbGFraWVzJywgWyJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQv
Zmxha3kuaHRtbCJdKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9y
ZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9mbGFr
eS5odG1sIl0pCiAgICAgICAgIHNlbGYuZXhwZWN0X291dGNvbWUocmVzdWx0PUZBSUxVUkUsIHN0
YXRlX3N0cmluZz0nRm91bmQgMSBuZXcgdGVzdCBmYWlsdXJlOiB0ZXN0L2ZhaWx1cmUxLmh0bWwg
KGZhaWx1cmUpJykKICAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1bl9zdGVwKCkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAyKQpAQCAtMzI3NCw4
ICszMzg0LDEwIEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZShC
dWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAgIHNlbGYuY29uZmln
dXJlQ29tbW9uUHJvcGVydGllcygpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1
bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIs
ICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxh
a3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycs
IFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCisgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5
X2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFp
bHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKKyAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgnd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2ll
cycsIFsidGVzdC9mYWlsdXJlMi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dp
dGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywg
WyJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiXSkKLSAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFsi
dGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiXSkKKyAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfZmxha2llcycsIFsidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAg
ICBzZWxmLmV4cGVjdF9vdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J0ZvdW5k
IDEgbmV3IHRlc3QgZmFpbHVyZTogdGVzdC9mYWlsdXJlMS5odG1sIChmYWlsdXJlKScpCiAgICAg
ICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5fc3RlcCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMykKQEAgLTMyOTQsOCArMzQwNiwxMCBAQCBjbGFz
cyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRp
dGlvbnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICBzZWxmLmNvbmZpZ3VyZUNvbW1vblByb3BlcnRp
ZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRl
c3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5o
dG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0
ZXN0L3ByZS1leGlzdGVudC9mbGFreTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTMu
aHRtbCJdKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFp
bHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9wcmUtZXhpc3RlbnQvZmFp
bHVyZS5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVh
dF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0
bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2Zh
aWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2Zh
aWx1cmUuaHRtbCJdKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9y
ZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9mbGFr
eS5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVh
dF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbXSkKICAgICAgICAgc2VsZi5leHBlY3Rfb3V0
Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdQYXNzZWQgbGF5b3V0IHRlc3RzJykK
ICAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1bl9zdGVwKCkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAyKQpAQCAtMzMxMiw4ICszNDI2LDEwIEBA
IGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZShCdWlsZFN0ZXBNaXhp
bkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAgIHNlbGYuY29uZmlndXJlQ29tbW9uUHJv
cGVydGllcygpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycs
IFsidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kxLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Mi5odG1s
IiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5My5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1
cmVzJywgW10pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9m
YWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5MS5odG1s
Il0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWls
dXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgW10pCi0gICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBb
InRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5MS5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbXSkK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVz
X3JldGNvZGUnLCBTVUNDRVNTKQogICAgICAgICBzZWxmLmV4cGVjdF9vdXRjb21lKHJlc3VsdD1T
VUNDRVNTLCBzdGF0ZV9zdHJpbmc9J1Bhc3NlZCBsYXlvdXQgdGVzdHMnKQogICAgICAgICBzdGVw
X3Jlc3VsdCA9IHNlbGYucnVuX3N0ZXAoKQpAQCAtMzM4NSw1NyArMzUwMSw1MCBAQCBjbGFzcyBU
ZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlv
bnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGYnVGVzdCBuYW1l
OiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vV2ViS2l0L1dlYktpdC9ibG9iL21haW4vTGF5
b3V0VGVzdHMve2ZsYWt5X3Rlc3R9Ij57Zmxha3lfdGVzdH08L2E+JyBpbiBzZWxmLl9lbWFpbHNf
bGlzdFswXSkKICAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0CiAKLSAgICBkZWYgdGVzdF9maXJz
dF9zdGVwX3RpbWVvdXRzKHNlbGYpOgorICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9jaGFu
Z2VfZXhpdHNfZWFybHlfZXJyb3Ioc2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgp
CiAgICAgICAgIHNlbGYuY29uZmlndXJlQ29tbW9uUHJvcGVydGllcygpCi0gICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFtdKQotICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFtdKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCdmaXJzdF9ydW5fdGltZWRvdXQnLCBUcnVlKQotICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVj
dHVyZV9lcnJvciA9ICdUaGUgbGF5b3V0LXRlc3QgcnVuIHdpdGggY2hhbmdlIHRpbWVkIG91dCwg
cmV0cnlpbmcgd2l0aCB0aGUgaG9wZSBpdCB3YXMgYSByYW5kb20gaW5mcmFzdHJ1Y3R1cmUgZXJy
b3IuJworICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRl
c3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3Rl
bnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKKyAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbInRlc3QvZmxha3kxLmh0
bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRo
X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVz
dC9mYWlsdXJlMS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0
L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dp
dGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvZmFpbHVy
ZTIuaHRtbCJdKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBl
YXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9wcmUtZXhpc3Rl
bnQvZmFpbHVyZS5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfY2hh
bmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50
L2ZsYWt5Lmh0bWwiXSkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9jaGFuZ2VfcmVw
ZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnLCBUcnVlKQorICAgICAg
ICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdPbmUgb2YgdGhlIHN0ZXBzIGZvciBy
ZXRyeWluZyB0aGUgZmFpbGVkIHRlc3RzIGhhcyBleGl0ZWQgZWFybHksIGJ1dCB0aGlzIHN0ZXBz
IHNob3VsZCBydW4gd2l0aG91dCAiLS1leGl0LWFmdGVyLW4tZmFpbHVyZXMiIHN3aXRjaCwgc28g
dGhleSBzaG91bGQgbm90IGV4aXQgZWFybHkuJwogICAgICAgICBzZWxmLmV4cGVjdF9vdXRjb21l
KHJlc3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPWYnVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBp
c3N1ZToge2V4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yfVxuUmV0cnlpbmcgYnVpbGQgW3Jl
dHJ5IGNvdW50IGlzIDAgb2YgM10gKHJldHJ5KScpCiAgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2Vs
Zi5ydW5fc3RlcCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19s
aXN0KSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJl
X2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQogICAgICAgICByZXR1cm4gc3RlcF9yZXN1
bHQKIAotICAgIGRlZiB0ZXN0X2ZpcnN0X3N0ZXBfdGltZW91dHNfbGFzdF90cnkoc2VsZik6Ci0g
ICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCi0gICAgICAgIHNlbGYuY29uZmlndXJlQ29tbW9u
UHJvcGVydGllcygpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJl
cycsIFtdKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFtd
KQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fdGltZWRvdXQnLCBUcnVlKQot
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjbGVhbl90cmVlX3J1bl9zdGF0dXMnLCBTVUNDRVNT
KQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIEFuYWx5emVMYXlvdXRU
ZXN0c1Jlc3VsdHNSZWRUcmVlLk1BWF9SRVRSWSkKLSAgICAgICAgZXhwZWN0ZWRfaW5mcmFzdHJ1
Y3R1cmVfZXJyb3IgPSAnVGhlIGxheW91dC10ZXN0IHJ1biB3aXRoIGNoYW5nZSBnZW5lcmF0ZWQg
bm8gbGlzdCBvZiByZXN1bHRzIGFuZCBleGl0ZWQgd2l0aCBlcnJvciwgcmV0cnlpbmcgd2l0aCB0
aGUgaG9wZSBpdCB3YXMgYSByYW5kb20gaW5mcmFzdHJ1Y3R1cmUgZXJyb3IuJwotICAgICAgICBz
ZWxmLmV4cGVjdF9vdXRjb21lKHJlc3VsdD1GQUlMVVJFLCAgc3RhdGVfc3RyaW5nPSdGb3VuZCB1
bmV4cGVjdGVkIGZhaWx1cmUgd2l0aCBjaGFuZ2UgKGZhaWx1cmUpJykKLSAgICAgICAgc3RlcF9y
ZXN1bHQgPSBzZWxmLnJ1bl9zdGVwKCkKLSAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0Ci0KICAg
ICBkZWYgdGVzdF9zdGVwX3JldHJ5X3dpdGhvdXRfY2hhbmdlX2V4aXRzX2Vhcmx5X2Vycm9yKHNl
bGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLmNvbmZpZ3Vy
ZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5f
ZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAi
dGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5
Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBb
InRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQorICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9m
YWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1
cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCisgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMn
LCBbInRlc3QvZmFpbHVyZTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRo
b3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsi
dGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRl
c3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
d2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGlt
aXQnLCBUcnVlKQotICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUg
c3RlcCAibGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LWNoYW5nZSIgaGFzIGV4
aXRlZCBlYXJseSwgYnV0IHRoaXMgc3RlcCBzaG91bGQgcnVuIHdpdGhvdXQgIi0tZXhpdC1hZnRl
ci1uLWZhaWx1cmVzIiBzd2l0Y2gsIHNvIGl0IHNob3VsZCBub3QgZXhpdCBlYXJseS4nCisgICAg
ICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ09uZSBvZiB0aGUgc3RlcHMgZm9y
IHJldHJ5aW5nIHRoZSBmYWlsZWQgdGVzdHMgaGFzIGV4aXRlZCBlYXJseSwgYnV0IHRoaXMgc3Rl
cHMgc2hvdWxkIHJ1biB3aXRob3V0ICItLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcyIgc3dpdGNoLCBz
byB0aGV5IHNob3VsZCBub3QgZXhpdCBlYXJseS4nCiAgICAgICAgIHNlbGYuZXhwZWN0X291dGNv
bWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9ZidVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJl
IGlzc3VlOiB7ZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3J9XG5SZXRyeWluZyBidWlsZCBb
cmV0cnkgY291bnQgaXMgMCBvZiAzXSAocmV0cnkpJykKICAgICAgICAgc3RlcF9yZXN1bHQgPSBz
ZWxmLnJ1bl9zdGVwKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxz
X2xpc3QpLCAxKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1
cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCiAgICAgICAgIHJldHVybiBzdGVwX3Jl
c3VsdAogCi0gICAgZGVmIHRlc3Rfc3RlcF9yZXRyeV93aXRob3V0X2NoYW5nZV9zdWNjZXNzKHNl
bGYpOgorICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9jaGFuZ2VfcGFzcyhzZWxmKToKICAg
ICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKICAgICAgICAgc2VsZi5jb25maWd1cmVDb21tb25Q
cm9wZXJ0aWVzKCkKICAgICAgICAgZmlyc3RfcnVuX2ZhaWx1cmVzID0gWyJ0ZXN0L2ZhaWx1cmUx
Lmh0bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5MS5o
dG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Mi5odG1sIl0KICAgICAgICAgZmlyc3RfcnVu
X2ZsYWtpZXMgPSBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdCiAgICAg
ICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIGZpcnN0X3J1bl9mYWls
dXJlcykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBmaXJz
dF9ydW5fZmxha2llcykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9jaGFuZ2Vf
cmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbXSkKLSAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
Zmxha2llcycsIGZpcnN0X3J1bl9mYWlsdXJlcykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
d2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3JldGNvZGUnLCBTVUNDRVNTKQorICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19u
b25mbGFreV9mYWlsdXJlcycsIFtdKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2No
YW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgW10pCisgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXRjb2RlJywgU1VDQ0VT
UykKICAgICAgICAgc2VsZi5leHBlY3Rfb3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3Ry
aW5nPSdQYXNzZWQgbGF5b3V0IHRlc3RzJykKICAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1
bl9zdGVwKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3Qp
LCAxKQpAQCAtMzQ0NCwxNiArMzU1MywxNiBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3Rz
UmVzdWx0c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwogICAg
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGYnVGVzdCBuYW1lOiA8YSBocmVmPSJodHRwczovL2dp
dGh1Yi5jb20vV2ViS2l0L1dlYktpdC9ibG9iL21haW4vTGF5b3V0VGVzdHMve2ZsYWt5X3Rlc3R9
Ij57Zmxha3lfdGVzdH08L2E+JyBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKICAgICAgICAgcmV0
dXJuIHN0ZXBfcmVzdWx0CiAKLSAgICBkZWYgdGVzdF9zdGVwX3JldHJ5X3dpdGhvdXRfY2hhbmdl
X3dhcm5pbmdzKHNlbGYpOgorICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9jaGFuZ2Vfd2Fy
bmluZ3Moc2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCiAgICAgICAgIHNlbGYu
Y29uZmlndXJlQ29tbW9uUHJvcGVydGllcygpCiAgICAgICAgIGZpcnN0X3J1bl9mYWlsdXJlcyA9
IFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1l
eGlzdGVudC9mbGFreTEuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTIuaHRtbCJdCiAg
ICAgICAgIGZpcnN0X3J1bl9mbGFraWVzID0gWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxh
a3kyLmh0bWwiXQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMn
LCBmaXJzdF9ydW5fZmFpbHVyZXMpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1
bl9mbGFraWVzJywgZmlyc3RfcnVuX2ZsYWtpZXMpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVz
JywgW10pCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9m
YWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBmaXJzdF9ydW5fZmFpbHVyZXMpCi0gICAgICAgIHNl
bGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXRjb2RlJywg
V0FSTklOR1MpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9m
YWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgW10pCisgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBb
InRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5MS5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXRjb2RlJywgV0FSTklOR1MpCiAgICAg
ICAgIHNlbGYuZXhwZWN0X291dGNvbWUocmVzdWx0PVNVQ0NFU1MsIHN0YXRlX3N0cmluZz0nUGFz
c2VkIGxheW91dCB0ZXN0cycpCiAgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5fc3RlcCgp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMSkKQEAg
LTM0NjIsMTYgKzM1NzEsMTYgQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNS
ZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShmJ1Rlc3QgbmFtZTogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t
L1dlYktpdC9XZWJLaXQvYmxvYi9tYWluL0xheW91dFRlc3RzL3tmbGFreV90ZXN0fSI+e2ZsYWt5
X3Rlc3R9PC9hPicgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCiAgICAgICAgIHJldHVybiBzdGVw
X3Jlc3VsdAogCi0gICAgZGVmIHRlc3Rfc3RlcF9yZXRyeV93aXRob3V0X2NoYW5nZV9mYWlsdXJl
KHNlbGYpOgorICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9jaGFuZ2VfZXJyb3Jfd2l0aF9m
bGFraWVzKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxm
LmNvbmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBmaXJzdF9ydW5fZmFpbHVyZXMg
PSBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmxha3kxLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kyLmh0bWwiXQog
ICAgICAgICBmaXJzdF9ydW5fZmxha2llcyA9IFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2Zs
YWt5Mi5odG1sIl0KICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVz
JywgZmlyc3RfcnVuX2ZhaWx1cmVzKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9y
dW5fZmxha2llcycsIGZpcnN0X3J1bl9mbGFraWVzKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJl
cycsIFtdKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRf
ZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgZmlyc3RfcnVuX2ZhaWx1cmVzKQotICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmV0Y29kZScs
IEZBSUxVUkUpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9m
YWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgW10pCisgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBb
InRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5MS5odG1sIl0pCisgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXRjb2RlJywgRkFJTFVSRSkKICAgICAg
ICAgc2VsZi5leHBlY3Rfb3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdQYXNz
ZWQgbGF5b3V0IHRlc3RzJykKICAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1bl9zdGVwKCkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAxKQpAQCAt
MzQ4NSwxMCArMzU5NCwyOCBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1Jl
ZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICBzZWxm
LmNvbmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdm
aXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUy
Lmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0
ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2Zs
YWtpZXMnLCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQotICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfdGltZWRv
dXQnLCBUcnVlKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRf
ZmFpbHVyZXNfdGltZWRvdXQnLCBUcnVlKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRo
b3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsi
dGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRl
c3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKLSAgICAgICAgZXhwZWN0ZWRfaW5mcmFzdHJ1
Y3R1cmVfZXJyb3IgPSAnVGhlIHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0
aG91dC1jaGFuZ2UiIHdhcyBpbnRlcnJ1bXBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVv
dXQuJworICAgICAgICBzZWxmLmV4cGVjdF9vdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9z
dHJpbmc9J0ZvdW5kIDIgbmV3IHRlc3QgZmFpbHVyZXM6IHRlc3QvZmFpbHVyZTEuaHRtbCB0ZXN0
L2ZhaWx1cmUyLmh0bWwgKGZhaWx1cmUpJykKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1
bl9zdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3Qp
LCAyKQorICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUgc3RlcCAi
bGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRoLWNoYW5nZSIgcmVhY2hlZCB0aGUgdGlt
ZW91dCBidXQgdGhlIHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1j
aGFuZ2UiIGVuZGVkLiBOb3QgdHJ5aW5nIHRvIHJlcGVhdCB0aGlzLiBSZXBvcnRpbmcgMiBmYWls
dXJlcyBmcm9tIHRoZSBmaXJzdCBydW4uJworICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0
ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogTGF5b3V0IHRlc3QgZmFpbHVyZSBmb3IgUGF0Y2gn
IGluIHNlbGYuX2VtYWlsc19saXN0WzFdKQorICAgICAgICBmb3IgZmFpbGVkX3Rlc3QgaW4gWyd0
ZXN0L2ZhaWx1cmUxLmh0bWwnLCAndGVzdC9mYWlsdXJlMi5odG1sJ106CisgICAgICAgICAgICBz
ZWxmLmFzc2VydFRydWUoZmFpbGVkX3Rlc3QgaW4gc2VsZi5fZW1haWxzX2xpc3RbMV0pCisgICAg
ICAgIHJldHVybiBzdGVwX3Jlc3VsdAorCisgICAgZGVmIHRlc3Rfc3RlcF9yZXRyeV93aXRoX2No
YW5nZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYpOgorICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAo
KQorICAgICAgICBzZWxmLmNvbmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQorICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIs
ICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwg
InRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIu
aHRtbCJdKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFp
bHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFtdKQorICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgW10p
CisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19y
ZXRjb2RlJywgRkFJTFVSRSkKKyAgICAgICAgZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3Ig
PSAnVGhlIHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMiIGZhaWxlZCB0byBnZW5l
cmF0ZSBhbnkgbGlzdCBvZiBmYWlsdXJlcyBvciBmbGFraWVzIGFuZCByZXR1cm5lZCBhbiBlcnJv
ciBjb2RlLicKICAgICAgICAgc2VsZi5leHBlY3Rfb3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRl
X3N0cmluZz1mJ1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IHtleHBlY3RlZF9pbmZy
YXN0cnVjdHVyZV9lcnJvcn1cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAwIG9mIDNd
IChyZXRyeSknKQogICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuX3N0ZXAoKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCksIDEpCkBAIC0zNTAwLDYg
KzM2MjcsOSBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQnVp
bGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICBzZWxmLmNvbmZpZ3Vy
ZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5f
ZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAi
dGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5
Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBb
InRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQorICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9m
YWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCJdKQor
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19mbGFraWVzJywgW10pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdl
X3JlcGVhdF9mYWlsdXJlc19yZXRjb2RlJywgRkFJTFVSRSkKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnd2l0aG91dF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFp
bHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9jaGFuZ2VfcmVw
ZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmV0Y29kZScsIEZBSUxVUkUpCkBA
IC0zNTE1LDYgKzM2NDUsNyBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1Jl
ZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICBzZWxm
LmNvbmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdm
aXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUy
Lmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0
ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2Zs
YWtpZXMnLCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQorICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQn
LCBUcnVlKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRf
ZmFpbHVyZXNfdGltZWRvdXQnLCBUcnVlKQogICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVy
ZV9lcnJvciA9ICdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0
LWNoYW5nZSIgd2FzIGludGVycnVtcGVkIGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC4n
CiAgICAgICAgIHNlbGYuZXhwZWN0X291dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9
ZidVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3VlOiB7ZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1
cmVfZXJyb3J9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMCBvZiAzXSAocmV0cnkp
JykKQEAgLTM1MjgsNiArMzY1OSw4IEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1
bHRzUmVkVHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAg
IHNlbGYuY29uZmlndXJlQ29tbW9uUHJvcGVydGllcygpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFp
bHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9y
dW5fZmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCisg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1
bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkK
KyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfZmxha2llcycsIFsidGVzdC9mYWlsdXJlMi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ3dpdGhvdXRfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc190aW1lZG91dCcsIFRydWUp
CiAgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ1RoZSBzdGVwICJsYXlv
dXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtY2hhbmdlIiB3YXMgaW50ZXJydW1wZWQg
YmVjYXVzZSBpdCByZWFjaGVkIHRoZSB0aW1lb3V0LicKICAgICAgICAgc2VsZi5leHBlY3Rfb3V0
Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz1mJ1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1
cmUgaXNzdWU6IHtleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvcn1cblJldHJ5aW5nIGJ1aWxk
IFtyZXRyeSBjb3VudCBpcyAwIG9mIDNdIChyZXRyeSknKQpAQCAtMzU0MSw2ICszNjc0LDggQEAg
Y2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEJ1aWxkU3RlcE1peGlu
QWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAgc2VsZi5jb25maWd1cmVDb21tb25Qcm9w
ZXJ0aWVzKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywg
WyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIiwgInRlc3QvcHJlLWV4
aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCiAg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0ZXN0L2ZsYWt5
MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
d2l0aF9jaGFuZ2VfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBb
InRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAi
dGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0L2Zh
aWx1cmUyLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9jaGFuZ2Vf
cmVwZWF0X2ZhaWx1cmVzX3RpbWVkb3V0JywgVHJ1ZSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgncmV0cnlfY291bnQnLCAyKQogICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJv
ciA9ICdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LWNoYW5n
ZSIgd2FzIGludGVycnVtcGVkIGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC4nCkBAIC0z
NTU1LDYgKzM2OTAsOCBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRy
ZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICBzZWxmLmNv
bmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJz
dF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0
bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50
L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtp
ZXMnLCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQorICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCd3aXRoX2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25m
bGFreV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50
L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCisgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfY2hhbmdlX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2Zs
YWtpZXMnLCBbInRlc3QvZmFpbHVyZTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCd3aXRob3V0X2NoYW5nZV9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQnLCBUcnVlKQogICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIDMpCiAgICAgICAgIGV4cGVjdGVkX2lu
ZnJhc3RydWN0dXJlX2Vycm9yID0gJ1RoZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1
cmVzLXdpdGhvdXQtY2hhbmdlIiB3YXMgaW50ZXJydW1wZWQgYmVjYXVzZSBpdCByZWFjaGVkIHRo
ZSB0aW1lb3V0LicK
</data>

          </attachment>
      

    </bug>

</bugzilla>