<?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>236705</bug_id>
          
          <creation_ts>2022-02-16 07:54:02 -0800</creation_ts>
          <short_desc>[EWS][GTK] Send only one e-mail with all the list of flakies</short_desc>
          <delta_ts>2022-02-16 12:54:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231999</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=236654</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>dpino</cc>
    
    <cc>jbedard</cc>
    
    <cc>lmoura</cc>
    
    <cc>psaavedra</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842286</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2022-02-16 07:54:02 -0800</bug_when>
    <thetext>The current EWS for GTK layout tests is sending one e-mail per flaky detected (one per test).
This seems is too much and we are spamming ourselves.

Change this to only send one e-mail per run with the list of all flakies detected in the body of the e-mail</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842288</commentid>
    <comment_count>1</comment_count>
      <attachid>452198</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2022-02-16 08:01:03 -0800</bug_when>
    <thetext>Created attachment 452198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842349</commentid>
    <comment_count>2</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2022-02-16 10:00:19 -0800</bug_when>
    <thetext>Ryan what do you think about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842387</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2022-02-16 10:48:04 -0800</bug_when>
    <thetext>I&apos;m going to upload a new version that adds unit tests for this, to check that the mail messages are created with the expected content</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842388</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2022-02-16 10:49:29 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #2)
&gt; Ryan what do you think about this?

Note that this will only affect the GTK layout tests on the EWS.

The other EWS for layout test (Apple ones) still keep sending one e-mail per flaky test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842392</commentid>
    <comment_count>5</comment_count>
      <attachid>452213</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2022-02-16 10:53:17 -0800</bug_when>
    <thetext>Created attachment 452213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842410</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2022-02-16 11:34:18 -0800</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #4)
&gt; (In reply to Aakash Jain from comment #2)
&gt; &gt; Ryan what do you think about this?
&gt; 
&gt; Note that this will only affect the GTK layout tests on the EWS.
&gt; 
&gt; The other EWS for layout test (Apple ones) still keep sending one e-mail per
&gt; flaky test
Got it, thank you for clarifying!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842433</commentid>
    <comment_count>7</comment_count>
      <attachid>452226</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2022-02-16 12:00:42 -0800</bug_when>
    <thetext>Created attachment 452226
Patch

trying EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842457</commentid>
    <comment_count>8</comment_count>
      <attachid>452230</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2022-02-16 12:43:31 -0800</bug_when>
    <thetext>Created attachment 452230
Patch

trying EWS again, includes also the fixes commented at https://bugs.webkit.org/show_bug.cgi?id=236654#c4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842464</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2022-02-16 12:53:09 -0800</bug_when>
    <thetext>Committed r289947 (247349@trunk): &lt;https://commits.webkit.org/247349@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842465</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-16 12:54:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/89043231&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452198</attachid>
            <date>2022-02-16 08:01:03 -0800</date>
            <delta_ts>2022-02-16 10:53:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236705-20220216160102.patch</filename>
            <type>text/plain</type>
            <size>7052</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQxNjJiYmQ0ZTcwOGYzYjU4NmM2NDZkOWYyY2ViMjM1
M2ZiYWY0YS4uYWQ4NzExZjNiNjhlZjg4NGFhNzg3YTYwM2ZlNGU1M2RlYzBmOTRkMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDIyLTAyLTE2ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtFV1NdW0dUS10gU2VuZCBvbmx5IG9uZSBlLW1haWwgd2l0aCBh
bGwgdGhlIGxpc3Qgb2YgZmxha2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM2NzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2VuZGluZyBvbmUgZS1tYWlsIHBlciB0ZXN0IHdhcyB0b28gbXVjaCBl
LW1haWxzIGFuZCB3ZSB3ZXJlCisgICAgICAgIHNwYW1pbmcgdGhlIGJvdCB3YXRjaGVycy4gQ2hh
bmdlIGl0IHRvIG9ubHkgc2VuZCBvbmUgZS1tYWlsCisgICAgICAgIHBlciBydW4gd2l0aCBhbGwg
dGhlIGxpc3Qgb2YgZmxha2llcyBvbiB0aGUgYm9keSBvZiB0aGUgZS1tYWlsLgorCisgICAgICAg
IEZpeCBhbHNvIHR3byB3cm9uZyB2YXJpYWJsZSBuYW1lcyBkZXRlY3RlZCBvbiByZWxhdGVkIGNv
ZGUKKyAgICAgICAgbWVhbndoaWxlIHRlc3RpbmcgdGhpcy4KKworICAgICAgICAqIENJU3VwcG9y
dC9ld3MtYnVpbGQvc3RlcHMucHk6CisgICAgICAgIChBbmFseXplQ29tcGlsZVdlYktpdFJlc3Vs
dHMuc2VuZF9lbWFpbF9mb3JfbmV3X2J1aWxkX2ZhaWx1cmUpOgorICAgICAgICAoQW5hbHl6ZUxh
eW91dFRlc3RzUmVzdWx0c1JlZFRyZWUuc2VuZF9lbWFpbF9mb3JfcHJlX2V4aXN0ZW50X2ZhaWx1
cmVzKToKKyAgICAgICAgKEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlLnNlbmRfZW1h
aWxfZm9yX2ZsYWt5X2ZhaWx1cmVzX2FuZF9zdGVwcyk6CisgICAgICAgIChBbmFseXplTGF5b3V0
VGVzdHNSZXN1bHRzUmVkVHJlZS5zdGFydCk6CisKIDIwMjItMDItMTYgIERvbiBPbG1zdGVhZCAg
PGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBTaGFyZSBXZWJLaXRUZXN0UnVubmVy
IGNvZGUgYW1vbmcgVVNFKExJQldQRSkgcG9ydHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9y
dC9ld3MtYnVpbGQvc3RlcHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5
CmluZGV4IDc0MTZiNWE0MDgwMmMxN2U4NGM5Y2Q3ZWUzMzBhZWJhMzQzMGY4MzAuLjVkNGFkZjY4
NGM0ZDI4NTZiYTk0YjFmNjU1M2YwZWRhYmQ5NDc4NDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3Vw
cG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9z
dGVwcy5weQpAQCAtMjE5MSw3ICsyMTkxLDcgQEAgY2xhc3MgQW5hbHl6ZUNvbXBpbGVXZWJLaXRS
ZXN1bHRzKGJ1aWxkc3RlcC5CdWlsZFN0ZXAsIEJ1Z3ppbGxhTWl4aW4sIEdpdEh1Yk1peGkKICAg
ICAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAgICAgYnVpbGRlcl9uYW1lID0gc2VsZi5n
ZXRQcm9wZXJ0eSgnYnVpbGRlcm5hbWUnLCAnJykKLSAgICAgICAgICAgIGlzc3VlX2lkID0gc2Vs
Zi5nZXRQcm9wZXJ0eSgnYnVnX2lkJywgJycpIG9yIHByX251bWJlcgorICAgICAgICAgICAgYnVn
X2lkID0gc2VsZi5nZXRQcm9wZXJ0eSgnYnVnX2lkJywgJycpIG9yIHByX251bWJlcgogICAgICAg
ICAgICAgdGl0bGUgPSBzZWxmLmdldFByb3BlcnR5KCdidWdfdGl0bGUnLCAnJykgb3Igc2VsZi5n
ZXRQcm9wZXJ0eSgnZ2l0aHViLnRpdGxlJywgJycpCiAgICAgICAgICAgICB3b3JrZXJfbmFtZSA9
IHNlbGYuZ2V0UHJvcGVydHkoJ3dvcmtlcm5hbWUnLCAnJykKICAgICAgICAgICAgIHBsYXRmb3Jt
ID0gc2VsZi5nZXRQcm9wZXJ0eSgncGxhdGZvcm0nLCAnJykKQEAgLTMzNDYsMTAgKzMzNDYsMTAg
QEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQW5hbHl6ZUxheW91dFRl
c3RzUmVzdWx0cyk6CiAgICAgICAgICAgICBwbHVyYWxTdWZmaXggPSAncycgaWYgbnVtYmVyX2Zh
aWx1cmVzID4gMSBlbHNlICcnCiAKICAgICAgICAgICAgIGVtYWlsX3N1YmplY3QgPSAnSW5mbyBh
Ym91dCB7fSBwcmUtZXhpc3RlbnQgZmFpbHVyZXt9IGF0IHt9Jy5mb3JtYXQobnVtYmVyX2ZhaWx1
cmVzLCBwbHVyYWxTdWZmaXgsIGJ1aWxkZXJfbmFtZSkKLSAgICAgICAgICAgIGVtYWlsX3Rlc3Qg
PSAnSW5mbyBhYm91dCBwcmUtZXhpc3RlbnQgKG5vbi1mbGFreSkgdGVzdCBmYWlsdXJle30gYXQg
RVdTOlxuJy5mb3JtYXQocGx1cmFsU3VmZml4KQotICAgICAgICAgICAgZW1haWxfdGV4dCA9ICcg
ICAgLSBCdWlsZCA6IHt9XG4nLmZvcm1hdChidWlsZF91cmwpCi0gICAgICAgICAgICBlbWFpbF90
ZXh0ID0gJyAgICAtIEJ1aWxkZXIgOiB7fVxuJy5mb3JtYXQoYnVpbGRlcl9uYW1lKQotICAgICAg
ICAgICAgZW1haWxfdGV4dCA9ICcgICAgLSBXb3JrZXIgOiB7fVxuJy5mb3JtYXQod29ya2VyX25h
bWUpCisgICAgICAgICAgICBlbWFpbF90ZXh0ID0gJ0luZm8gYWJvdXQgcHJlLWV4aXN0ZW50IChu
b24tZmxha3kpIHRlc3QgZmFpbHVyZXt9IGF0IEVXUzpcbicuZm9ybWF0KHBsdXJhbFN1ZmZpeCkK
KyAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJyAgLSBCdWlsZCA6IHt9XG4nLmZvcm1hdChidWls
ZF91cmwpCisgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICcgIC0gQnVpbGRlciA6IHt9XG4nLmZv
cm1hdChidWlsZGVyX25hbWUpCisgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICcgIC0gV29ya2Vy
IDoge31cbicuZm9ybWF0KHdvcmtlcl9uYW1lKQogICAgICAgICAgICAgZm9yIHRlc3RfbmFtZSBp
biBzb3J0ZWQodGVzdF9uYW1lcyk6CiAgICAgICAgICAgICAgICAgaGlzdG9yeV91cmwgPSAne30/
c3VpdGU9bGF5b3V0LXRlc3RzJnRlc3Q9e30nLmZvcm1hdChSRVNVTFRTX0RCX1VSTCwgdGVzdF9u
YW1lKQogICAgICAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJ1xuLSB7fSAoPGEgaHJlZj0ie30i
PnRlc3QgaGlzdG9yeTwvYT4pJy5mb3JtYXQodGVzdF9uYW1lLCBoaXN0b3J5X3VybCkKQEAgLTMz
NTcsNiArMzM1NywzMCBAQCBjbGFzcyBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZShB
bmFseXplTGF5b3V0VGVzdHNSZXN1bHRzKToKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgogICAgICAgICAgICAgcHJpbnQoJ0Vycm9yIGluIHNlbmRpbmcgZW1haWwgZm9yIGZsYWt5IGZh
aWx1cmU6IHt9Jy5mb3JtYXQoZSkpCiAKKyAgICBkZWYgc2VuZF9lbWFpbF9mb3JfZmxha3lfZmFp
bHVyZXNfYW5kX3N0ZXBzKHNlbGYsIHRlc3RfbmFtZXNfc3RlcHNfZGljdCk6CisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGJ1aWxkZXJfbmFtZSA9IHNlbGYuZ2V0UHJvcGVydHkoJ2J1aWxkZXJu
YW1lJywgJycpCisgICAgICAgICAgICB3b3JrZXJfbmFtZSA9IHNlbGYuZ2V0UHJvcGVydHkoJ3dv
cmtlcm5hbWUnLCAnJykKKyAgICAgICAgICAgIGJ1aWxkX3VybCA9ICd7fSMvYnVpbGRlcnMve30v
YnVpbGRzL3t9Jy5mb3JtYXQoc2VsZi5tYXN0ZXIuY29uZmlnLmJ1aWxkYm90VVJMLCBzZWxmLmJ1
aWxkLl9idWlsZGVyaWQsIHNlbGYuYnVpbGQubnVtYmVyKQorICAgICAgICAgICAgbnVtYmVyX2Zh
aWx1cmVzID0gbGVuKHRlc3RfbmFtZXNfc3RlcHNfZGljdCkKKyAgICAgICAgICAgIHBsdXJhbFN1
ZmZpeCA9ICdzJyBpZiBudW1iZXJfZmFpbHVyZXMgPiAxIGVsc2UgJycKKyAgICAgICAgICAgIGVt
YWlsX3N1YmplY3QgPSAnSW5mbyBhYm91dCB7fSBmbGFreSBmYWlsdXJle30gYXQge30nLmZvcm1h
dChudW1iZXJfZmFpbHVyZXMsIHBsdXJhbFN1ZmZpeCwgYnVpbGRlcl9uYW1lKQorICAgICAgICAg
ICAgZW1haWxfdGV4dCA9ICdJbmZvIGFib3V0IHt9IGZsYWt5IHRlc3QgZmFpbHVyZXt9IGF0IEVX
UzpcbicuZm9ybWF0KG51bWJlcl9mYWlsdXJlcywgcGx1cmFsU3VmZml4KQorICAgICAgICAgICAg
ZW1haWxfdGV4dCArPSAnICAtIEJ1aWxkIDoge31cbicuZm9ybWF0KGJ1aWxkX3VybCkKKyAgICAg
ICAgICAgIGVtYWlsX3RleHQgKz0gJyAgLSBCdWlsZGVyIDoge31cbicuZm9ybWF0KGJ1aWxkZXJf
bmFtZSkKKyAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJyAgLSBXb3JrZXIgOiB7fVxuJy5mb3Jt
YXQod29ya2VyX25hbWUpCisgICAgICAgICAgICBmbGFreV9udW1iZXIgPSAwCisgICAgICAgICAg
ICBmb3IgdGVzdF9uYW1lIGluIHRlc3RfbmFtZXNfc3RlcHNfZGljdDoKKyAgICAgICAgICAgICAg
ICBmbGFreV9udW1iZXIgKz0gMQorICAgICAgICAgICAgICAgIGhpc3RvcnlfdXJsID0gJ3t9P3N1
aXRlPWxheW91dC10ZXN0cyZ0ZXN0PXt9Jy5mb3JtYXQoUkVTVUxUU19EQl9VUkwsIHRlc3RfbmFt
ZSkKKyAgICAgICAgICAgICAgICBudW1iZXJfc3RlcHNfZmxha3kgPSBsZW4odGVzdF9uYW1lc19z
dGVwc19kaWN0W3Rlc3RfbmFtZV0pCisgICAgICAgICAgICAgICAgcGx1cmFsc3RlcFN1ZmZpeCA9
ICdzJyBpZiBudW1iZXJfc3RlcHNfZmxha3kgPiAxIGVsc2UgJycKKyAgICAgICAgICAgICAgICBz
dGVwX25hbWVzX3N0ciA9ICcie30iJy5mb3JtYXQoJyIsICInLmpvaW4odGVzdF9uYW1lc19zdGVw
c19kaWN0W3Rlc3RfbmFtZV0pKQorICAgICAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJ1xuRmxh
a3kgI3t9XG4gIC0gVGVzdCBuYW1lOiB7fVxuICAtIEZsYWt5IG9uIHN0ZXB7fToge31cbiAgLSBI
aXN0b3J5OiB7fVxuJy5mb3JtYXQoZmxha3lfbnVtYmVyLCB0ZXN0X25hbWUsIHBsdXJhbHN0ZXBT
dWZmaXgsIHN0ZXBfbmFtZXNfc3RyLCBoaXN0b3J5X3VybCkKKyAgICAgICAgICAgIHNlbmRfZW1h
aWxfdG9fYm90X3dhdGNoZXJzKGVtYWlsX3N1YmplY3QsIGVtYWlsX3RleHQsIGJ1aWxkZXJfbmFt
ZSwgJ2ZsYWt5LXt9Jy5mb3JtYXQod29ya2VyX25hbWUpKQorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6CisgICAgICAgICAgICBwcmludCgnRXJyb3IgaW4gc2VuZGluZyBlbWFpbCBmb3Ig
Zmxha3kgZmFpbHVyZToge30nLmZvcm1hdChlKSkKKwogICAgIGRlZiBzdGFydChzZWxmKToKICAg
ICAgICAgIyBSdW4gd2l0aCBwYXRjaCwgcnVubmluZyB0aGUgd2hvbGUgbGF5b3V0IHRlc3Qgc3Vp
dGUKICAgICAgICAgZmlyc3RfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCA9IHNlbGYuZ2V0
UHJvcGVydHkoJ2ZpcnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnLCBGYWxzZSkKQEAg
LTM0MjIsNiArMzQ0Niw3IEBAIGNsYXNzIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVl
KEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMpOgogICAgICAgICAjIFdhcm4gRVdTIGJvdCB3YXRj
aGVycyBhYm91dCBmbGFraWVzIHNvIHRoZXkgY2FuIGdhcmRlbiB0aG9zZS4gSW5jbHVkZSB0aGUg
c3RlcCB3aGVyZSB0aGUgZmxha3kgd2FzIGZvdW5kIGluIHRoZSBlLW1haWwgdG8ga25vdyBpZiBp
dCB3YXMgZm91bmQgd2l0aCBwYXRjaCBvciB3aXRob3V0IGl0LgogICAgICAgICAjIER1ZSB0byB0
aGUgd2F5IHRoaXMgY2xhc3Mgd29ya3MgbW9zdCBvZiB0aGUgZmxha2llcyBhcmUgZmlsdGVyZWQg
b24gdGhlIHN0ZXAgd2l0aCBwYXRjaCBldmVuIHdoZW4gdGhvc2Ugd2VyZSBwcmUtZXhpc3RlbnQg
aXNzdWVzIChzbyB0aGlzIGlzIGFsc28gdXNlZnVsIGZvciBib3Qgd2F0Y2hlcnMpLgogICAgICAg
ICBhbGxfZmxha3lfZmFpbHVyZXMgPSBmaXJzdF9ydW5fZmxha2llcy51bmlvbih3aXRoX3BhdGNo
X3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMpLnVuaW9uKHdpdGhvdXRfcGF0Y2hfcmVw
ZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcykKKyAgICAgICAgZmxha3lfc3RlcHNfZGljdCA9
IHt9CiAgICAgICAgIGZvciBmbGFreV9mYWlsdXJlIGluIGFsbF9mbGFreV9mYWlsdXJlczoKICAg
ICAgICAgICAgIHN0ZXBfbmFtZXMgPSBbXQogICAgICAgICAgICAgaWYgZmxha3lfZmFpbHVyZSBp
biB3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXM6CkBAIC0zNDMw
LDggKzM0NTUsOCBAQCBjbGFzcyBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZShBbmFs
eXplTGF5b3V0VGVzdHNSZXN1bHRzKToKICAgICAgICAgICAgICAgICBzdGVwX25hbWVzLmFwcGVu
ZCgnbGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcyAod2l0aCBwYXRjaCknKQogICAgICAgICAg
ICAgaWYgZmxha3lfZmFpbHVyZSBpbiBmaXJzdF9ydW5fZmxha2llczoKICAgICAgICAgICAgICAg
ICBzdGVwX25hbWVzLmFwcGVuZCgnbGF5b3V0LXRlc3RzICh3aXRoIHBhdGNoKScpCi0gICAgICAg
ICAgICBzdGVwX25hbWVzX3N0ciA9ICcie30iJy5mb3JtYXQoJyIsICInLmpvaW4oc3RlcF9uYW1l
cykpCi0gICAgICAgICAgICBzZWxmLnNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmUoZmxha3lf
ZmFpbHVyZSwgc3RlcF9uYW1lc19zdHIpCisgICAgICAgICAgICBmbGFreV9zdGVwc19kaWN0W2Zs
YWt5X2ZhaWx1cmVdID0gc3RlcF9uYW1lcworICAgICAgICBzZWxmLnNlbmRfZW1haWxfZm9yX2Zs
YWt5X2ZhaWx1cmVzX2FuZF9zdGVwcyhmbGFreV9zdGVwc19kaWN0KQogCiAgICAgICAgICMgV2Fy
biBFV1MgYm90IHdhdGNoZXJzIGFib3V0IHByZS1leGlzdGVudCBub24tZmxha3kgZmFpbHVyZXMg
KGlmIGFueSksIGJ1dCBzZW5kIG9ubHkgb25lIGUtbWFpbCB3aXRoIGFsbCB0aGUgdGVzdHMgdG8g
YXZvaWQgc2VuZGluZyB0b28gbXVjaCBlLW1haWxzLgogICAgICAgICBwcmVfZXhpc3RlbnRfbm9u
X2ZsYWt5X2ZhaWx1cmVzID0gd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19u
b25mbGFreV9mYWlsdXJlcyAtIHdpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9u
Zmxha3lfZmFpbHVyZXMudW5pb24oYWxsX2ZsYWt5X2ZhaWx1cmVzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452213</attachid>
            <date>2022-02-16 10:53:17 -0800</date>
            <delta_ts>2022-02-16 12:00:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236705-20220216185315.patch</filename>
            <type>text/plain</type>
            <size>39864</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQxNjJiYmQ0ZTcwOGYzYjU4NmM2NDZkOWYyY2ViMjM1
M2ZiYWY0YS4uMWE4ZmZmYjllZWMxMTEyYjdhYzdhNzBiYWE5MzBkZjZjYmIwZGQ0YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDIyLTAyLTE2ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtFV1NdW0dUS10gU2VuZCBvbmx5IG9uZSBlLW1haWwgd2l0aCBh
bGwgdGhlIGxpc3Qgb2YgZmxha2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM2NzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2VuZGluZyBvbmUgZS1tYWlsIHBlciB0ZXN0IHdhcyB0b28gbXVjaCBl
LW1haWxzIGFuZCB3ZSB3ZXJlCisgICAgICAgIHNwYW1pbmcgdGhlIGJvdCB3YXRjaGVycy4gQ2hh
bmdlIGl0IHRvIG9ubHkgc2VuZCBvbmUgZS1tYWlsCisgICAgICAgIHBlciBydW4gd2l0aCBhbGwg
dGhlIGxpc3Qgb2YgZmxha2llcyBvbiB0aGUgYm9keSBvZiB0aGUgZS1tYWlsLgorCisgICAgICAg
IEZpeCBhbHNvIHR3byB3cm9uZyB2YXJpYWJsZSBuYW1lcyBkZXRlY3RlZCBvbiByZWxhdGVkIGNv
ZGUKKyAgICAgICAgbWVhbndoaWxlIHRlc3RpbmcgdGhpcy4KKworICAgICAgICBBZGQgYWxzbyB1
bml0IHRlc3RzIHRvIGJlIGFibGUgdG8gY2hlY2sgdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgICAg
ICBlLW1haWxzIGdlbmVyYXRlZCBhbmQgYWxzbyBmaXggYSBsb2dpYyBlcnJvciBkZXRldGVkIHdo
ZW4KKyAgICAgICAgd29ya2luZyBvbiB0aGUgdW5pdCB0ZXN0cyByZWxhdGVkIHRvIHJlcG9ydGlu
ZworICAgICAgICB0aGUgcHJlX2V4aXN0ZW50X25vbl9mbGFreV9mYWlsdXJlcyBmb3IgdGhlIEdU
SyBFV1MuCisKKyAgICAgICAgKiBDSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5OgorICAgICAg
ICAoQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLnNlbmRfZW1haWxfZm9yX25ld19idWlsZF9m
YWlsdXJlKToKKyAgICAgICAgKEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlLnNlbmRf
ZW1haWxfZm9yX3ByZV9leGlzdGVudF9mYWlsdXJlcyk6CisgICAgICAgIChBbmFseXplTGF5b3V0
VGVzdHNSZXN1bHRzUmVkVHJlZS5zZW5kX2VtYWlsX2Zvcl9mbGFreV9mYWlsdXJlc19hbmRfc3Rl
cHMpOgorICAgICAgICAoQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUuc3RhcnQpOgor
ICAgICAgICAqIENJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHk6CisgICAgICAg
IChCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucy5zZXRVcEJ1aWxkU3RlcCk6CisgICAgICAgIChCdWls
ZFN0ZXBNaXhpbkFkZGl0aW9ucy5fc2VuZF9lbWFpbCk6CisKIDIwMjItMDItMTYgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBTaGFyZSBXZWJLaXRUZXN0
UnVubmVyIGNvZGUgYW1vbmcgVVNFKExJQldQRSkgcG9ydHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJ
U3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0
ZXBzLnB5CmluZGV4IDc0MTZiNWE0MDgwMmMxN2U4NGM5Y2Q3ZWUzMzBhZWJhMzQzMGY4MzAuLmFi
NTc5Nzc2OWQxZWYyNTdjYjkyMzkwZWVmZGE3YzIwODE1ZTg1ZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1i
dWlsZC9zdGVwcy5weQpAQCAtMjE5MSw3ICsyMTkxLDcgQEAgY2xhc3MgQW5hbHl6ZUNvbXBpbGVX
ZWJLaXRSZXN1bHRzKGJ1aWxkc3RlcC5CdWlsZFN0ZXAsIEJ1Z3ppbGxhTWl4aW4sIEdpdEh1Yk1p
eGkKICAgICAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAgICAgYnVpbGRlcl9uYW1lID0g
c2VsZi5nZXRQcm9wZXJ0eSgnYnVpbGRlcm5hbWUnLCAnJykKLSAgICAgICAgICAgIGlzc3VlX2lk
ID0gc2VsZi5nZXRQcm9wZXJ0eSgnYnVnX2lkJywgJycpIG9yIHByX251bWJlcgorICAgICAgICAg
ICAgYnVnX2lkID0gc2VsZi5nZXRQcm9wZXJ0eSgnYnVnX2lkJywgJycpIG9yIHByX251bWJlcgog
ICAgICAgICAgICAgdGl0bGUgPSBzZWxmLmdldFByb3BlcnR5KCdidWdfdGl0bGUnLCAnJykgb3Ig
c2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLnRpdGxlJywgJycpCiAgICAgICAgICAgICB3b3JrZXJf
bmFtZSA9IHNlbGYuZ2V0UHJvcGVydHkoJ3dvcmtlcm5hbWUnLCAnJykKICAgICAgICAgICAgIHBs
YXRmb3JtID0gc2VsZi5nZXRQcm9wZXJ0eSgncGxhdGZvcm0nLCAnJykKQEAgLTMzNDYsMTAgKzMz
NDYsMTAgQEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQW5hbHl6ZUxh
eW91dFRlc3RzUmVzdWx0cyk6CiAgICAgICAgICAgICBwbHVyYWxTdWZmaXggPSAncycgaWYgbnVt
YmVyX2ZhaWx1cmVzID4gMSBlbHNlICcnCiAKICAgICAgICAgICAgIGVtYWlsX3N1YmplY3QgPSAn
SW5mbyBhYm91dCB7fSBwcmUtZXhpc3RlbnQgZmFpbHVyZXt9IGF0IHt9Jy5mb3JtYXQobnVtYmVy
X2ZhaWx1cmVzLCBwbHVyYWxTdWZmaXgsIGJ1aWxkZXJfbmFtZSkKLSAgICAgICAgICAgIGVtYWls
X3Rlc3QgPSAnSW5mbyBhYm91dCBwcmUtZXhpc3RlbnQgKG5vbi1mbGFreSkgdGVzdCBmYWlsdXJl
e30gYXQgRVdTOlxuJy5mb3JtYXQocGx1cmFsU3VmZml4KQotICAgICAgICAgICAgZW1haWxfdGV4
dCA9ICcgICAgLSBCdWlsZCA6IHt9XG4nLmZvcm1hdChidWlsZF91cmwpCi0gICAgICAgICAgICBl
bWFpbF90ZXh0ID0gJyAgICAtIEJ1aWxkZXIgOiB7fVxuJy5mb3JtYXQoYnVpbGRlcl9uYW1lKQot
ICAgICAgICAgICAgZW1haWxfdGV4dCA9ICcgICAgLSBXb3JrZXIgOiB7fVxuJy5mb3JtYXQod29y
a2VyX25hbWUpCisgICAgICAgICAgICBlbWFpbF90ZXh0ID0gJ0luZm8gYWJvdXQgcHJlLWV4aXN0
ZW50IChub24tZmxha3kpIHRlc3QgZmFpbHVyZXt9IGF0IEVXUzpcbicuZm9ybWF0KHBsdXJhbFN1
ZmZpeCkKKyAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJyAgLSBCdWlsZCA6IHt9XG4nLmZvcm1h
dChidWlsZF91cmwpCisgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICcgIC0gQnVpbGRlciA6IHt9
XG4nLmZvcm1hdChidWlsZGVyX25hbWUpCisgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICcgIC0g
V29ya2VyIDoge31cbicuZm9ybWF0KHdvcmtlcl9uYW1lKQogICAgICAgICAgICAgZm9yIHRlc3Rf
bmFtZSBpbiBzb3J0ZWQodGVzdF9uYW1lcyk6CiAgICAgICAgICAgICAgICAgaGlzdG9yeV91cmwg
PSAne30/c3VpdGU9bGF5b3V0LXRlc3RzJnRlc3Q9e30nLmZvcm1hdChSRVNVTFRTX0RCX1VSTCwg
dGVzdF9uYW1lKQogICAgICAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJ1xuLSB7fSAoPGEgaHJl
Zj0ie30iPnRlc3QgaGlzdG9yeTwvYT4pJy5mb3JtYXQodGVzdF9uYW1lLCBoaXN0b3J5X3VybCkK
QEAgLTMzNTcsNiArMzM1NywzMCBAQCBjbGFzcyBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVk
VHJlZShBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzKToKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlOgogICAgICAgICAgICAgcHJpbnQoJ0Vycm9yIGluIHNlbmRpbmcgZW1haWwgZm9yIGZs
YWt5IGZhaWx1cmU6IHt9Jy5mb3JtYXQoZSkpCiAKKyAgICBkZWYgc2VuZF9lbWFpbF9mb3JfZmxh
a3lfZmFpbHVyZXNfYW5kX3N0ZXBzKHNlbGYsIHRlc3RfbmFtZXNfc3RlcHNfZGljdCk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGJ1aWxkZXJfbmFtZSA9IHNlbGYuZ2V0UHJvcGVydHkoJ2J1
aWxkZXJuYW1lJywgJycpCisgICAgICAgICAgICB3b3JrZXJfbmFtZSA9IHNlbGYuZ2V0UHJvcGVy
dHkoJ3dvcmtlcm5hbWUnLCAnJykKKyAgICAgICAgICAgIGJ1aWxkX3VybCA9ICd7fSMvYnVpbGRl
cnMve30vYnVpbGRzL3t9Jy5mb3JtYXQoc2VsZi5tYXN0ZXIuY29uZmlnLmJ1aWxkYm90VVJMLCBz
ZWxmLmJ1aWxkLl9idWlsZGVyaWQsIHNlbGYuYnVpbGQubnVtYmVyKQorICAgICAgICAgICAgbnVt
YmVyX2ZhaWx1cmVzID0gbGVuKHRlc3RfbmFtZXNfc3RlcHNfZGljdCkKKyAgICAgICAgICAgIHBs
dXJhbFN1ZmZpeCA9ICdzJyBpZiBudW1iZXJfZmFpbHVyZXMgPiAxIGVsc2UgJycKKyAgICAgICAg
ICAgIGVtYWlsX3N1YmplY3QgPSAnSW5mbyBhYm91dCB7fSBmbGFreSBmYWlsdXJle30gYXQge30n
LmZvcm1hdChudW1iZXJfZmFpbHVyZXMsIHBsdXJhbFN1ZmZpeCwgYnVpbGRlcl9uYW1lKQorICAg
ICAgICAgICAgZW1haWxfdGV4dCA9ICdJbmZvIGFib3V0IHt9IGZsYWt5IHRlc3QgZmFpbHVyZXt9
IGF0IEVXUzpcbicuZm9ybWF0KG51bWJlcl9mYWlsdXJlcywgcGx1cmFsU3VmZml4KQorICAgICAg
ICAgICAgZW1haWxfdGV4dCArPSAnICAtIEJ1aWxkIDoge31cbicuZm9ybWF0KGJ1aWxkX3VybCkK
KyAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJyAgLSBCdWlsZGVyIDoge31cbicuZm9ybWF0KGJ1
aWxkZXJfbmFtZSkKKyAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJyAgLSBXb3JrZXIgOiB7fVxu
Jy5mb3JtYXQod29ya2VyX25hbWUpCisgICAgICAgICAgICBmbGFreV9udW1iZXIgPSAwCisgICAg
ICAgICAgICBmb3IgdGVzdF9uYW1lIGluIHRlc3RfbmFtZXNfc3RlcHNfZGljdDoKKyAgICAgICAg
ICAgICAgICBmbGFreV9udW1iZXIgKz0gMQorICAgICAgICAgICAgICAgIGhpc3RvcnlfdXJsID0g
J3t9P3N1aXRlPWxheW91dC10ZXN0cyZ0ZXN0PXt9Jy5mb3JtYXQoUkVTVUxUU19EQl9VUkwsIHRl
c3RfbmFtZSkKKyAgICAgICAgICAgICAgICBudW1iZXJfc3RlcHNfZmxha3kgPSBsZW4odGVzdF9u
YW1lc19zdGVwc19kaWN0W3Rlc3RfbmFtZV0pCisgICAgICAgICAgICAgICAgcGx1cmFsc3RlcFN1
ZmZpeCA9ICdzJyBpZiBudW1iZXJfc3RlcHNfZmxha3kgPiAxIGVsc2UgJycKKyAgICAgICAgICAg
ICAgICBzdGVwX25hbWVzX3N0ciA9ICcie30iJy5mb3JtYXQoJyIsICInLmpvaW4odGVzdF9uYW1l
c19zdGVwc19kaWN0W3Rlc3RfbmFtZV0pKQorICAgICAgICAgICAgICAgIGVtYWlsX3RleHQgKz0g
J1xuRmxha3kgI3t9XG4gIC0gVGVzdCBuYW1lOiB7fVxuICAtIEZsYWt5IG9uIHN0ZXB7fToge31c
biAgLSBIaXN0b3J5OiB7fVxuJy5mb3JtYXQoZmxha3lfbnVtYmVyLCB0ZXN0X25hbWUsIHBsdXJh
bHN0ZXBTdWZmaXgsIHN0ZXBfbmFtZXNfc3RyLCBoaXN0b3J5X3VybCkKKyAgICAgICAgICAgIHNl
bmRfZW1haWxfdG9fYm90X3dhdGNoZXJzKGVtYWlsX3N1YmplY3QsIGVtYWlsX3RleHQsIGJ1aWxk
ZXJfbmFtZSwgJ2ZsYWt5LXt9Jy5mb3JtYXQod29ya2VyX25hbWUpKQorICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBwcmludCgnRXJyb3IgaW4gc2VuZGluZyBlbWFp
bCBmb3IgZmxha3kgZmFpbHVyZToge30nLmZvcm1hdChlKSkKKwogICAgIGRlZiBzdGFydChzZWxm
KToKICAgICAgICAgIyBSdW4gd2l0aCBwYXRjaCwgcnVubmluZyB0aGUgd2hvbGUgbGF5b3V0IHRl
c3Qgc3VpdGUKICAgICAgICAgZmlyc3RfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCA9IHNl
bGYuZ2V0UHJvcGVydHkoJ2ZpcnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnLCBGYWxz
ZSkKQEAgLTM0MjIsNiArMzQ0Niw3IEBAIGNsYXNzIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNS
ZWRUcmVlKEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMpOgogICAgICAgICAjIFdhcm4gRVdTIGJv
dCB3YXRjaGVycyBhYm91dCBmbGFraWVzIHNvIHRoZXkgY2FuIGdhcmRlbiB0aG9zZS4gSW5jbHVk
ZSB0aGUgc3RlcCB3aGVyZSB0aGUgZmxha3kgd2FzIGZvdW5kIGluIHRoZSBlLW1haWwgdG8ga25v
dyBpZiBpdCB3YXMgZm91bmQgd2l0aCBwYXRjaCBvciB3aXRob3V0IGl0LgogICAgICAgICAjIER1
ZSB0byB0aGUgd2F5IHRoaXMgY2xhc3Mgd29ya3MgbW9zdCBvZiB0aGUgZmxha2llcyBhcmUgZmls
dGVyZWQgb24gdGhlIHN0ZXAgd2l0aCBwYXRjaCBldmVuIHdoZW4gdGhvc2Ugd2VyZSBwcmUtZXhp
c3RlbnQgaXNzdWVzIChzbyB0aGlzIGlzIGFsc28gdXNlZnVsIGZvciBib3Qgd2F0Y2hlcnMpLgog
ICAgICAgICBhbGxfZmxha3lfZmFpbHVyZXMgPSBmaXJzdF9ydW5fZmxha2llcy51bmlvbih3aXRo
X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMpLnVuaW9uKHdpdGhvdXRfcGF0
Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcykKKyAgICAgICAgZmxha3lfc3RlcHNf
ZGljdCA9IHt9CiAgICAgICAgIGZvciBmbGFreV9mYWlsdXJlIGluIGFsbF9mbGFreV9mYWlsdXJl
czoKICAgICAgICAgICAgIHN0ZXBfbmFtZXMgPSBbXQogICAgICAgICAgICAgaWYgZmxha3lfZmFp
bHVyZSBpbiB3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXM6CkBA
IC0zNDMwLDExICszNDU1LDExIEBAIGNsYXNzIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRU
cmVlKEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMpOgogICAgICAgICAgICAgICAgIHN0ZXBfbmFt
ZXMuYXBwZW5kKCdsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzICh3aXRoIHBhdGNoKScpCiAg
ICAgICAgICAgICBpZiBmbGFreV9mYWlsdXJlIGluIGZpcnN0X3J1bl9mbGFraWVzOgogICAgICAg
ICAgICAgICAgIHN0ZXBfbmFtZXMuYXBwZW5kKCdsYXlvdXQtdGVzdHMgKHdpdGggcGF0Y2gpJykK
LSAgICAgICAgICAgIHN0ZXBfbmFtZXNfc3RyID0gJyJ7fSInLmZvcm1hdCgnIiwgIicuam9pbihz
dGVwX25hbWVzKSkKLSAgICAgICAgICAgIHNlbGYuc2VuZF9lbWFpbF9mb3JfZmxha3lfZmFpbHVy
ZShmbGFreV9mYWlsdXJlLCBzdGVwX25hbWVzX3N0cikKKyAgICAgICAgICAgIGZsYWt5X3N0ZXBz
X2RpY3RbZmxha3lfZmFpbHVyZV0gPSBzdGVwX25hbWVzCisgICAgICAgIHNlbGYuc2VuZF9lbWFp
bF9mb3JfZmxha3lfZmFpbHVyZXNfYW5kX3N0ZXBzKGZsYWt5X3N0ZXBzX2RpY3QpCiAKICAgICAg
ICAgIyBXYXJuIEVXUyBib3Qgd2F0Y2hlcnMgYWJvdXQgcHJlLWV4aXN0ZW50IG5vbi1mbGFreSBm
YWlsdXJlcyAoaWYgYW55KSwgYnV0IHNlbmQgb25seSBvbmUgZS1tYWlsIHdpdGggYWxsIHRoZSB0
ZXN0cyB0byBhdm9pZCBzZW5kaW5nIHRvbyBtdWNoIGUtbWFpbHMuCi0gICAgICAgIHByZV9leGlz
dGVudF9ub25fZmxha3lfZmFpbHVyZXMgPSB3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzIC0gd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19ub25mbGFreV9mYWlsdXJlcy51bmlvbihhbGxfZmxha3lfZmFpbHVyZXMpCisgICAgICAg
IHByZV9leGlzdGVudF9ub25fZmxha3lfZmFpbHVyZXMgPSB3aXRob3V0X3BhdGNoX3JlcGVhdF9m
YWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzIC0gYWxsX2ZsYWt5X2ZhaWx1cmVzCiAg
ICAgICAgIGlmIHByZV9leGlzdGVudF9ub25fZmxha3lfZmFpbHVyZXM6CiAgICAgICAgICAgICBz
ZWxmLnNlbmRfZW1haWxfZm9yX3ByZV9leGlzdGVudF9mYWlsdXJlcyhwcmVfZXhpc3RlbnRfbm9u
X2ZsYWt5X2ZhaWx1cmVzKQogCmRpZmYgLS1naXQgYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxk
L3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0
dGVzdC5weQppbmRleCBhMmNjOTdlN2YxMTAxMTZhZTFkMjEyMzE1MjFjZTY3NjE0YTljMDFkLi43
Y2UyMDI4YmFkNTk3MGY1ZDAyMTk1YjM1OTc4ZGYzNTZiYTY0Y2JiIDEwMDY0NAotLS0gYS9Ub29s
cy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL0NJU3Vw
cG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTM4LDEwICszOCwxMCBAQCBmcm9t
IG1vY2sgaW1wb3J0IGNhbGwsIHBhdGNoCiBmcm9tIHR3aXN0ZWQuaW50ZXJuZXQgaW1wb3J0IGRl
ZmVyLCBlcnJvciwgcmVhY3RvcgogZnJvbSB0d2lzdGVkLnB5dGhvbiBpbXBvcnQgZmFpbHVyZSwg
bG9nCiBmcm9tIHR3aXN0ZWQudHJpYWwgaW1wb3J0IHVuaXR0ZXN0Ci0KK2ltcG9ydCBzZW5kX2Vt
YWlsCiAKIGZyb20gc3RlcHMgaW1wb3J0IChBbmFseXplQVBJVGVzdHNSZXN1bHRzLCBBbmFseXpl
Q29tcGlsZVdlYktpdFJlc3VsdHMsIEFuYWx5emVKU0NUZXN0c1Jlc3VsdHMsCi0gICAgICAgICAg
ICAgICAgICAgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRjaCwgQXBwbHlXYXRj
aExpc3QsIEFyY2hpdmVCdWlsdFByb2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0cywKKyAgICAgICAg
ICAgICAgICAgICBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzLCBBcHBseVBhdGNoLCBBcHBseVdh
dGNoTGlzdCwgQXJjaGl2ZUJ1aWx0UHJvZHVjdCwgQXJjaGl2ZVRlc3RSZXN1bHRzLCBCdWd6aWxs
YU1peGluLAogICAgICAgICAgICAgICAgICAgIENoZWNrT3V0UHVsbFJlcXVlc3QsIENoZWNrT3V0
U291cmNlLCBDaGVja091dFNwZWNpZmljUmV2aXNpb24sIENoZWNrQ2hhbmdlUmVsZXZhbmNlLCBD
aGVja1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNrU3R5bGUsCiAgICAgICAgICAgICAgICAg
ICAgQ2xlYW5CdWlsZCwgQ2xlYW5VcEdpdEluZGV4TG9jaywgQ2xlYW5HaXRSZXBvLCBDbGVhbldv
cmtpbmdEaXJlY3RvcnksIENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0Q2hhbmdlLAogICAg
ICAgICAgICAgICAgICAgIENvbXBpbGVXZWJLaXQsIENvbXBpbGVXZWJLaXRXaXRob3V0Q2hhbmdl
LCBDb25maWd1cmVCdWlsZCwgQ29uZmlndXJlQnVpbGQsIENvbnRyaWJ1dG9ycywgQ3JlYXRlTG9j
YWxHSVRDb21taXQsCkBAIC02MSw3ICs2MSw3IEBAIGZyb20gc3RlcHMgaW1wb3J0IChBbmFseXpl
QVBJVGVzdHNSZXN1bHRzLCBBbmFseXplQ29tcGlsZVdlYktpdFJlc3VsdHMsIEFuYWx5emVKCiAj
IFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9idWlsZGJvdC9idWlsZGJvdC9pc3N1
ZXMvNDY2OQogZnJvbSBidWlsZGJvdC50ZXN0LmZha2UuZmFrZWJ1aWxkIGltcG9ydCBGYWtlQnVp
bGQKIEZha2VCdWlsZC5hZGRTdGVwc0FmdGVyQ3VycmVudFN0ZXAgPSBsYW1iZGEgRmFrZUJ1aWxk
LCBzdGVwX2ZhY3RvcmllczogTm9uZQotCitGYWtlQnVpbGQuX2J1aWxkZXJpZCA9IDEKIAogZGVm
IG1vY2tfc3RlcChzdGVwLCBsb2dzPScnLCByZXN1bHRzPVNVQ0NFU1MsIHN0b3BwZWQ9RmFsc2Us
IHByb3BlcnRpZXM9Tm9uZSk6CiAgICAgc3RlcC5sb2dzID0gbG9ncwpAQCAtMTAzLDYgKzEwMywx
MCBAQCBjbGFzcyBFeHBlY3RNYXN0ZXJTaGVsbENvbW1hbmQob2JqZWN0KToKIGNsYXNzIEJ1aWxk
U3RlcE1peGluQWRkaXRpb25zKEJ1aWxkU3RlcE1peGluLCBUZXN0UmVhY3Rvck1peGluKToKICAg
ICBkZWYgc2V0VXBCdWlsZFN0ZXAoc2VsZik6CiAgICAgICAgIHNlbGYucGF0Y2gocmVhY3Rvciwg
J3NwYXduUHJvY2VzcycsIGxhbWJkYSAqYXJncywgKiprd2FyZ3M6IHNlbGYuX2NoZWNrU3Bhd25Q
cm9jZXNzKCphcmdzLCAqKmt3YXJncykpCisgICAgICAgIHNlbGYucGF0Y2goc2VuZF9lbWFpbCwg
J3NlbmRfZW1haWwnLCBzZWxmLl9zZW5kX2VtYWlsKQorICAgICAgICBzZWxmLnBhdGNoKHNlbmRf
ZW1haWwsICdnZXRfZW1haWxfaWRzJywgbGFtYmRhIGM6IFsndGVzdEB3ZWJraXQub3JnJ10pCisg
ICAgICAgIHNlbGYucGF0Y2goQnVnemlsbGFNaXhpbiwgJ2dldF9idWd6aWxsYV9hcGlfa2V5Jywg
bGFtYmRhIGY6ICdURVNULUFQSS1LRVknKQorICAgICAgICBzZWxmLl9lbWFpbHNfbGlzdCA9IFtd
CiAgICAgICAgIHNlbGYuX2V4cGVjdGVkX2xvY2FsX2NvbW1hbmRzID0gW10KICAgICAgICAgc2Vs
Zi5zZXRVcFRlc3RSZWFjdG9yKCkKIApAQCAtMTg5LDYgKzE5MywxNiBAQCBjbGFzcyBCdWlsZFN0
ZXBNaXhpbkFkZGl0aW9ucyhCdWlsZFN0ZXBNaXhpbiwgVGVzdFJlYWN0b3JNaXhpbik6CiAgICAg
ICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQob3MucGF0aC5qb2luKHJlbGF0aXZlX3Jvb3RfcGF0
aCwgbmFtZSkpCiAgICAgICAgIHJldHVybiByZXN1bHRzCiAKKyAgICBkZWYgX3NlbmRfZW1haWwo
c2VsZiwgdG9fZW1haWxzLCBzdWJqZWN0LCB0ZXh0LCByZWZlcmVuY2U9JycpOgorICAgICAgICBp
ZiBub3QgdG9fZW1haWxzOgorICAgICAgICAgICAgc2VsZi5fZW1haWxzX2xpc3QuYXBwZW5kKCdF
cnJvcjogc2tpcHBpbmcgZW1haWwgc2luY2Ugbm8gcmVjaXBpZW50IGlzIHNwZWNpZmllZCcpCisg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgbm90IHN1YmplY3Qgb3Igbm90IHRl
eHQ6CisgICAgICAgICAgICBzZWxmLl9lbWFpbHNfbGlzdC5hcHBlbmQoJ0Vycm9yOiBza2lwcGlu
ZyBlbWFpbCBzaW5jZSBubyBzdWJqZWN0IG9yIHRleHQgaXMgc3BlY2lmaWVkJykKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICBzZWxmLl9lbWFpbHNfbGlzdC5hcHBlbmQoJ1N1Ympl
Y3Q6IHt9XG5Ubzoge31cblJlZmVyZW5jZToge31cbkJvZHk6XG5cbnt9Jy5mb3JtYXQoc3ViamVj
dCwgdG9fZW1haWxzLCByZWZlcmVuY2UsIHRleHQpKQorICAgICAgICByZXR1cm4gVHJ1ZQorCiAg
ICAgZGVmIHJ1blN0ZXAoc2VsZik6CiAgICAgICAgIGRlZiBjaGVjayhyZXN1bHQpOgogICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9leHBlY3RlZF9sb2NhbF9jb21tYW5kcywgW10s
ICdhc3NlcnQgYWxsIGV4cGVjdGVkIGxvY2FsIGNvbW1hbmRzIHdlcmUgcnVuJykKQEAgLTEyMDUs
NyArMTIxOSw2IEBAIGNsYXNzIFRlc3RDb21waWxlV2ViS2l0V2l0aG91dENoYW5nZShCdWlsZFN0
ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpCiBjbGFzcyBUZXN0QW5hbHl6ZUNv
bXBpbGVXZWJLaXRSZXN1bHRzKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLmxvbmdNZXNzYWdlID0g
VHJ1ZQotICAgICAgICBBbmFseXplQ29tcGlsZVdlYktpdFJlc3VsdHMuc2VuZF9lbWFpbF9mb3Jf
YnVpbGRfZmFpbHVyZSA9IGxhbWJkYSBzZWxmOiBOb25lCiAgICAgICAgIHJldHVybiBzZWxmLnNl
dFVwQnVpbGRTdGVwKCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKQEAgLTE1OTQsOCArMTYw
Nyw2IEBAIGNsYXNzIFRlc3RBbmFseXplSlNDVGVzdHNSZXN1bHRzKEJ1aWxkU3RlcE1peGluQWRk
aXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2pz
Y19jbGVhbl90cmVlX3N0cmVzc190ZXN0X2ZhaWx1cmVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2pzY19jbGVhbl90cmVlX2JpbmFyeV9mYWlsdXJlcycsIFtdKQogICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCdqc2NfY2xlYW5fdHJlZV9mbGFreV9hbmRfcGFzc2VkJywge30pCi0g
ICAgICAgIEFuYWx5emVKU0NUZXN0c1Jlc3VsdHMuc2VuZF9lbWFpbF9mb3JfZmxha3lfZmFpbHVy
ZSA9IGxhbWJkYSAqYXJnczogTm9uZQotICAgICAgICBBbmFseXplSlNDVGVzdHNSZXN1bHRzLnNl
bmRfZW1haWxfZm9yX3ByZV9leGlzdGluZ19mYWlsdXJlID0gbGFtYmRhICphcmdzOiBOb25lCiAK
ICAgICBkZWYgdGVzdF9zaW5nbGVfbmV3X3N0cmVzc19mYWlsdXJlKHNlbGYpOgogICAgICAgICBz
ZWxmLmNvbmZpZ3VyZVN0ZXAoKQpAQCAtMTkyOCw3ICsxOTM5LDYgQEAgY2xhc3MgVGVzdFJlUnVu
V2ViS2l0VGVzdHMoVGVzdFJ1bldlYktpdFRlc3RzKToKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAo
UmVSdW5XZWJLaXRUZXN0cygpKQogICAgICAgICBzZWxmLnByb3BlcnR5X2V4Y2VlZF9mYWlsdXJl
X2xpbWl0ID0gJ3NlY29uZF9yZXN1bHRzX2V4Y2VlZF9mYWlsdXJlX2xpbWl0JwogICAgICAgICBz
ZWxmLnByb3BlcnR5X2ZhaWx1cmVzID0gJ3NlY29uZF9ydW5fZmFpbHVyZXMnCi0gICAgICAgIFJl
UnVuV2ViS2l0VGVzdHMuc2VuZF9lbWFpbF9mb3JfZmxha3lfZmFpbHVyZSA9IGxhbWJkYSAqYXJn
czogTm9uZQogCiAgICAgZGVmIHRlc3RfZmxha3lfZmFpbHVyZXNfaW5fZmlyc3RfcnVuKHNlbGYp
OgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQpAQCAtMjMzMSw4ICsyMzQxLDYgQEAgY2xh
c3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMs
IHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0
ZXAoKQogCiAgICAgZGVmIGNvbmZpZ3VyZVN0ZXAoc2VsZik6Ci0gICAgICAgIEFuYWx5emVMYXlv
dXRUZXN0c1Jlc3VsdHMuc2VuZF9lbWFpbF9mb3JfZmxha3lfZmFpbHVyZSA9IGxhbWJkYSAqYXJn
czogTm9uZQotICAgICAgICBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzLnNlbmRfZW1haWxfZm9y
X3ByZV9leGlzdGluZ19mYWlsdXJlID0gbGFtYmRhICphcmdzOiBOb25lCiAgICAgICAgIHNlbGYu
c2V0dXBTdGVwKEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMoKSkKICAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnZmlyc3RfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCcsIEZhbHNlKQogICAg
ICAgICBzZWxmLnNldFByb3BlcnR5KCdzZWNvbmRfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1p
dCcsIEZhbHNlKQpAQCAtMjY4MCwxNCArMjY4OCwxNCBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91
dFRlc3RzUmVzdWx0c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRl
cwogICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93bkJ1aWxkU3RlcCgpCiAKICAgICBkZWYgY29u
ZmlndXJlU3RlcChzZWxmKToKLSAgICAgICAgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cy5zZW5k
X2VtYWlsX2Zvcl9mbGFreV9mYWlsdXJlID0gbGFtYmRhICphcmdzOiBOb25lCi0gICAgICAgIEFu
YWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMuc2VuZF9lbWFpbF9mb3JfcHJlX2V4aXN0aW5nX2ZhaWx1
cmUgPSBsYW1iZGEgKmFyZ3M6IE5vbmUKKwogICAgICAgICBzZWxmLnNldHVwU3RlcChBbmFseXpl
TGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZSgpKQogCiAgICAgZGVmIHRlc3RfZmFpbHVyZV9pbnRy
b2R1Y2VkX2J5X3BhdGNoX2NsZWFuX3RyZWVfZ3JlZW4oc2VsZik6CiAgICAgICAgIHNlbGYuY29u
ZmlndXJlU3RlcCgpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdn
dGsnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjb25maWd1cmF0aW9uJywgJ3JlbGVhc2Un
KQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9hdXRob3InLCAndGVzdEBpZ2FsaWEu
Y29tJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0
ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIl0pCiAgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRl
c3QvZmxha3kyLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9y
ZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJl
MS5odG1sIl0pCkBAIC0yNjk1LDEyICsyNzAzLDIxIEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0
VGVzdHNSZXN1bHRzUmVkVHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVz
CiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVz
X3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0
L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShy
ZXN1bHQ9RkFJTFVSRSwgc3RhdGVfc3RyaW5nPSdGb3VuZCAxIG5ldyB0ZXN0IGZhaWx1cmU6IHRl
c3QvZmFpbHVyZTEuaHRtbCAoZmFpbHVyZSknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVw
KCkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgnU3ViamVjdDogSW5mbyBhYm91dCA0IGZsYWt5IGZhaWx1cmVzJyBpbiBzZWxmLl9lbWFp
bHNfbGlzdFswXSkKKyAgICAgICAgZm9yIGZsYWt5X3Rlc3QgaW4gWyJ0ZXN0L2ZsYWt5MS5odG1s
IiwgInRlc3QvZmxha3kyLmh0bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIiwgInRlc3QvcHJlLWV4
aXN0ZW50L2ZsYWt5Lmh0bWwiXToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnVGVzdCBu
YW1lOiB7fScuZm9ybWF0KGZsYWt5X3Rlc3QpIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKCdUZXN0IG5hbWU6IHRlc3QvZmFpbHVyZTEuaHRtbCcgaW4g
c2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDog
TGF5b3V0IHRlc3QgZmFpbHVyZSBmb3IgUGF0Y2gnIGluIHNlbGYuX2VtYWlsc19saXN0WzFdKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3Rlc3QvZmFpbHVyZTEuaHRtbCcgaW4gc2VsZi5fZW1h
aWxzX2xpc3RbMV0pCisgICAgICAgIHJldHVybiBzdGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3Rf
ZmFpbHVyZV9pbnRyb2R1Y2VkX2J5X3BhdGNoX2NsZWFuX3RyZWVfcmVkKHNlbGYpOgogICAgICAg
ICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxh
dGZvcm0nLCAnZ3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbics
ICdyZWxlYXNlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywgJ3Rl
c3RAaWdhbGlhLmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWls
dXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0
L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRt
bCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFsidGVz
dC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVy
ZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0
bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQpAQCAtMjcwOCwxMCArMjcyNSwy
MyBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQnVpbGRTdGVw
TWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3
aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywg
WyJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0
ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29t
ZShyZXN1bHQ9RkFJTFVSRSwgc3RhdGVfc3RyaW5nPSdGb3VuZCAxIG5ldyB0ZXN0IGZhaWx1cmU6
IHRlc3QvZmFpbHVyZTEuaHRtbCAoZmFpbHVyZSknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5T
dGVwKCkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCksIDMpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgnU3ViamVjdDogSW5mbyBhYm91dCA0IGZsYWt5IGZhaWx1cmVzJyBpbiBzZWxmLl9l
bWFpbHNfbGlzdFswXSkKKyAgICAgICAgZm9yIGZsYWt5X3Rlc3QgaW4gWyJ0ZXN0L2ZsYWt5MS5o
dG1sIiwgInRlc3QvZmxha3kyLmh0bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIiwgInRlc3QvcHJl
LWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnVGVz
dCBuYW1lOiB7fScuZm9ybWF0KGZsYWt5X3Rlc3QpIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdUZXN0IG5hbWU6IHByZWV4aXN0aW5nLXRlc3QvcHJl
LWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCcgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogSW5mbyBhYm91dCAxIHByZS1leGlzdGVudCBmYWls
dXJlIGF0JyBpbiBzZWxmLl9lbWFpbHNfbGlzdFsxXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KCdwcmVleGlzdGluZy10ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwnIGluIHNlbGYuX2Vt
YWlsc19saXN0WzFdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1N1YmplY3Q6IExheW91dCB0
ZXN0IGZhaWx1cmUgZm9yIFBhdGNoJyBpbiBzZWxmLl9lbWFpbHNfbGlzdFsyXSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCd0ZXN0L2ZhaWx1cmUxLmh0bWwnIGluIHNlbGYuX2VtYWlsc19saXN0
WzJdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3ByZV9leGlz
dGVudF9mYWlsdXJlcyhzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKKyAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycpCisgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ3BhdGNoX2F1dGhvcicsICd0ZXN0QGlnYWxpYS5jb20nKQogICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2Zh
aWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNl
bGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9m
bGFreTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTMuaHRtbCJdKQogICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZs
YWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiXSkKQEAgLTI3
MTksMTAgKzI3NDksMjEgQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRU
cmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFr
eV9mYWlsdXJlcycsIFsidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIl0pCiAgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
Zmxha2llcycsIFtdKQogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNVQ0NFU1Ms
IHN0YXRlX3N0cmluZz0nUGFzc2VkIGxheW91dCB0ZXN0cycpCi0gICAgICAgIHJldHVybiBzZWxm
LnJ1blN0ZXAoKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKCdTdWJqZWN0OiBJbmZvIGFib3V0IDMgZmxha3kgZmFpbHVyZXMnIGluIHNl
bGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBmb3IgZmxha3lfdGVzdCBpbiBbInRlc3QvcHJl
LWV4aXN0ZW50L2ZsYWt5Lmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kyLmh0bWwiLCAi
dGVzdC9wcmUtZXhpc3RlbnQvZmxha3kzLmh0bWwiXToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgnVGVzdCBuYW1lOiB7fScuZm9ybWF0KGZsYWt5X3Rlc3QpIGluIHNlbGYuX2VtYWlsc19s
aXN0WzBdKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdUZXN0IG5hbWU6IHByZWV4aXN0aW5n
LXRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCcgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0p
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogSW5mbyBhYm91dCAxIHByZS1leGlz
dGVudCBmYWlsdXJlIGF0JyBpbiBzZWxmLl9lbWFpbHNfbGlzdFsxXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKCdwcmVleGlzdGluZy10ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwnIGlu
IHNlbGYuX2VtYWlsc19saXN0WzFdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAg
IGRlZiB0ZXN0X3ByZV9leGlzdGVudF9mbGFraWVzKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZp
Z3VyZVN0ZXAoKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3Rr
JykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykK
KyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywgJ3Rlc3RAaWdhbGlhLmNv
bScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVz
dC9wcmUtZXhpc3RlbnQvZmxha3kxLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
Zmlyc3RfcnVuX2ZsYWtpZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Mi5odG1sIiwgInRl
c3QvcHJlLWV4aXN0ZW50L2ZsYWt5My5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBb
XSkKQEAgLTI3MzEsMTIgKzI3NzIsMTggQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jl
c3VsdHNSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0
c19mbGFraWVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hf
cmVwZWF0X2ZhaWx1cmVzX3JldGNvZGUnLCBTVUNDRVNTKQogICAgICAgICBzZWxmLmV4cGVjdE91
dGNvbWUocmVzdWx0PVNVQ0NFU1MsIHN0YXRlX3N0cmluZz0nUGFzc2VkIGxheW91dCB0ZXN0cycp
Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNl
bGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19s
aXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdTdWJqZWN0OiBJbmZvIGFib3V0IDMg
Zmxha3kgZmFpbHVyZXMnIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBmb3IgZmxh
a3lfdGVzdCBpbiBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5MS5odG1sIiwgInRlc3QvcHJlLWV4
aXN0ZW50L2ZsYWt5Mi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5My5odG1sIl06Cisg
ICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1Rlc3QgbmFtZToge30nLmZvcm1hdChmbGFreV90
ZXN0KSBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0
CiAKICAgICBkZWYgdGVzdF9maXJzdF9zdGVwX2dpdmVzX3VuZXhwZWN0ZWRfZmFpbHVyZV9hbmRf
Y2xlYW5fdHJlZV9wYXNzX2xhc3RfdHJ5KHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0
ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKICAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywgJ3Rlc3RAaWdhbGlhLmNvbScpCiAg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFtdKQogICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFtdKQogICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRU
cmVlLk1BWF9SRVRSWSkKQEAgLTI3NDQsMzggKzI3OTEsNTEgQEAgY2xhc3MgVGVzdEFuYWx5emVM
YXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVz
dC5UZXMKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fZmxha2llcycs
IFsndGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCddKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCdjbGVhbl90cmVlX3J1bl9zdGF0dXMnLCBXQVJOSU5HUykKICAgICAgICAgc2VsZi5leHBl
Y3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J0ZvdW5kIHVuZXhwZWN0ZWQg
ZmFpbHVyZSB3aXRoIHBhdGNoIChmYWlsdXJlKScpCi0gICAgICAgIHJldHVybiBzZWxmLnJ1blN0
ZXAoKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMCkKKyAgICAgICAgcmV0dXJuIHN0
ZXBfcmVzdWx0CiAKICAgICBkZWYgdGVzdF9maXJzdF9zdGVwX2dpdmVzX3VuZXhwZWN0ZWRfZmFp
bHVyZV9hbmRfY2xlYW5fdHJlZV91bmV4cGVjdGVkX2ZhaWx1cmVfbGFzdF90cnkoc2VsZik6CiAg
ICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2Z1
bGxQbGF0Zm9ybScsICdndGsnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjb25maWd1cmF0
aW9uJywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9hdXRob3In
LCAndGVzdEBpZ2FsaWEuY29tJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVu
X2ZhaWx1cmVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFr
aWVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3JldHJ5X2NvdW50JywgQW5hbHl6
ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUuTUFYX1JFVFJZKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdjbGVhbl90cmVlX3J1bl9mYWlsdXJlcycsIFtdKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdjbGVhbl90cmVlX3J1bl9mbGFraWVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ2NsZWFuX3RyZWVfcnVuX3N0YXR1cycsIEZBSUxVUkUpCi0gICAgICAgIHNlbGYuZXhw
ZWN0T3V0Y29tZShyZXN1bHQ9V0FSTklOR1MsIHN0YXRlX3N0cmluZz0nVGhlIGxheW91dC10ZXN0
IHJ1biB3aXRoIHBhdGNoIGdlbmVyYXRlZCBubyBsaXN0IG9mIHJlc3VsdHMgYW5kIGV4aXRlZCB3
aXRoIGVycm9yLCBhbmQgdGhlIGNsZWFuX3RyZWUgd2l0aG91dCBwYXRjaCBydW4gZGlkIHRoZSBz
YW1lIHRoaW5nLlxuUmVhY2hlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyAoMykuIFVu
YWJsZSB0byBkZXRlcm1pbmUgaWYgcGF0Y2ggaXMgYmFkIG9yIHRoZXJlIGlzIGEgcHJlLWV4aXN0
ZW50IGluZnJhc3RydWN0dXJlIGlzc3VlLiAod2FybmluZ3MpJykKLSAgICAgICAgcmV0dXJuIHNl
bGYucnVuU3RlcCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ1Ro
ZSBsYXlvdXQtdGVzdCBydW4gd2l0aCBwYXRjaCBnZW5lcmF0ZWQgbm8gbGlzdCBvZiByZXN1bHRz
IGFuZCBleGl0ZWQgd2l0aCBlcnJvciwgYW5kIHRoZSBjbGVhbl90cmVlIHdpdGhvdXQgcGF0Y2gg
cnVuIGRpZCB0aGUgc2FtZSB0aGluZy4nCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1
bHQ9V0FSTklOR1MsIHN0YXRlX3N0cmluZz0ne31cblJlYWNoZWQgdGhlIG1heGltdW0gbnVtYmVy
IG9mIHJldHJpZXMgKDMpLiBVbmFibGUgdG8gZGV0ZXJtaW5lIGlmIHBhdGNoIGlzIGJhZCBvciB0
aGVyZSBpcyBhIHByZS1leGlzdGVudCBpbmZyYXN0cnVjdHVyZSBpc3N1ZS4gKHdhcm5pbmdzKScu
Zm9ybWF0KGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yKSkKKyAgICAgICAgc3RlcF9yZXN1
bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9l
bWFpbHNfbGlzdCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbmZyYXN0
cnVjdHVyZV9lcnJvciBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgcmV0dXJuIHN0
ZXBfcmVzdWx0CiAKICAgICBkZWYgdGVzdF9maXJzdF9zdGVwX2dpdmVzX3VuZXhwZWN0ZWRfZmFp
bHVyZV9yZXRyeShzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycpCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ3BhdGNoX2F1dGhvcicsICd0ZXN0QGlnYWxpYS5jb20nKQogICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
Y2xlYW5fdHJlZV9ydW5fZmFpbHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
cmV0cnlfY291bnQnLCBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZS5NQVhfUkVUUlkg
LSAxKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjbGVhbl90cmVlX3J1bl9mbGFraWVzJywg
Wyd0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sJ10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2NsZWFuX3RyZWVfcnVuX3N0YXR1cycsIFdBUk5JTkdTKQotICAgICAgICBzZWxmLmV4cGVj
dE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1
Y3R1cmUgaXNzdWU6IFRoZSBsYXlvdXQtdGVzdCBydW4gd2l0aCBwYXRjaCBnZW5lcmF0ZWQgbm8g
bGlzdCBvZiByZXN1bHRzIGFuZCBleGl0ZWQgd2l0aCBlcnJvciwgcmV0cnlpbmcgd2l0aCB0aGUg
aG9wZSBpdCB3YXMgYSByYW5kb20gaW5mcmFzdHJ1Y3R1cmUgZXJyb3IuXG5SZXRyeWluZyBidWls
ZCBbcmV0cnkgY291bnQgaXMgMiBvZiAzXSAocmV0cnkpJykKLSAgICAgICAgcmV0dXJuIHNlbGYu
cnVuU3RlcCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ1RoZSBs
YXlvdXQtdGVzdCBydW4gd2l0aCBwYXRjaCBnZW5lcmF0ZWQgbm8gbGlzdCBvZiByZXN1bHRzIGFu
ZCBleGl0ZWQgd2l0aCBlcnJvciwgcmV0cnlpbmcgd2l0aCB0aGUgaG9wZSBpdCB3YXMgYSByYW5k
b20gaW5mcmFzdHJ1Y3R1cmUgZXJyb3IuJworICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVz
dWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6
IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMiBvZiAzXSAocmV0cnkpJy5mb3Jt
YXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IpKQorICAgICAgICBzdGVwX3Jlc3VsdCA9
IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWls
c19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0
dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICByZXR1cm4gc3RlcF9y
ZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9wYXRjaF9leGl0c19lYXJseV9l
cnJvcihzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3BhdGNoX2F1dGhvcicsICd0ZXN0QGlnYWxpYS5jb20nKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2Zh
aWx1cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJl
LWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3Rf
cnVuX2ZsYWtpZXMnLCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1
bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkK
QEAgLTI3ODMsMTMgKzI4NDMsMTggQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3Vs
dHNSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19u
b25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIl0pCiAg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfZmxha2llcycsIFsidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2V4
Y2VlZF9mYWlsdXJlX2xpbWl0JywgVHJ1ZSkKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJl
c3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3Vl
OiBPbmUgb2YgdGhlIHN0ZXBzIGZvciByZXRyeWluZyB0aGUgZmFpbGVkIHRlc3RzIGhhcyBleGl0
ZWQgZWFybHksIGJ1dCB0aGlzIHN0ZXBzIHNob3VsZCBydW4gd2l0aG91dCAiLS1leGl0LWFmdGVy
LW4tZmFpbHVyZXMiIHN3aXRjaCwgc28gdGhleSBzaG91bGQgbm90IGV4aXQgZWFybHkuXG5SZXRy
eWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMCBvZiAzXSAocmV0cnkpJykKLSAgICAgICAgcmV0
dXJuIHNlbGYucnVuU3RlcCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9y
ID0gJ09uZSBvZiB0aGUgc3RlcHMgZm9yIHJldHJ5aW5nIHRoZSBmYWlsZWQgdGVzdHMgaGFzIGV4
aXRlZCBlYXJseSwgYnV0IHRoaXMgc3RlcHMgc2hvdWxkIHJ1biB3aXRob3V0ICItLWV4aXQtYWZ0
ZXItbi1mYWlsdXJlcyIgc3dpdGNoLCBzbyB0aGV5IHNob3VsZCBub3QgZXhpdCBlYXJseS4nCisg
ICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5l
eHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZToge31cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBj
b3VudCBpcyAwIG9mIDNdIChyZXRyeSknLmZvcm1hdChleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9l
cnJvcikpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAxKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xp
c3RbMF0pCisgICAgICAgIHJldHVybiBzdGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3Rfc3RlcF9y
ZXRyeV93aXRob3V0X3BhdGNoX2V4aXRzX2Vhcmx5X2Vycm9yKHNlbGYpOgogICAgICAgICBzZWxm
LmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0n
LCAnZ3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxl
YXNlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywgJ3Rlc3RAaWdh
bGlhLmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycs
IFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1l
eGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFsidGVzdC9mbGFr
eTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBb
InRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAi
dGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQpAQCAtMjc5NywzNyArMjg2Miw1NSBAQCBj
bGFzcyBUZXN0QW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5B
ZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0
X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0ZXN0
L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
d2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0L3By
ZS1leGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhv
dXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnLCBU
cnVlKQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJp
bmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IE9uZSBvZiB0aGUgc3RlcHMgZm9y
IHJldHJ5aW5nIHRoZSBmYWlsZWQgdGVzdHMgaGFzIGV4aXRlZCBlYXJseSwgYnV0IHRoaXMgc3Rl
cHMgc2hvdWxkIHJ1biB3aXRob3V0ICItLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcyIgc3dpdGNoLCBz
byB0aGV5IHNob3VsZCBub3QgZXhpdCBlYXJseS5cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3Vu
dCBpcyAwIG9mIDNdIChyZXRyeSknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKKyAg
ICAgICAgZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgPSAnT25lIG9mIHRoZSBzdGVwcyBm
b3IgcmV0cnlpbmcgdGhlIGZhaWxlZCB0ZXN0cyBoYXMgZXhpdGVkIGVhcmx5LCBidXQgdGhpcyBz
dGVwcyBzaG91bGQgcnVuIHdpdGhvdXQgIi0tZXhpdC1hZnRlci1uLWZhaWx1cmVzIiBzd2l0Y2gs
IHNvIHRoZXkgc2hvdWxkIG5vdCBleGl0IGVhcmx5LicKKyAgICAgICAgc2VsZi5leHBlY3RPdXRj
b21lKHJlc3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJl
IGlzc3VlOiB7fVxuUmV0cnlpbmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDAgb2YgM10gKHJldHJ5
KScuZm9ybWF0KGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yKSkKKyAgICAgICAgc3RlcF9y
ZXN1bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxm
Ll9lbWFpbHNfbGlzdCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbmZy
YXN0cnVjdHVyZV9lcnJvciBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgcmV0dXJu
IHN0ZXBfcmVzdWx0CiAKICAgICBkZWYgdGVzdF9zdGVwX3JldHJ5X3dpdGhfcGF0Y2hfdGltZW91
dHMoc2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdndGsnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCdjb25maWd1cmF0aW9uJywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdw
YXRjaF9hdXRob3InLCAndGVzdEBpZ2FsaWEuY29tJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWls
dXJlMi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1l
eGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1
bl9mbGFraWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkKICAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfdGltZWRv
dXQnLCBUcnVlKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVh
dF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L3ByZS1leGlzdGVu
dC9mYWlsdXJlLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRj
aF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9m
bGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwg
c3RhdGVfc3RyaW5nPSdGb3VuZCAyIG5ldyB0ZXN0IGZhaWx1cmVzOiB0ZXN0L2ZhaWx1cmUxLmh0
bWwsIHRlc3QvZmFpbHVyZTIuaHRtbCAoZmFpbHVyZSknKQotICAgICAgICByZXR1cm4gc2VsZi5y
dW5TdGVwKCkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCksIDIpCisgICAgICAgIGV4cGVj
dGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ1RoZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0
LWZhaWx1cmVzLXdpdGgtcGF0Y2giIHJlYWNoZWQgdGhlIHRpbWVvdXQgYnV0IHRoZSBzdGVwICJs
YXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0Y2giIGVuZGVkLiBOb3QgdHJ5
aW5nIHRvIHJlcGVhdCB0aGlzLiBSZXBvcnRpbmcgMiBmYWlsdXJlcyBmcm9tIHRoZSBmaXJzdCBy
dW4uJworICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJy
b3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnU3Vi
amVjdDogTGF5b3V0IHRlc3QgZmFpbHVyZSBmb3IgUGF0Y2gnIGluIHNlbGYuX2VtYWlsc19saXN0
WzFdKQorICAgICAgICBmb3IgZmFpbGVkX3Rlc3QgaW4gWyd0ZXN0L2ZhaWx1cmUxLmh0bWwnLCAn
dGVzdC9mYWlsdXJlMi5odG1sJ106CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZmFpbGVk
X3Rlc3QgaW4gc2VsZi5fZW1haWxzX2xpc3RbMV0pCisgICAgICAgIHJldHVybiBzdGVwX3Jlc3Vs
dAogCiAgICAgZGVmIHRlc3Rfc3RlcF9yZXRyeV93aXRoX3BhdGNoX3VuZXhwZWN0ZWRfZXJyb3Io
c2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCiAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdndGsnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdj
b25maWd1cmF0aW9uJywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRj
aF9hdXRob3InLCAndGVzdEBpZ2FsaWEuY29tJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
Zmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWlsdXJl
Mi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlz
dGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9m
bGFraWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkKICAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19u
b25mbGFreV9mYWlsdXJlcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3Bh
dGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbXSkKICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmV0Y29kZScsIEZBSUxVUkUp
Ci0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0n
VW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZTogVGhlIHN0ZXAgImxheW91dC10ZXN0cy1y
ZXBlYXQtZmFpbHVyZXMiIGZhaWxlZCB0byBnZW5lcmF0ZSBhbnkgbGlzdCBvZiBmYWlsdXJlcyBv
ciBmbGFraWVzIGFuZCByZXR1cm5lZCBhbiBlcnJvciBjb2RlLlxuUmV0cnlpbmcgYnVpbGQgW3Jl
dHJ5IGNvdW50IGlzIDAgb2YgM10gKHJldHJ5KScpCi0gICAgICAgIHJldHVybiBzZWxmLnJ1blN0
ZXAoKQorICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUgc3RlcCAi
bGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcyIgZmFpbGVkIHRvIGdlbmVyYXRlIGFueSBsaXN0
IG9mIGZhaWx1cmVzIG9yIGZsYWtpZXMgYW5kIHJldHVybmVkIGFuIGVycm9yIGNvZGUuJworICAg
ICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhw
ZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291
bnQgaXMgMCBvZiAzXSAocmV0cnkpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJy
b3IpKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0
WzBdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBfcmV0
cnlfd2l0aG91dF9wYXRjaF91bmV4cGVjdGVkX2Vycm9yKHNlbGYpOgogICAgICAgICBzZWxmLmNv
bmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAn
Z3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNl
JykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywgJ3Rlc3RAaWdhbGlh
LmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsi
dGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlz
dGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAg
ICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFsidGVzdC9mbGFreTEu
aHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dp
dGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbInRl
c3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiXSkKQEAgLTI4MzYsNTcgKzI5
MTksODEgQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEJ1aWxk
U3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJl
cycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9m
YWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
d2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmV0Y29kZScsIEZBSUxVUkUpCi0gICAgICAg
IHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3Rl
ZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZTogVGhlIHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFp
bHVyZXMtd2l0aG91dC1wYXRjaCIgZmFpbGVkIHRvIGdlbmVyYXRlIGFueSBsaXN0IG9mIGZhaWx1
cmVzIG9yIGZsYWtpZXMgYW5kIHJldHVybmVkIGFuIGVycm9yIGNvZGUuXG5SZXRyeWluZyBidWls
ZCBbcmV0cnkgY291bnQgaXMgMCBvZiAzXSAocmV0cnkpJykKLSAgICAgICAgcmV0dXJuIHNlbGYu
cnVuU3RlcCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ1RoZSBz
dGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0Y2giIGZhaWxlZCB0
byBnZW5lcmF0ZSBhbnkgbGlzdCBvZiBmYWlsdXJlcyBvciBmbGFraWVzIGFuZCByZXR1cm5lZCBh
biBlcnJvciBjb2RlLicKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1SRVRSWSwg
c3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3VlOiB7fVxuUmV0cnlp
bmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDAgb2YgM10gKHJldHJ5KScuZm9ybWF0KGV4cGVjdGVk
X2luZnJhc3RydWN0dXJlX2Vycm9yKSkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1blN0
ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCksIDEp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciBp
biBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0CiAKICAg
ICBkZWYgdGVzdF9zdGVwX3JldHJ5X3dpdGhvdXRfcGF0Y2hfdGltZW91dHMoc2VsZik6CiAgICAg
ICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2Z1bGxQ
bGF0Zm9ybScsICdndGsnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjb25maWd1cmF0aW9u
JywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9hdXRob3InLCAn
dGVzdEBpZ2FsaWEuY29tJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2Zh
aWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIiwgInRl
c3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5o
dG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0
ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQnLCBUcnVlKQogICAg
ICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc190aW1l
ZG91dCcsIFRydWUpCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0
YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZTogVGhlIHN0ZXAgImxh
eW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRjaCIgd2FzIGludGVycnVtcGVk
IGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC5cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBj
b3VudCBpcyAwIG9mIDNdIChyZXRyeSknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkK
KyAgICAgICAgZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgPSAnVGhlIHN0ZXAgImxheW91
dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRjaCIgd2FzIGludGVycnVtcGVkIGJl
Y2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC4nCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29t
ZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBp
c3N1ZToge31cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAwIG9mIDNdIChyZXRyeSkn
LmZvcm1hdChleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvcikpCisgICAgICAgIHN0ZXBfcmVz
dWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5f
ZW1haWxzX2xpc3QpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW5mcmFz
dHJ1Y3R1cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHJldHVybiBz
dGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3Rfc3RlcF9yZXRyeV93aXRoX3BhdGNoX3RpbWVvdXRz
X2FuZF93aXRob3V0X3BhdGNoX3RpbWVvdXRzKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3Vy
ZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywgJ3Rlc3RAaWdhbGlhLmNvbScp
CiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVzdC9m
YWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9m
YWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIs
ICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0
Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbInRlc3QvZmFp
bHVyZTEuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3Bh
dGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvZmFpbHVyZTIuaHRt
bCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWls
dXJlc190aW1lZG91dCcsIFRydWUpCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9
UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZTogVGhl
IHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRjaCIgd2FzIGlu
dGVycnVtcGVkIGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC5cblJldHJ5aW5nIGJ1aWxk
IFtyZXRyeSBjb3VudCBpcyAwIG9mIDNdIChyZXRyeSknKQotICAgICAgICByZXR1cm4gc2VsZi5y
dW5TdGVwKCkKKyAgICAgICAgZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgPSAnVGhlIHN0
ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRjaCIgd2FzIGludGVy
cnVtcGVkIGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC4nCisgICAgICAgIHNlbGYuZXhw
ZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0
cnVjdHVyZSBpc3N1ZToge31cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAwIG9mIDNd
IChyZXRyeSknLmZvcm1hdChleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvcikpCisgICAgICAg
IHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0
ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAg
IHJldHVybiBzdGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3RfcmV0cnlfdGhpcmRfdGltZShzZWxm
KToKICAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZp
Z3VyYXRpb24nLCAncmVsZWFzZScpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2F1
dGhvcicsICd0ZXN0QGlnYWxpYS5jb20nKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJz
dF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0
bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50
L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtp
ZXMnLCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQogICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZs
YWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQv
ZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFr
aWVzJywgWyJ0ZXN0L2ZhaWx1cmUyLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
d2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQnLCBUcnVlKQogICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIDIpCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0
Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVy
ZSBpc3N1ZTogVGhlIHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1w
YXRjaCIgd2FzIGludGVycnVtcGVkIGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC5cblJl
dHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAyIG9mIDNdIChyZXRyeSknKQotICAgICAgICBy
ZXR1cm4gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJy
b3IgPSAnVGhlIHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRj
aCIgd2FzIGludGVycnVtcGVkIGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC4nCisgICAg
ICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBl
Y3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZToge31cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3Vu
dCBpcyAyIG9mIDNdIChyZXRyeSknLmZvcm1hdChleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJv
cikpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAxKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3Rb
MF0pCisgICAgICAgIHJldHVybiBzdGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3RfcmV0cnlfZmlu
aXNoKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
cGF0Y2hfYXV0aG9yJywgJ3Rlc3RAaWdhbGlhLmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFp
bHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9y
dW5fZmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3Vs
dHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L3ByZS1l
eGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1
bHRzX2ZsYWtpZXMnLCBbInRlc3QvZmFpbHVyZTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc190aW1lZG91dCcsIFRydWUpCiAg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3JldHJ5X2NvdW50JywgMykKLSAgICAgICAgc2VsZi5l
eHBlY3RPdXRjb21lKHJlc3VsdD1XQVJOSU5HUywgc3RhdGVfc3RyaW5nPSdUaGUgc3RlcCAibGF5
b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LXBhdGNoIiB3YXMgaW50ZXJydW1wZWQg
YmVjYXVzZSBpdCByZWFjaGVkIHRoZSB0aW1lb3V0LlxuUmVhY2hlZCB0aGUgbWF4aW11bSBudW1i
ZXIgb2YgcmV0cmllcyAoMykuIFVuYWJsZSB0byBkZXRlcm1pbmUgaWYgcGF0Y2ggaXMgYmFkIG9y
IHRoZXJlIGlzIGEgcHJlLWV4aXN0ZW50IGluZnJhc3RydWN0dXJlIGlzc3VlLiAod2FybmluZ3Mp
JykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJh
c3RydWN0dXJlX2Vycm9yID0gJ1RoZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVz
LXdpdGhvdXQtcGF0Y2giIHdhcyBpbnRlcnJ1bXBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRp
bWVvdXQuJworICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVdBUk5JTkdTLCBzdGF0
ZV9zdHJpbmc9J3t9XG5SZWFjaGVkIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXRyaWVzICgzKS4g
VW5hYmxlIHRvIGRldGVybWluZSBpZiBwYXRjaCBpcyBiYWQgb3IgdGhlcmUgaXMgYSBwcmUtZXhp
c3RlbnQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWUuICh3YXJuaW5ncyknLmZvcm1hdChleHBlY3RlZF9p
bmZyYXN0cnVjdHVyZV9lcnJvcikpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVw
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAxKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgaW4g
c2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHJldHVybiBzdGVwX3Jlc3VsdAogCiAKIGNs
YXNzIFRlc3RDaGVja091dFNwZWNpZmljUmV2aXNpb24oQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMs
IHVuaXR0ZXN0LlRlc3RDYXNlKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452226</attachid>
            <date>2022-02-16 12:00:42 -0800</date>
            <delta_ts>2022-02-16 12:43:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236705-20220216200040.patch</filename>
            <type>text/plain</type>
            <size>44539</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQxNjJiYmQ0ZTcwOGYzYjU4NmM2NDZkOWYyY2ViMjM1
M2ZiYWY0YS4uMWE4ZmZmYjllZWMxMTEyYjdhYzdhNzBiYWE5MzBkZjZjYmIwZGQ0YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDIyLTAyLTE2ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtFV1NdW0dUS10gU2VuZCBvbmx5IG9uZSBlLW1haWwgd2l0aCBh
bGwgdGhlIGxpc3Qgb2YgZmxha2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM2NzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2VuZGluZyBvbmUgZS1tYWlsIHBlciB0ZXN0IHdhcyB0b28gbXVjaCBl
LW1haWxzIGFuZCB3ZSB3ZXJlCisgICAgICAgIHNwYW1pbmcgdGhlIGJvdCB3YXRjaGVycy4gQ2hh
bmdlIGl0IHRvIG9ubHkgc2VuZCBvbmUgZS1tYWlsCisgICAgICAgIHBlciBydW4gd2l0aCBhbGwg
dGhlIGxpc3Qgb2YgZmxha2llcyBvbiB0aGUgYm9keSBvZiB0aGUgZS1tYWlsLgorCisgICAgICAg
IEZpeCBhbHNvIHR3byB3cm9uZyB2YXJpYWJsZSBuYW1lcyBkZXRlY3RlZCBvbiByZWxhdGVkIGNv
ZGUKKyAgICAgICAgbWVhbndoaWxlIHRlc3RpbmcgdGhpcy4KKworICAgICAgICBBZGQgYWxzbyB1
bml0IHRlc3RzIHRvIGJlIGFibGUgdG8gY2hlY2sgdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgICAg
ICBlLW1haWxzIGdlbmVyYXRlZCBhbmQgYWxzbyBmaXggYSBsb2dpYyBlcnJvciBkZXRldGVkIHdo
ZW4KKyAgICAgICAgd29ya2luZyBvbiB0aGUgdW5pdCB0ZXN0cyByZWxhdGVkIHRvIHJlcG9ydGlu
ZworICAgICAgICB0aGUgcHJlX2V4aXN0ZW50X25vbl9mbGFreV9mYWlsdXJlcyBmb3IgdGhlIEdU
SyBFV1MuCisKKyAgICAgICAgKiBDSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5OgorICAgICAg
ICAoQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLnNlbmRfZW1haWxfZm9yX25ld19idWlsZF9m
YWlsdXJlKToKKyAgICAgICAgKEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlLnNlbmRf
ZW1haWxfZm9yX3ByZV9leGlzdGVudF9mYWlsdXJlcyk6CisgICAgICAgIChBbmFseXplTGF5b3V0
VGVzdHNSZXN1bHRzUmVkVHJlZS5zZW5kX2VtYWlsX2Zvcl9mbGFreV9mYWlsdXJlc19hbmRfc3Rl
cHMpOgorICAgICAgICAoQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUuc3RhcnQpOgor
ICAgICAgICAqIENJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHk6CisgICAgICAg
IChCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucy5zZXRVcEJ1aWxkU3RlcCk6CisgICAgICAgIChCdWls
ZFN0ZXBNaXhpbkFkZGl0aW9ucy5fc2VuZF9lbWFpbCk6CisKIDIwMjItMDItMTYgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBTaGFyZSBXZWJLaXRUZXN0
UnVubmVyIGNvZGUgYW1vbmcgVVNFKExJQldQRSkgcG9ydHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJ
U3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0
ZXBzLnB5CmluZGV4IDc0MTZiNWE0MDgwMmMxN2U4NGM5Y2Q3ZWUzMzBhZWJhMzQzMGY4MzAuLjRi
MjJlZDRiZGE4MmQ1Y2QyNDk5MmQ4NzAyOTJhN2I3NGNlZTc3YTMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1i
dWlsZC9zdGVwcy5weQpAQCAtMjE5MSw3ICsyMTkxLDcgQEAgY2xhc3MgQW5hbHl6ZUNvbXBpbGVX
ZWJLaXRSZXN1bHRzKGJ1aWxkc3RlcC5CdWlsZFN0ZXAsIEJ1Z3ppbGxhTWl4aW4sIEdpdEh1Yk1p
eGkKICAgICAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAgICAgYnVpbGRlcl9uYW1lID0g
c2VsZi5nZXRQcm9wZXJ0eSgnYnVpbGRlcm5hbWUnLCAnJykKLSAgICAgICAgICAgIGlzc3VlX2lk
ID0gc2VsZi5nZXRQcm9wZXJ0eSgnYnVnX2lkJywgJycpIG9yIHByX251bWJlcgorICAgICAgICAg
ICAgYnVnX2lkID0gc2VsZi5nZXRQcm9wZXJ0eSgnYnVnX2lkJywgJycpIG9yIHByX251bWJlcgog
ICAgICAgICAgICAgdGl0bGUgPSBzZWxmLmdldFByb3BlcnR5KCdidWdfdGl0bGUnLCAnJykgb3Ig
c2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLnRpdGxlJywgJycpCiAgICAgICAgICAgICB3b3JrZXJf
bmFtZSA9IHNlbGYuZ2V0UHJvcGVydHkoJ3dvcmtlcm5hbWUnLCAnJykKICAgICAgICAgICAgIHBs
YXRmb3JtID0gc2VsZi5nZXRQcm9wZXJ0eSgncGxhdGZvcm0nLCAnJykKQEAgLTMwMjgsMzUgKzMw
MjgsMzIgQEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cyhidWlsZHN0ZXAuQnVpbGRT
dGVwLCBCdWd6aWxsYU1peGluKToKICAgICAgICAgICAgIHByaW50KCdFcnJvciBpbiBzZW5kaW5n
IGVtYWlsIGZvciBwcmUtZXhpc3RpbmcgZmFpbHVyZToge30nLmZvcm1hdChlKSkKIAogICAgIGRl
ZiBzZW5kX2VtYWlsX2Zvcl9uZXdfdGVzdF9mYWlsdXJlcyhzZWxmLCB0ZXN0X25hbWVzLCBleGNl
ZWRfZmFpbHVyZV9saW1pdD1GYWxzZSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHBhdGNo
X2lkID0gc2VsZi5nZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAnJykKLSAgICAgICAgICAgIGlmIG5v
dCBzZWxmLnNob3VsZF9zZW5kX2VtYWlsX2Zvcl9wYXRjaChwYXRjaF9pZCk6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgICAgICBidWlsZGVyX25hbWUgPSBzZWxmLmdldFByb3BlcnR5
KCdidWlsZGVybmFtZScsICcnKQotICAgICAgICAgICAgYnVnX2lkID0gc2VsZi5nZXRQcm9wZXJ0
eSgnYnVnX2lkJywgJycpCi0gICAgICAgICAgICBidWdfdGl0bGUgPSBzZWxmLmdldFByb3BlcnR5
KCdidWdfdGl0bGUnLCAnJykKLSAgICAgICAgICAgIHdvcmtlcl9uYW1lID0gc2VsZi5nZXRQcm9w
ZXJ0eSgnd29ya2VybmFtZScsICcnKQotICAgICAgICAgICAgcGF0Y2hfYXV0aG9yID0gc2VsZi5n
ZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywgJycpCi0gICAgICAgICAgICBidWlsZF91cmwgPSAn
e30jL2J1aWxkZXJzL3t9L2J1aWxkcy97fScuZm9ybWF0KHNlbGYubWFzdGVyLmNvbmZpZy5idWls
ZGJvdFVSTCwgc2VsZi5idWlsZC5fYnVpbGRlcmlkLCBzZWxmLmJ1aWxkLm51bWJlcikKLSAgICAg
ICAgICAgIHRlc3RfbmFtZXNfc3RyaW5nID0gJycKLSAgICAgICAgICAgIGZvciB0ZXN0X25hbWUg
aW4gc29ydGVkKHRlc3RfbmFtZXMpOgotICAgICAgICAgICAgICAgIGhpc3RvcnlfdXJsID0gJ3t9
P3N1aXRlPWxheW91dC10ZXN0cyZ0ZXN0PXt9Jy5mb3JtYXQoUkVTVUxUU19EQl9VUkwsIHRlc3Rf
bmFtZSkKLSAgICAgICAgICAgICAgICB0ZXN0X25hbWVzX3N0cmluZyArPSAnXG4tIHt9ICg8YSBo
cmVmPSJ7fSI+dGVzdCBoaXN0b3J5PC9hPiknLmZvcm1hdCh0ZXN0X25hbWUsIGhpc3RvcnlfdXJs
KQotCi0gICAgICAgICAgICBwbHVyYWxTdWZmaXggPSAncycgaWYgbGVuKHRlc3RfbmFtZXMpID4g
MSBlbHNlICcnCi0gICAgICAgICAgICBlbWFpbF9zdWJqZWN0ID0gJ0xheW91dCB0ZXN0IGZhaWx1
cmUgZm9yIFBhdGNoIHt9OiB7fSAnLmZvcm1hdChwYXRjaF9pZCwgYnVnX3RpdGxlKQotICAgICAg
ICAgICAgZW1haWxfdGV4dCA9ICdFV1MgaGFzIGRldGVjdGVkIGxheW91dCB0ZXN0IGZhaWx1cmV7
fSBvbiB7fScuZm9ybWF0KHBsdXJhbFN1ZmZpeCwgYnVpbGRlcl9uYW1lKQotICAgICAgICAgICAg
ZW1haWxfdGV4dCArPSAnIHdoaWxlIHRlc3RpbmcgPGEgaHJlZj0ie30iPlBhdGNoIHt9PC9hPicu
Zm9ybWF0KEJ1Z3ppbGxhLnBhdGNoX3VybChwYXRjaF9pZCksIHBhdGNoX2lkKQotICAgICAgICAg
ICAgZW1haWxfdGV4dCArPSAnIGZvciA8YSBocmVmPSJ7fSI+QnVnIHt9PC9hPi4nLmZvcm1hdChC
dWd6aWxsYS5idWdfdXJsKGJ1Z19pZCksIGJ1Z19pZCkKLSAgICAgICAgICAgIGVtYWlsX3RleHQg
Kz0gJ1xuXG5GdWxsIGRldGFpbHMgYXJlIGF2YWlsYWJsZSBhdDoge31cblxuUGF0Y2ggYXV0aG9y
OiB7fScuZm9ybWF0KGJ1aWxkX3VybCwgcGF0Y2hfYXV0aG9yKQotICAgICAgICAgICAgaWYgZXhj
ZWVkX2ZhaWx1cmVfbGltaXQ6Ci0gICAgICAgICAgICAgICAgZW1haWxfdGV4dCArPSAnXG5cbkFk
aXRpb25hbGx5IHRoZSBmYWlsdXJlIGxpbWl0IGhhcyBiZWVuIGV4Y2VlZGVkLCBzbyB0aGUgdGVz
dCBzdWl0ZSBoYXMgYmVlbiB0ZXJtaW5hdGVkIGVhcmx5LiBJdCBpcyBsaWtlbHkgdGhhdCB0aGVy
ZSB3b3VsZCBiZSBtb3JlIGZhaWx1cmVzIHRoYW4gdGhlIG9uZXMgbGlzdGVkIGJlbG93LicKLSAg
ICAgICAgICAgIGVtYWlsX3RleHQgKz0gJ1xuXG5MYXlvdXQgdGVzdCBmYWlsdXJle306XG57fScu
Zm9ybWF0KHBsdXJhbFN1ZmZpeCwgdGVzdF9uYW1lc19zdHJpbmcpCi0gICAgICAgICAgICBlbWFp
bF90ZXh0ICs9ICdcblxuVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGVzZSBub3RpZmljYXRpb25zIG9y
IHRvIHByb3ZpZGUgYW55IGZlZWRiYWNrIHBsZWFzZSBlbWFpbCBhYWthc2hfamFpbkBhcHBsZS5j
b20nCi0gICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnU2VuZGluZyBlbWFpbCBu
b3RpZmljYXRpb24gdG8ge30nLmZvcm1hdChwYXRjaF9hdXRob3IpKQotICAgICAgICAgICAgc2Vu
ZF9lbWFpbF90b19wYXRjaF9hdXRob3IocGF0Y2hfYXV0aG9yLCBlbWFpbF9zdWJqZWN0LCBlbWFp
bF90ZXh0LCBwYXRjaF9pZCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAg
ICAgICAgcHJpbnQoJ0Vycm9yIGluIHNlbmRpbmcgZW1haWwgZm9yIG5ldyBsYXlvdXQgdGVzdCBm
YWlsdXJlczoge30nLmZvcm1hdChlKSkKKyAgICAgICAgcGF0Y2hfaWQgPSBzZWxmLmdldFByb3Bl
cnR5KCdwYXRjaF9pZCcsICcnKQorICAgICAgICBpZiBub3Qgc2VsZi5zaG91bGRfc2VuZF9lbWFp
bF9mb3JfcGF0Y2gocGF0Y2hfaWQpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGJ1aWxk
ZXJfbmFtZSA9IHNlbGYuZ2V0UHJvcGVydHkoJ2J1aWxkZXJuYW1lJywgJycpCisgICAgICAgIGJ1
Z19pZCA9IHNlbGYuZ2V0UHJvcGVydHkoJ2J1Z19pZCcsICcnKQorICAgICAgICBidWdfdGl0bGUg
PSBzZWxmLmdldFByb3BlcnR5KCdidWdfdGl0bGUnLCAnJykKKyAgICAgICAgd29ya2VyX25hbWUg
PSBzZWxmLmdldFByb3BlcnR5KCd3b3JrZXJuYW1lJywgJycpCisgICAgICAgIHBhdGNoX2F1dGhv
ciA9IHNlbGYuZ2V0UHJvcGVydHkoJ3BhdGNoX2F1dGhvcicsICcnKQorICAgICAgICBidWlsZF91
cmwgPSAne30jL2J1aWxkZXJzL3t9L2J1aWxkcy97fScuZm9ybWF0KHNlbGYubWFzdGVyLmNvbmZp
Zy5idWlsZGJvdFVSTCwgc2VsZi5idWlsZC5fYnVpbGRlcmlkLCBzZWxmLmJ1aWxkLm51bWJlcikK
KyAgICAgICAgdGVzdF9uYW1lc19zdHJpbmcgPSAnJworICAgICAgICBmb3IgdGVzdF9uYW1lIGlu
IHNvcnRlZCh0ZXN0X25hbWVzKToKKyAgICAgICAgICAgIGhpc3RvcnlfdXJsID0gJ3t9P3N1aXRl
PWxheW91dC10ZXN0cyZ0ZXN0PXt9Jy5mb3JtYXQoUkVTVUxUU19EQl9VUkwsIHRlc3RfbmFtZSkK
KyAgICAgICAgICAgIHRlc3RfbmFtZXNfc3RyaW5nICs9ICdcbi0ge30gKDxhIGhyZWY9Int9Ij50
ZXN0IGhpc3Rvcnk8L2E+KScuZm9ybWF0KHRlc3RfbmFtZSwgaGlzdG9yeV91cmwpCisKKyAgICAg
ICAgcGx1cmFsU3VmZml4ID0gJ3MnIGlmIGxlbih0ZXN0X25hbWVzKSA+IDEgZWxzZSAnJworICAg
ICAgICBlbWFpbF9zdWJqZWN0ID0gJ0xheW91dCB0ZXN0IGZhaWx1cmUgZm9yIFBhdGNoIHt9OiB7
fSAnLmZvcm1hdChwYXRjaF9pZCwgYnVnX3RpdGxlKQorICAgICAgICBlbWFpbF90ZXh0ID0gJ0VX
UyBoYXMgZGV0ZWN0ZWQgbGF5b3V0IHRlc3QgZmFpbHVyZXt9IG9uIHt9Jy5mb3JtYXQocGx1cmFs
U3VmZml4LCBidWlsZGVyX25hbWUpCisgICAgICAgIGVtYWlsX3RleHQgKz0gJyB3aGlsZSB0ZXN0
aW5nIDxhIGhyZWY9Int9Ij5QYXRjaCB7fTwvYT4nLmZvcm1hdChCdWd6aWxsYS5wYXRjaF91cmwo
cGF0Y2hfaWQpLCBwYXRjaF9pZCkKKyAgICAgICAgZW1haWxfdGV4dCArPSAnIGZvciA8YSBocmVm
PSJ7fSI+QnVnIHt9PC9hPi4nLmZvcm1hdChCdWd6aWxsYS5idWdfdXJsKGJ1Z19pZCksIGJ1Z19p
ZCkKKyAgICAgICAgZW1haWxfdGV4dCArPSAnXG5cbkZ1bGwgZGV0YWlscyBhcmUgYXZhaWxhYmxl
IGF0OiB7fVxuXG5QYXRjaCBhdXRob3I6IHt9Jy5mb3JtYXQoYnVpbGRfdXJsLCBwYXRjaF9hdXRo
b3IpCisgICAgICAgIGlmIGV4Y2VlZF9mYWlsdXJlX2xpbWl0OgorICAgICAgICAgICAgZW1haWxf
dGV4dCArPSAnXG5cbkFkaXRpb25hbGx5IHRoZSBmYWlsdXJlIGxpbWl0IGhhcyBiZWVuIGV4Y2Vl
ZGVkLCBzbyB0aGUgdGVzdCBzdWl0ZSBoYXMgYmVlbiB0ZXJtaW5hdGVkIGVhcmx5LiBJdCBpcyBs
aWtlbHkgdGhhdCB0aGVyZSB3b3VsZCBiZSBtb3JlIGZhaWx1cmVzIHRoYW4gdGhlIG9uZXMgbGlz
dGVkIGJlbG93LicKKyAgICAgICAgZW1haWxfdGV4dCArPSAnXG5cbkxheW91dCB0ZXN0IGZhaWx1
cmV7fTpcbnt9Jy5mb3JtYXQocGx1cmFsU3VmZml4LCB0ZXN0X25hbWVzX3N0cmluZykKKyAgICAg
ICAgZW1haWxfdGV4dCArPSAnXG5cblRvIHVuc3Vic2NyaWJlIGZyb20gdGhlc2Ugbm90aWZpY2F0
aW9ucyBvciB0byBwcm92aWRlIGFueSBmZWVkYmFjayBwbGVhc2UgZW1haWwgYWFrYXNoX2phaW5A
YXBwbGUuY29tJworICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnU2VuZGluZyBlbWFp
bCBub3RpZmljYXRpb24gdG8ge30nLmZvcm1hdChwYXRjaF9hdXRob3IpKQorICAgICAgICBzZW5k
X2VtYWlsX3RvX3BhdGNoX2F1dGhvcihwYXRjaF9hdXRob3IsIGVtYWlsX3N1YmplY3QsIGVtYWls
X3RleHQsIHBhdGNoX2lkKQogCiAgICAgZGVmIF9yZXBvcnRfZmxha3lfdGVzdHMoc2VsZiwgZmxh
a3lfdGVzdHMpOgogICAgICAgICAjIFRPRE86IGltcGxlbWVudCB0aGlzCkBAIC0zMzQ2LDEwICsz
MzQzLDEwIEBAIGNsYXNzIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEFuYWx5emVM
YXlvdXRUZXN0c1Jlc3VsdHMpOgogICAgICAgICAgICAgcGx1cmFsU3VmZml4ID0gJ3MnIGlmIG51
bWJlcl9mYWlsdXJlcyA+IDEgZWxzZSAnJwogCiAgICAgICAgICAgICBlbWFpbF9zdWJqZWN0ID0g
J0luZm8gYWJvdXQge30gcHJlLWV4aXN0ZW50IGZhaWx1cmV7fSBhdCB7fScuZm9ybWF0KG51bWJl
cl9mYWlsdXJlcywgcGx1cmFsU3VmZml4LCBidWlsZGVyX25hbWUpCi0gICAgICAgICAgICBlbWFp
bF90ZXN0ID0gJ0luZm8gYWJvdXQgcHJlLWV4aXN0ZW50IChub24tZmxha3kpIHRlc3QgZmFpbHVy
ZXt9IGF0IEVXUzpcbicuZm9ybWF0KHBsdXJhbFN1ZmZpeCkKLSAgICAgICAgICAgIGVtYWlsX3Rl
eHQgPSAnICAgIC0gQnVpbGQgOiB7fVxuJy5mb3JtYXQoYnVpbGRfdXJsKQotICAgICAgICAgICAg
ZW1haWxfdGV4dCA9ICcgICAgLSBCdWlsZGVyIDoge31cbicuZm9ybWF0KGJ1aWxkZXJfbmFtZSkK
LSAgICAgICAgICAgIGVtYWlsX3RleHQgPSAnICAgIC0gV29ya2VyIDoge31cbicuZm9ybWF0KHdv
cmtlcl9uYW1lKQorICAgICAgICAgICAgZW1haWxfdGV4dCA9ICdJbmZvIGFib3V0IHByZS1leGlz
dGVudCAobm9uLWZsYWt5KSB0ZXN0IGZhaWx1cmV7fSBhdCBFV1M6XG4nLmZvcm1hdChwbHVyYWxT
dWZmaXgpCisgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICcgIC0gQnVpbGQgOiB7fVxuJy5mb3Jt
YXQoYnVpbGRfdXJsKQorICAgICAgICAgICAgZW1haWxfdGV4dCArPSAnICAtIEJ1aWxkZXIgOiB7
fVxuJy5mb3JtYXQoYnVpbGRlcl9uYW1lKQorICAgICAgICAgICAgZW1haWxfdGV4dCArPSAnICAt
IFdvcmtlciA6IHt9XG4nLmZvcm1hdCh3b3JrZXJfbmFtZSkKICAgICAgICAgICAgIGZvciB0ZXN0
X25hbWUgaW4gc29ydGVkKHRlc3RfbmFtZXMpOgogICAgICAgICAgICAgICAgIGhpc3RvcnlfdXJs
ID0gJ3t9P3N1aXRlPWxheW91dC10ZXN0cyZ0ZXN0PXt9Jy5mb3JtYXQoUkVTVUxUU19EQl9VUkws
IHRlc3RfbmFtZSkKICAgICAgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICdcbi0ge30gKDxhIGhy
ZWY9Int9Ij50ZXN0IGhpc3Rvcnk8L2E+KScuZm9ybWF0KHRlc3RfbmFtZSwgaGlzdG9yeV91cmwp
CkBAIC0zMzU3LDYgKzMzNTQsMzAgQEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1Jl
ZFRyZWUoQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cyk6CiAgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b24gYXMgZToKICAgICAgICAgICAgIHByaW50KCdFcnJvciBpbiBzZW5kaW5nIGVtYWlsIGZvciBm
bGFreSBmYWlsdXJlOiB7fScuZm9ybWF0KGUpKQogCisgICAgZGVmIHNlbmRfZW1haWxfZm9yX2Zs
YWt5X2ZhaWx1cmVzX2FuZF9zdGVwcyhzZWxmLCB0ZXN0X25hbWVzX3N0ZXBzX2RpY3QpOgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBidWlsZGVyX25hbWUgPSBzZWxmLmdldFByb3BlcnR5KCdi
dWlsZGVybmFtZScsICcnKQorICAgICAgICAgICAgd29ya2VyX25hbWUgPSBzZWxmLmdldFByb3Bl
cnR5KCd3b3JrZXJuYW1lJywgJycpCisgICAgICAgICAgICBidWlsZF91cmwgPSAne30jL2J1aWxk
ZXJzL3t9L2J1aWxkcy97fScuZm9ybWF0KHNlbGYubWFzdGVyLmNvbmZpZy5idWlsZGJvdFVSTCwg
c2VsZi5idWlsZC5fYnVpbGRlcmlkLCBzZWxmLmJ1aWxkLm51bWJlcikKKyAgICAgICAgICAgIG51
bWJlcl9mYWlsdXJlcyA9IGxlbih0ZXN0X25hbWVzX3N0ZXBzX2RpY3QpCisgICAgICAgICAgICBw
bHVyYWxTdWZmaXggPSAncycgaWYgbnVtYmVyX2ZhaWx1cmVzID4gMSBlbHNlICcnCisgICAgICAg
ICAgICBlbWFpbF9zdWJqZWN0ID0gJ0luZm8gYWJvdXQge30gZmxha3kgZmFpbHVyZXt9IGF0IHt9
Jy5mb3JtYXQobnVtYmVyX2ZhaWx1cmVzLCBwbHVyYWxTdWZmaXgsIGJ1aWxkZXJfbmFtZSkKKyAg
ICAgICAgICAgIGVtYWlsX3RleHQgPSAnSW5mbyBhYm91dCB7fSBmbGFreSB0ZXN0IGZhaWx1cmV7
fSBhdCBFV1M6XG4nLmZvcm1hdChudW1iZXJfZmFpbHVyZXMsIHBsdXJhbFN1ZmZpeCkKKyAgICAg
ICAgICAgIGVtYWlsX3RleHQgKz0gJyAgLSBCdWlsZCA6IHt9XG4nLmZvcm1hdChidWlsZF91cmwp
CisgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICcgIC0gQnVpbGRlciA6IHt9XG4nLmZvcm1hdChi
dWlsZGVyX25hbWUpCisgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICcgIC0gV29ya2VyIDoge31c
bicuZm9ybWF0KHdvcmtlcl9uYW1lKQorICAgICAgICAgICAgZmxha3lfbnVtYmVyID0gMAorICAg
ICAgICAgICAgZm9yIHRlc3RfbmFtZSBpbiB0ZXN0X25hbWVzX3N0ZXBzX2RpY3Q6CisgICAgICAg
ICAgICAgICAgZmxha3lfbnVtYmVyICs9IDEKKyAgICAgICAgICAgICAgICBoaXN0b3J5X3VybCA9
ICd7fT9zdWl0ZT1sYXlvdXQtdGVzdHMmdGVzdD17fScuZm9ybWF0KFJFU1VMVFNfREJfVVJMLCB0
ZXN0X25hbWUpCisgICAgICAgICAgICAgICAgbnVtYmVyX3N0ZXBzX2ZsYWt5ID0gbGVuKHRlc3Rf
bmFtZXNfc3RlcHNfZGljdFt0ZXN0X25hbWVdKQorICAgICAgICAgICAgICAgIHBsdXJhbHN0ZXBT
dWZmaXggPSAncycgaWYgbnVtYmVyX3N0ZXBzX2ZsYWt5ID4gMSBlbHNlICcnCisgICAgICAgICAg
ICAgICAgc3RlcF9uYW1lc19zdHIgPSAnInt9IicuZm9ybWF0KCciLCAiJy5qb2luKHRlc3RfbmFt
ZXNfc3RlcHNfZGljdFt0ZXN0X25hbWVdKSkKKyAgICAgICAgICAgICAgICBlbWFpbF90ZXh0ICs9
ICdcbkZsYWt5ICN7fVxuICAtIFRlc3QgbmFtZToge31cbiAgLSBGbGFreSBvbiBzdGVwe306IHt9
XG4gIC0gSGlzdG9yeToge31cbicuZm9ybWF0KGZsYWt5X251bWJlciwgdGVzdF9uYW1lLCBwbHVy
YWxzdGVwU3VmZml4LCBzdGVwX25hbWVzX3N0ciwgaGlzdG9yeV91cmwpCisgICAgICAgICAgICBz
ZW5kX2VtYWlsX3RvX2JvdF93YXRjaGVycyhlbWFpbF9zdWJqZWN0LCBlbWFpbF90ZXh0LCBidWls
ZGVyX25hbWUsICdmbGFreS17fScuZm9ybWF0KHdvcmtlcl9uYW1lKSkKKyAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcHJpbnQoJ0Vycm9yIGluIHNlbmRpbmcgZW1h
aWwgZm9yIGZsYWt5IGZhaWx1cmU6IHt9Jy5mb3JtYXQoZSkpCisKICAgICBkZWYgc3RhcnQoc2Vs
Zik6CiAgICAgICAgICMgUnVuIHdpdGggcGF0Y2gsIHJ1bm5pbmcgdGhlIHdob2xlIGxheW91dCB0
ZXN0IHN1aXRlCiAgICAgICAgIGZpcnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQgPSBz
ZWxmLmdldFByb3BlcnR5KCdmaXJzdF9yZXN1bHRzX2V4Y2VlZF9mYWlsdXJlX2xpbWl0JywgRmFs
c2UpCkBAIC0zNDIyLDYgKzM0NDMsNyBAQCBjbGFzcyBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRz
UmVkVHJlZShBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzKToKICAgICAgICAgIyBXYXJuIEVXUyBi
b3Qgd2F0Y2hlcnMgYWJvdXQgZmxha2llcyBzbyB0aGV5IGNhbiBnYXJkZW4gdGhvc2UuIEluY2x1
ZGUgdGhlIHN0ZXAgd2hlcmUgdGhlIGZsYWt5IHdhcyBmb3VuZCBpbiB0aGUgZS1tYWlsIHRvIGtu
b3cgaWYgaXQgd2FzIGZvdW5kIHdpdGggcGF0Y2ggb3Igd2l0aG91dCBpdC4KICAgICAgICAgIyBE
dWUgdG8gdGhlIHdheSB0aGlzIGNsYXNzIHdvcmtzIG1vc3Qgb2YgdGhlIGZsYWtpZXMgYXJlIGZp
bHRlcmVkIG9uIHRoZSBzdGVwIHdpdGggcGF0Y2ggZXZlbiB3aGVuIHRob3NlIHdlcmUgcHJlLWV4
aXN0ZW50IGlzc3VlcyAoc28gdGhpcyBpcyBhbHNvIHVzZWZ1bCBmb3IgYm90IHdhdGNoZXJzKS4K
ICAgICAgICAgYWxsX2ZsYWt5X2ZhaWx1cmVzID0gZmlyc3RfcnVuX2ZsYWtpZXMudW5pb24od2l0
aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzKS51bmlvbih3aXRob3V0X3Bh
dGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMpCisgICAgICAgIGZsYWt5X3N0ZXBz
X2RpY3QgPSB7fQogICAgICAgICBmb3IgZmxha3lfZmFpbHVyZSBpbiBhbGxfZmxha3lfZmFpbHVy
ZXM6CiAgICAgICAgICAgICBzdGVwX25hbWVzID0gW10KICAgICAgICAgICAgIGlmIGZsYWt5X2Zh
aWx1cmUgaW4gd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzOgpA
QCAtMzQzMCwxMSArMzQ1MiwxMSBAQCBjbGFzcyBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVk
VHJlZShBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzKToKICAgICAgICAgICAgICAgICBzdGVwX25h
bWVzLmFwcGVuZCgnbGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcyAod2l0aCBwYXRjaCknKQog
ICAgICAgICAgICAgaWYgZmxha3lfZmFpbHVyZSBpbiBmaXJzdF9ydW5fZmxha2llczoKICAgICAg
ICAgICAgICAgICBzdGVwX25hbWVzLmFwcGVuZCgnbGF5b3V0LXRlc3RzICh3aXRoIHBhdGNoKScp
Ci0gICAgICAgICAgICBzdGVwX25hbWVzX3N0ciA9ICcie30iJy5mb3JtYXQoJyIsICInLmpvaW4o
c3RlcF9uYW1lcykpCi0gICAgICAgICAgICBzZWxmLnNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1
cmUoZmxha3lfZmFpbHVyZSwgc3RlcF9uYW1lc19zdHIpCisgICAgICAgICAgICBmbGFreV9zdGVw
c19kaWN0W2ZsYWt5X2ZhaWx1cmVdID0gc3RlcF9uYW1lcworICAgICAgICBzZWxmLnNlbmRfZW1h
aWxfZm9yX2ZsYWt5X2ZhaWx1cmVzX2FuZF9zdGVwcyhmbGFreV9zdGVwc19kaWN0KQogCiAgICAg
ICAgICMgV2FybiBFV1MgYm90IHdhdGNoZXJzIGFib3V0IHByZS1leGlzdGVudCBub24tZmxha3kg
ZmFpbHVyZXMgKGlmIGFueSksIGJ1dCBzZW5kIG9ubHkgb25lIGUtbWFpbCB3aXRoIGFsbCB0aGUg
dGVzdHMgdG8gYXZvaWQgc2VuZGluZyB0b28gbXVjaCBlLW1haWxzLgotICAgICAgICBwcmVfZXhp
c3RlbnRfbm9uX2ZsYWt5X2ZhaWx1cmVzID0gd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNf
cmVzdWx0c19ub25mbGFreV9mYWlsdXJlcyAtIHdpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfbm9uZmxha3lfZmFpbHVyZXMudW5pb24oYWxsX2ZsYWt5X2ZhaWx1cmVzKQorICAgICAg
ICBwcmVfZXhpc3RlbnRfbm9uX2ZsYWt5X2ZhaWx1cmVzID0gd2l0aG91dF9wYXRjaF9yZXBlYXRf
ZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcyAtIGFsbF9mbGFreV9mYWlsdXJlcwog
ICAgICAgICBpZiBwcmVfZXhpc3RlbnRfbm9uX2ZsYWt5X2ZhaWx1cmVzOgogICAgICAgICAgICAg
c2VsZi5zZW5kX2VtYWlsX2Zvcl9wcmVfZXhpc3RlbnRfZmFpbHVyZXMocHJlX2V4aXN0ZW50X25v
bl9mbGFreV9mYWlsdXJlcykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5p
dHRlc3QucHkKaW5kZXggYTJjYzk3ZTdmMTEwMTE2YWUxZDIxMjMxNTIxY2U2NzYxNGE5YzAxZC4u
N2NlMjAyOGJhZDU5NzBmNWQwMjE5NWIzNTk3OGRmMzU2YmE2NGNiYiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29scy9DSVN1
cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0zOCwxMCArMzgsMTAgQEAgZnJv
bSBtb2NrIGltcG9ydCBjYWxsLCBwYXRjaAogZnJvbSB0d2lzdGVkLmludGVybmV0IGltcG9ydCBk
ZWZlciwgZXJyb3IsIHJlYWN0b3IKIGZyb20gdHdpc3RlZC5weXRob24gaW1wb3J0IGZhaWx1cmUs
IGxvZwogZnJvbSB0d2lzdGVkLnRyaWFsIGltcG9ydCB1bml0dGVzdAotCitpbXBvcnQgc2VuZF9l
bWFpbAogCiBmcm9tIHN0ZXBzIGltcG9ydCAoQW5hbHl6ZUFQSVRlc3RzUmVzdWx0cywgQW5hbHl6
ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLCBBbmFseXplSlNDVGVzdHNSZXN1bHRzLAotICAgICAgICAg
ICAgICAgICAgIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMsIEFwcGx5UGF0Y2gsIEFwcGx5V2F0
Y2hMaXN0LCBBcmNoaXZlQnVpbHRQcm9kdWN0LCBBcmNoaXZlVGVzdFJlc3VsdHMsCisgICAgICAg
ICAgICAgICAgICAgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRjaCwgQXBwbHlX
YXRjaExpc3QsIEFyY2hpdmVCdWlsdFByb2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0cywgQnVnemls
bGFNaXhpbiwKICAgICAgICAgICAgICAgICAgICBDaGVja091dFB1bGxSZXF1ZXN0LCBDaGVja091
dFNvdXJjZSwgQ2hlY2tPdXRTcGVjaWZpY1JldmlzaW9uLCBDaGVja0NoYW5nZVJlbGV2YW5jZSwg
Q2hlY2tQYXRjaFN0YXR1c09uRVdTUXVldWVzLCBDaGVja1N0eWxlLAogICAgICAgICAgICAgICAg
ICAgIENsZWFuQnVpbGQsIENsZWFuVXBHaXRJbmRleExvY2ssIENsZWFuR2l0UmVwbywgQ2xlYW5X
b3JraW5nRGlyZWN0b3J5LCBDb21waWxlSlNDLCBDb21waWxlSlNDV2l0aG91dENoYW5nZSwKICAg
ICAgICAgICAgICAgICAgICBDb21waWxlV2ViS2l0LCBDb21waWxlV2ViS2l0V2l0aG91dENoYW5n
ZSwgQ29uZmlndXJlQnVpbGQsIENvbmZpZ3VyZUJ1aWxkLCBDb250cmlidXRvcnMsIENyZWF0ZUxv
Y2FsR0lUQ29tbWl0LApAQCAtNjEsNyArNjEsNyBAQCBmcm9tIHN0ZXBzIGltcG9ydCAoQW5hbHl6
ZUFQSVRlc3RzUmVzdWx0cywgQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLCBBbmFseXplSgog
IyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vYnVpbGRib3QvYnVpbGRib3QvaXNz
dWVzLzQ2NjkKIGZyb20gYnVpbGRib3QudGVzdC5mYWtlLmZha2VidWlsZCBpbXBvcnQgRmFrZUJ1
aWxkCiBGYWtlQnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwID0gbGFtYmRhIEZha2VCdWls
ZCwgc3RlcF9mYWN0b3JpZXM6IE5vbmUKLQorRmFrZUJ1aWxkLl9idWlsZGVyaWQgPSAxCiAKIGRl
ZiBtb2NrX3N0ZXAoc3RlcCwgbG9ncz0nJywgcmVzdWx0cz1TVUNDRVNTLCBzdG9wcGVkPUZhbHNl
LCBwcm9wZXJ0aWVzPU5vbmUpOgogICAgIHN0ZXAubG9ncyA9IGxvZ3MKQEAgLTEwMyw2ICsxMDMs
MTAgQEAgY2xhc3MgRXhwZWN0TWFzdGVyU2hlbGxDb21tYW5kKG9iamVjdCk6CiBjbGFzcyBCdWls
ZFN0ZXBNaXhpbkFkZGl0aW9ucyhCdWlsZFN0ZXBNaXhpbiwgVGVzdFJlYWN0b3JNaXhpbik6CiAg
ICAgZGVmIHNldFVwQnVpbGRTdGVwKHNlbGYpOgogICAgICAgICBzZWxmLnBhdGNoKHJlYWN0b3Is
ICdzcGF3blByb2Nlc3MnLCBsYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBzZWxmLl9jaGVja1NwYXdu
UHJvY2VzcygqYXJncywgKiprd2FyZ3MpKQorICAgICAgICBzZWxmLnBhdGNoKHNlbmRfZW1haWws
ICdzZW5kX2VtYWlsJywgc2VsZi5fc2VuZF9lbWFpbCkKKyAgICAgICAgc2VsZi5wYXRjaChzZW5k
X2VtYWlsLCAnZ2V0X2VtYWlsX2lkcycsIGxhbWJkYSBjOiBbJ3Rlc3RAd2Via2l0Lm9yZyddKQor
ICAgICAgICBzZWxmLnBhdGNoKEJ1Z3ppbGxhTWl4aW4sICdnZXRfYnVnemlsbGFfYXBpX2tleScs
IGxhbWJkYSBmOiAnVEVTVC1BUEktS0VZJykKKyAgICAgICAgc2VsZi5fZW1haWxzX2xpc3QgPSBb
XQogICAgICAgICBzZWxmLl9leHBlY3RlZF9sb2NhbF9jb21tYW5kcyA9IFtdCiAgICAgICAgIHNl
bGYuc2V0VXBUZXN0UmVhY3RvcigpCiAKQEAgLTE4OSw2ICsxOTMsMTYgQEAgY2xhc3MgQnVpbGRT
dGVwTWl4aW5BZGRpdGlvbnMoQnVpbGRTdGVwTWl4aW4sIFRlc3RSZWFjdG9yTWl4aW4pOgogICAg
ICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG9zLnBhdGguam9pbihyZWxhdGl2ZV9yb290X3Bh
dGgsIG5hbWUpKQogICAgICAgICByZXR1cm4gcmVzdWx0cwogCisgICAgZGVmIF9zZW5kX2VtYWls
KHNlbGYsIHRvX2VtYWlscywgc3ViamVjdCwgdGV4dCwgcmVmZXJlbmNlPScnKToKKyAgICAgICAg
aWYgbm90IHRvX2VtYWlsczoKKyAgICAgICAgICAgIHNlbGYuX2VtYWlsc19saXN0LmFwcGVuZCgn
RXJyb3I6IHNraXBwaW5nIGVtYWlsIHNpbmNlIG5vIHJlY2lwaWVudCBpcyBzcGVjaWZpZWQnKQor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCBzdWJqZWN0IG9yIG5vdCB0
ZXh0OgorICAgICAgICAgICAgc2VsZi5fZW1haWxzX2xpc3QuYXBwZW5kKCdFcnJvcjogc2tpcHBp
bmcgZW1haWwgc2luY2Ugbm8gc3ViamVjdCBvciB0ZXh0IGlzIHNwZWNpZmllZCcpCisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgc2VsZi5fZW1haWxzX2xpc3QuYXBwZW5kKCdTdWJq
ZWN0OiB7fVxuVG86IHt9XG5SZWZlcmVuY2U6IHt9XG5Cb2R5OlxuXG57fScuZm9ybWF0KHN1Ympl
Y3QsIHRvX2VtYWlscywgcmVmZXJlbmNlLCB0ZXh0KSkKKyAgICAgICAgcmV0dXJuIFRydWUKKwog
ICAgIGRlZiBydW5TdGVwKHNlbGYpOgogICAgICAgICBkZWYgY2hlY2socmVzdWx0KToKICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZXhwZWN0ZWRfbG9jYWxfY29tbWFuZHMsIFtd
LCAnYXNzZXJ0IGFsbCBleHBlY3RlZCBsb2NhbCBjb21tYW5kcyB3ZXJlIHJ1bicpCkBAIC0xMjA1
LDcgKzEyMTksNiBAQCBjbGFzcyBUZXN0Q29tcGlsZVdlYktpdFdpdGhvdXRDaGFuZ2UoQnVpbGRT
dGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKQogY2xhc3MgVGVzdEFuYWx5emVD
b21waWxlV2ViS2l0UmVzdWx0cyhCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVz
dENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5sb25nTWVzc2FnZSA9
IFRydWUKLSAgICAgICAgQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLnNlbmRfZW1haWxfZm9y
X2J1aWxkX2ZhaWx1cmUgPSBsYW1iZGEgc2VsZjogTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5z
ZXRVcEJ1aWxkU3RlcCgpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CkBAIC0xNTk0LDggKzE2
MDcsNiBAQCBjbGFzcyBUZXN0QW5hbHl6ZUpTQ1Rlc3RzUmVzdWx0cyhCdWlsZFN0ZXBNaXhpbkFk
ZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdq
c2NfY2xlYW5fdHJlZV9zdHJlc3NfdGVzdF9mYWlsdXJlcycsIFtdKQogICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdqc2NfY2xlYW5fdHJlZV9iaW5hcnlfZmFpbHVyZXMnLCBbXSkKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnanNjX2NsZWFuX3RyZWVfZmxha3lfYW5kX3Bhc3NlZCcsIHt9KQot
ICAgICAgICBBbmFseXplSlNDVGVzdHNSZXN1bHRzLnNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1
cmUgPSBsYW1iZGEgKmFyZ3M6IE5vbmUKLSAgICAgICAgQW5hbHl6ZUpTQ1Rlc3RzUmVzdWx0cy5z
ZW5kX2VtYWlsX2Zvcl9wcmVfZXhpc3RpbmdfZmFpbHVyZSA9IGxhbWJkYSAqYXJnczogTm9uZQog
CiAgICAgZGVmIHRlc3Rfc2luZ2xlX25ld19zdHJlc3NfZmFpbHVyZShzZWxmKToKICAgICAgICAg
c2VsZi5jb25maWd1cmVTdGVwKCkKQEAgLTE5MjgsNyArMTkzOSw2IEBAIGNsYXNzIFRlc3RSZVJ1
bldlYktpdFRlc3RzKFRlc3RSdW5XZWJLaXRUZXN0cyk6CiAgICAgICAgIHNlbGYuc2V0dXBTdGVw
KFJlUnVuV2ViS2l0VGVzdHMoKSkKICAgICAgICAgc2VsZi5wcm9wZXJ0eV9leGNlZWRfZmFpbHVy
ZV9saW1pdCA9ICdzZWNvbmRfcmVzdWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCcKICAgICAgICAg
c2VsZi5wcm9wZXJ0eV9mYWlsdXJlcyA9ICdzZWNvbmRfcnVuX2ZhaWx1cmVzJwotICAgICAgICBS
ZVJ1bldlYktpdFRlc3RzLnNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmUgPSBsYW1iZGEgKmFy
Z3M6IE5vbmUKIAogICAgIGRlZiB0ZXN0X2ZsYWt5X2ZhaWx1cmVzX2luX2ZpcnN0X3J1bihzZWxm
KToKICAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKQEAgLTIzMzEsOCArMjM0MSw2IEBAIGNs
YXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzKEJ1aWxkU3RlcE1peGluQWRkaXRpb25z
LCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJldHVybiBzZWxmLnRlYXJEb3duQnVpbGRT
dGVwKCkKIAogICAgIGRlZiBjb25maWd1cmVTdGVwKHNlbGYpOgotICAgICAgICBBbmFseXplTGF5
b3V0VGVzdHNSZXN1bHRzLnNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmUgPSBsYW1iZGEgKmFy
Z3M6IE5vbmUKLSAgICAgICAgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cy5zZW5kX2VtYWlsX2Zv
cl9wcmVfZXhpc3RpbmdfZmFpbHVyZSA9IGxhbWJkYSAqYXJnczogTm9uZQogICAgICAgICBzZWxm
LnNldHVwU3RlcChBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzKCkpCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2ZpcnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnLCBGYWxzZSkKICAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnc2Vjb25kX3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGlt
aXQnLCBGYWxzZSkKQEAgLTI2ODAsMTQgKzI2ODgsMTQgQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlv
dXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5U
ZXMKICAgICAgICAgcmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQogCiAgICAgZGVmIGNv
bmZpZ3VyZVN0ZXAoc2VsZik6Ci0gICAgICAgIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMuc2Vu
ZF9lbWFpbF9mb3JfZmxha3lfZmFpbHVyZSA9IGxhbWJkYSAqYXJnczogTm9uZQotICAgICAgICBB
bmFseXplTGF5b3V0VGVzdHNSZXN1bHRzLnNlbmRfZW1haWxfZm9yX3ByZV9leGlzdGluZ19mYWls
dXJlID0gbGFtYmRhICphcmdzOiBOb25lCisKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAoQW5hbHl6
ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoKSkKIAogICAgIGRlZiB0ZXN0X2ZhaWx1cmVfaW50
cm9kdWNlZF9ieV9wYXRjaF9jbGVhbl90cmVlX2dyZWVuKHNlbGYpOgogICAgICAgICBzZWxmLmNv
bmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAn
Z3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNl
JykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywgJ3Rlc3RAaWdhbGlh
LmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsi
dGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCJdKQogICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIsICJ0
ZXN0L2ZsYWt5Mi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hf
cmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVy
ZTEuaHRtbCJdKQpAQCAtMjY5NSwxMiArMjcwMywyMSBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91
dFRlc3RzUmVzdWx0c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRl
cwogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJl
c19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFsidGVz
dC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUo
cmVzdWx0PUZBSUxVUkUsIHN0YXRlX3N0cmluZz0nRm91bmQgMSBuZXcgdGVzdCBmYWlsdXJlOiB0
ZXN0L2ZhaWx1cmUxLmh0bWwgKGZhaWx1cmUpJykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3Rl
cCgpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAyKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoJ1N1YmplY3Q6IEluZm8gYWJvdXQgNCBmbGFreSBmYWlsdXJlcycgaW4gc2VsZi5fZW1h
aWxzX2xpc3RbMF0pCisgICAgICAgIGZvciBmbGFreV90ZXN0IGluIFsidGVzdC9mbGFreTEuaHRt
bCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1l
eGlzdGVudC9mbGFreS5odG1sIl06CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1Rlc3Qg
bmFtZToge30nLmZvcm1hdChmbGFreV90ZXN0KSBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnVGVzdCBuYW1lOiB0ZXN0L2ZhaWx1cmUxLmh0bWwnIGlu
IHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1N1YmplY3Q6
IExheW91dCB0ZXN0IGZhaWx1cmUgZm9yIFBhdGNoJyBpbiBzZWxmLl9lbWFpbHNfbGlzdFsxXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCd0ZXN0L2ZhaWx1cmUxLmh0bWwnIGluIHNlbGYuX2Vt
YWlsc19saXN0WzFdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0
X2ZhaWx1cmVfaW50cm9kdWNlZF9ieV9wYXRjaF9jbGVhbl90cmVlX3JlZChzZWxmKToKICAgICAg
ICAgc2VsZi5jb25maWd1cmVTdGVwKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBs
YXRmb3JtJywgJ2d0aycpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24n
LCAncmVsZWFzZScpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2F1dGhvcicsICd0
ZXN0QGlnYWxpYS5jb20nKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFp
bHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAidGVz
dC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0
bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbInRl
c3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1
cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5o
dG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKQEAgLTI3MDgsMTAgKzI3MjUs
MjMgQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEJ1aWxkU3Rl
cE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
d2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycs
IFsidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFsi
dGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLmV4cGVjdE91dGNv
bWUocmVzdWx0PUZBSUxVUkUsIHN0YXRlX3N0cmluZz0nRm91bmQgMSBuZXcgdGVzdCBmYWlsdXJl
OiB0ZXN0L2ZhaWx1cmUxLmh0bWwgKGZhaWx1cmUpJykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVu
U3RlcCgpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAzKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUoJ1N1YmplY3Q6IEluZm8gYWJvdXQgNCBmbGFreSBmYWlsdXJlcycgaW4gc2VsZi5f
ZW1haWxzX2xpc3RbMF0pCisgICAgICAgIGZvciBmbGFreV90ZXN0IGluIFsidGVzdC9mbGFreTEu
aHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3By
ZS1leGlzdGVudC9mbGFreS5odG1sIl06CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1Rl
c3QgbmFtZToge30nLmZvcm1hdChmbGFreV90ZXN0KSBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnVGVzdCBuYW1lOiBwcmVleGlzdGluZy10ZXN0L3By
ZS1leGlzdGVudC9mYWlsdXJlLmh0bWwnIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoJ1N1YmplY3Q6IEluZm8gYWJvdXQgMSBwcmUtZXhpc3RlbnQgZmFp
bHVyZSBhdCcgaW4gc2VsZi5fZW1haWxzX2xpc3RbMV0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZSgncHJlZXhpc3RpbmctdGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sJyBpbiBzZWxmLl9l
bWFpbHNfbGlzdFsxXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdTdWJqZWN0OiBMYXlvdXQg
dGVzdCBmYWlsdXJlIGZvciBQYXRjaCcgaW4gc2VsZi5fZW1haWxzX2xpc3RbMl0pCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgndGVzdC9mYWlsdXJlMS5odG1sJyBpbiBzZWxmLl9lbWFpbHNfbGlz
dFsyXSkKKyAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0CiAKICAgICBkZWYgdGVzdF9wcmVfZXhp
c3RlbnRfZmFpbHVyZXMoc2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCisgICAg
ICAgIHNlbGYuc2V0UHJvcGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdndGsnKQorICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCdjb25maWd1cmF0aW9uJywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdwYXRjaF9hdXRob3InLCAndGVzdEBpZ2FsaWEuY29tJykKICAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9m
YWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFsidGVzdC9wcmUtZXhpc3RlbnQv
Zmxha3kyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kzLmh0bWwiXSkKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25m
bGFreV9mYWlsdXJlcycsIFsidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIl0pCkBAIC0y
NzE5LDEwICsyNzQ5LDIxIEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVk
VHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxh
a3lfZmFpbHVyZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCJdKQogICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRz
X2ZsYWtpZXMnLCBbXSkKICAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNT
LCBzdGF0ZV9zdHJpbmc9J1Bhc3NlZCBsYXlvdXQgdGVzdHMnKQotICAgICAgICByZXR1cm4gc2Vs
Zi5ydW5TdGVwKCkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCksIDIpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogSW5mbyBhYm91dCAzIGZsYWt5IGZhaWx1cmVzJyBpbiBz
ZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgZm9yIGZsYWt5X3Rlc3QgaW4gWyJ0ZXN0L3By
ZS1leGlzdGVudC9mbGFreS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Mi5odG1sIiwg
InRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5My5odG1sIl06CisgICAgICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoJ1Rlc3QgbmFtZToge30nLmZvcm1hdChmbGFreV90ZXN0KSBpbiBzZWxmLl9lbWFpbHNf
bGlzdFswXSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnVGVzdCBuYW1lOiBwcmVleGlzdGlu
Zy10ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwnIGluIHNlbGYuX2VtYWlsc19saXN0WzBd
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1N1YmplY3Q6IEluZm8gYWJvdXQgMSBwcmUtZXhp
c3RlbnQgZmFpbHVyZSBhdCcgaW4gc2VsZi5fZW1haWxzX2xpc3RbMV0pCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgncHJlZXhpc3RpbmctdGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sJyBp
biBzZWxmLl9lbWFpbHNfbGlzdFsxXSkKKyAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0CiAKICAg
ICBkZWYgdGVzdF9wcmVfZXhpc3RlbnRfZmxha2llcyhzZWxmKToKICAgICAgICAgc2VsZi5jb25m
aWd1cmVTdGVwKCkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0
aycpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScp
CisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2F1dGhvcicsICd0ZXN0QGlnYWxpYS5j
b20nKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRl
c3QvcHJlLWV4aXN0ZW50L2ZsYWt5MS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTIuaHRtbCIsICJ0
ZXN0L3ByZS1leGlzdGVudC9mbGFreTMuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywg
W10pCkBAIC0yNzMxLDEyICsyNzcyLDE4IEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNS
ZXN1bHRzUmVkVHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAg
ICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3Vs
dHNfZmxha2llcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNo
X3JlcGVhdF9mYWlsdXJlc19yZXRjb2RlJywgU1VDQ0VTUykKICAgICAgICAgc2VsZi5leHBlY3RP
dXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J1Bhc3NlZCBsYXlvdXQgdGVzdHMn
KQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBz
ZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNf
bGlzdCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogSW5mbyBhYm91dCAz
IGZsYWt5IGZhaWx1cmVzJyBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgZm9yIGZs
YWt5X3Rlc3QgaW4gWyJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTEuaHRtbCIsICJ0ZXN0L3ByZS1l
eGlzdGVudC9mbGFreTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTMuaHRtbCJdOgor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdUZXN0IG5hbWU6IHt9Jy5mb3JtYXQoZmxha3lf
dGVzdCkgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHJldHVybiBzdGVwX3Jlc3Vs
dAogCiAgICAgZGVmIHRlc3RfZmlyc3Rfc3RlcF9naXZlc191bmV4cGVjdGVkX2ZhaWx1cmVfYW5k
X2NsZWFuX3RyZWVfcGFzc19sYXN0X3RyeShzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1cmVT
dGVwKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycpCiAg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisgICAg
ICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2F1dGhvcicsICd0ZXN0QGlnYWxpYS5jb20nKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbXSkKICAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbXSkKICAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgncmV0cnlfY291bnQnLCBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVk
VHJlZS5NQVhfUkVUUlkpCkBAIC0yNzQ0LDM4ICsyNzkxLDUxIEBAIGNsYXNzIFRlc3RBbmFseXpl
TGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRl
c3QuVGVzCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NsZWFuX3RyZWVfcnVuX2ZsYWtpZXMn
LCBbJ3Rlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwnXSkKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnY2xlYW5fdHJlZV9ydW5fc3RhdHVzJywgV0FSTklOR1MpCiAgICAgICAgIHNlbGYuZXhw
ZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwgc3RhdGVfc3RyaW5nPSdGb3VuZCB1bmV4cGVjdGVk
IGZhaWx1cmUgd2l0aCBwYXRjaCAoZmFpbHVyZSknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5T
dGVwKCkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCksIDApCisgICAgICAgIHJldHVybiBz
dGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3RfZmlyc3Rfc3RlcF9naXZlc191bmV4cGVjdGVkX2Zh
aWx1cmVfYW5kX2NsZWFuX3RyZWVfdW5leHBlY3RlZF9mYWlsdXJlX2xhc3RfdHJ5KHNlbGYpOgog
ICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdm
dWxsUGxhdGZvcm0nLCAnZ3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJh
dGlvbicsICdyZWxlYXNlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9y
JywgJ3Rlc3RAaWdhbGlhLmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1
bl9mYWlsdXJlcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxh
a2llcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIEFuYWx5
emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlLk1BWF9SRVRSWSkKICAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fZmFpbHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fZmxha2llcycsIFtdKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdjbGVhbl90cmVlX3J1bl9zdGF0dXMnLCBGQUlMVVJFKQotICAgICAgICBzZWxmLmV4
cGVjdE91dGNvbWUocmVzdWx0PVdBUk5JTkdTLCBzdGF0ZV9zdHJpbmc9J1RoZSBsYXlvdXQtdGVz
dCBydW4gd2l0aCBwYXRjaCBnZW5lcmF0ZWQgbm8gbGlzdCBvZiByZXN1bHRzIGFuZCBleGl0ZWQg
d2l0aCBlcnJvciwgYW5kIHRoZSBjbGVhbl90cmVlIHdpdGhvdXQgcGF0Y2ggcnVuIGRpZCB0aGUg
c2FtZSB0aGluZy5cblJlYWNoZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJldHJpZXMgKDMpLiBV
bmFibGUgdG8gZGV0ZXJtaW5lIGlmIHBhdGNoIGlzIGJhZCBvciB0aGVyZSBpcyBhIHByZS1leGlz
dGVudCBpbmZyYXN0cnVjdHVyZSBpc3N1ZS4gKHdhcm5pbmdzKScpCi0gICAgICAgIHJldHVybiBz
ZWxmLnJ1blN0ZXAoKQorICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdU
aGUgbGF5b3V0LXRlc3QgcnVuIHdpdGggcGF0Y2ggZ2VuZXJhdGVkIG5vIGxpc3Qgb2YgcmVzdWx0
cyBhbmQgZXhpdGVkIHdpdGggZXJyb3IsIGFuZCB0aGUgY2xlYW5fdHJlZSB3aXRob3V0IHBhdGNo
IHJ1biBkaWQgdGhlIHNhbWUgdGhpbmcuJworICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVz
dWx0PVdBUk5JTkdTLCBzdGF0ZV9zdHJpbmc9J3t9XG5SZWFjaGVkIHRoZSBtYXhpbXVtIG51bWJl
ciBvZiByZXRyaWVzICgzKS4gVW5hYmxlIHRvIGRldGVybWluZSBpZiBwYXRjaCBpcyBiYWQgb3Ig
dGhlcmUgaXMgYSBwcmUtZXhpc3RlbnQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWUuICh3YXJuaW5ncykn
LmZvcm1hdChleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvcikpCisgICAgICAgIHN0ZXBfcmVz
dWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5f
ZW1haWxzX2xpc3QpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW5mcmFz
dHJ1Y3R1cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHJldHVybiBz
dGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3RfZmlyc3Rfc3RlcF9naXZlc191bmV4cGVjdGVkX2Zh
aWx1cmVfcmV0cnkoc2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCiAgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdndGsnKQogICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdjb25maWd1cmF0aW9uJywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdwYXRjaF9hdXRob3InLCAndGVzdEBpZ2FsaWEuY29tJykKICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J2NsZWFuX3RyZWVfcnVuX2ZhaWx1cmVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3JldHJ5X2NvdW50JywgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUuTUFYX1JFVFJZ
IC0gMSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fZmxha2llcycs
IFsndGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCddKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCdjbGVhbl90cmVlX3J1bl9zdGF0dXMnLCBXQVJOSU5HUykKLSAgICAgICAgc2VsZi5leHBl
Y3RPdXRjb21lKHJlc3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3Ry
dWN0dXJlIGlzc3VlOiBUaGUgbGF5b3V0LXRlc3QgcnVuIHdpdGggcGF0Y2ggZ2VuZXJhdGVkIG5v
IGxpc3Qgb2YgcmVzdWx0cyBhbmQgZXhpdGVkIHdpdGggZXJyb3IsIHJldHJ5aW5nIHdpdGggdGhl
IGhvcGUgaXQgd2FzIGEgcmFuZG9tIGluZnJhc3RydWN0dXJlIGVycm9yLlxuUmV0cnlpbmcgYnVp
bGQgW3JldHJ5IGNvdW50IGlzIDIgb2YgM10gKHJldHJ5KScpCi0gICAgICAgIHJldHVybiBzZWxm
LnJ1blN0ZXAoKQorICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUg
bGF5b3V0LXRlc3QgcnVuIHdpdGggcGF0Y2ggZ2VuZXJhdGVkIG5vIGxpc3Qgb2YgcmVzdWx0cyBh
bmQgZXhpdGVkIHdpdGggZXJyb3IsIHJldHJ5aW5nIHdpdGggdGhlIGhvcGUgaXQgd2FzIGEgcmFu
ZG9tIGluZnJhc3RydWN0dXJlIGVycm9yLicKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJl
c3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3Vl
OiB7fVxuUmV0cnlpbmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDIgb2YgM10gKHJldHJ5KScuZm9y
bWF0KGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yKSkKKyAgICAgICAgc3RlcF9yZXN1bHQg
PSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFp
bHNfbGlzdCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbmZyYXN0cnVj
dHVyZV9lcnJvciBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgcmV0dXJuIHN0ZXBf
cmVzdWx0CiAKICAgICBkZWYgdGVzdF9zdGVwX3JldHJ5X3dpdGhfcGF0Y2hfZXhpdHNfZWFybHlf
ZXJyb3Ioc2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCiAgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdndGsnKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCdjb25maWd1cmF0aW9uJywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCdwYXRjaF9hdXRob3InLCAndGVzdEBpZ2FsaWEuY29tJykKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9m
YWlsdXJlMi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3By
ZS1leGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0
X3J1bl9mbGFraWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvcHJl
LWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0p
CkBAIC0yNzgzLDEzICsyODQzLDE4IEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1
bHRzUmVkVHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
bm9uZmxha3lfZmFpbHVyZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCJdKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19l
eGNlZWRfZmFpbHVyZV9saW1pdCcsIFRydWUpCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShy
ZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1
ZTogT25lIG9mIHRoZSBzdGVwcyBmb3IgcmV0cnlpbmcgdGhlIGZhaWxlZCB0ZXN0cyBoYXMgZXhp
dGVkIGVhcmx5LCBidXQgdGhpcyBzdGVwcyBzaG91bGQgcnVuIHdpdGhvdXQgIi0tZXhpdC1hZnRl
ci1uLWZhaWx1cmVzIiBzd2l0Y2gsIHNvIHRoZXkgc2hvdWxkIG5vdCBleGl0IGVhcmx5LlxuUmV0
cnlpbmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDAgb2YgM10gKHJldHJ5KScpCi0gICAgICAgIHJl
dHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJv
ciA9ICdPbmUgb2YgdGhlIHN0ZXBzIGZvciByZXRyeWluZyB0aGUgZmFpbGVkIHRlc3RzIGhhcyBl
eGl0ZWQgZWFybHksIGJ1dCB0aGlzIHN0ZXBzIHNob3VsZCBydW4gd2l0aG91dCAiLS1leGl0LWFm
dGVyLW4tZmFpbHVyZXMiIHN3aXRjaCwgc28gdGhleSBzaG91bGQgbm90IGV4aXQgZWFybHkuJwor
ICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1Vu
ZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkg
Y291bnQgaXMgMCBvZiAzXSAocmV0cnkpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVf
ZXJyb3IpKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19s
aXN0WzBdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBf
cmV0cnlfd2l0aG91dF9wYXRjaF9leGl0c19lYXJseV9lcnJvcihzZWxmKToKICAgICAgICAgc2Vs
Zi5jb25maWd1cmVTdGVwKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3Jt
JywgJ2d0aycpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVs
ZWFzZScpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2F1dGhvcicsICd0ZXN0QGln
YWxpYS5jb20nKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMn
LCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbInRlc3QvZmxh
a3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywg
WyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwg
InRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKQEAgLTI3OTcsMzcgKzI4NjIsNTUgQEAg
Y2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEJ1aWxkU3RlcE1peGlu
QWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91
dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVz
dC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFsidGVzdC9w
cmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRo
b3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2V4Y2VlZF9mYWlsdXJlX2xpbWl0Jywg
VHJ1ZSkKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1SRVRSWSwgc3RhdGVfc3Ry
aW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3VlOiBPbmUgb2YgdGhlIHN0ZXBzIGZv
ciByZXRyeWluZyB0aGUgZmFpbGVkIHRlc3RzIGhhcyBleGl0ZWQgZWFybHksIGJ1dCB0aGlzIHN0
ZXBzIHNob3VsZCBydW4gd2l0aG91dCAiLS1leGl0LWFmdGVyLW4tZmFpbHVyZXMiIHN3aXRjaCwg
c28gdGhleSBzaG91bGQgbm90IGV4aXQgZWFybHkuXG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291
bnQgaXMgMCBvZiAzXSAocmV0cnkpJykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCisg
ICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ09uZSBvZiB0aGUgc3RlcHMg
Zm9yIHJldHJ5aW5nIHRoZSBmYWlsZWQgdGVzdHMgaGFzIGV4aXRlZCBlYXJseSwgYnV0IHRoaXMg
c3RlcHMgc2hvdWxkIHJ1biB3aXRob3V0ICItLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcyIgc3dpdGNo
LCBzbyB0aGV5IHNob3VsZCBub3QgZXhpdCBlYXJseS4nCisgICAgICAgIHNlbGYuZXhwZWN0T3V0
Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVy
ZSBpc3N1ZToge31cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAwIG9mIDNdIChyZXRy
eSknLmZvcm1hdChleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvcikpCisgICAgICAgIHN0ZXBf
cmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2Vs
Zi5fZW1haWxzX2xpc3QpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW5m
cmFzdHJ1Y3R1cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHJldHVy
biBzdGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3Rfc3RlcF9yZXRyeV93aXRoX3BhdGNoX3RpbWVv
dXRzKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
cGF0Y2hfYXV0aG9yJywgJ3Rlc3RAaWdhbGlhLmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFp
bHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9y
dW5fZmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3RpbWVk
b3V0JywgVHJ1ZSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBl
YXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9wcmUtZXhpc3Rl
bnQvZmFpbHVyZS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0
Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFsidGVzdC9wcmUtZXhpc3RlbnQv
Zmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PUZBSUxVUkUs
IHN0YXRlX3N0cmluZz0nRm91bmQgMiBuZXcgdGVzdCBmYWlsdXJlczogdGVzdC9mYWlsdXJlMS5o
dG1sLCB0ZXN0L2ZhaWx1cmUyLmh0bWwgKGZhaWx1cmUpJykKLSAgICAgICAgcmV0dXJuIHNlbGYu
cnVuU3RlcCgpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAyKQorICAgICAgICBleHBl
Y3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJlcGVh
dC1mYWlsdXJlcy13aXRoLXBhdGNoIiByZWFjaGVkIHRoZSB0aW1lb3V0IGJ1dCB0aGUgc3RlcCAi
bGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LXBhdGNoIiBlbmRlZC4gTm90IHRy
eWluZyB0byByZXBlYXQgdGhpcy4gUmVwb3J0aW5nIDIgZmFpbHVyZXMgZnJvbSB0aGUgZmlyc3Qg
cnVuLicKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vy
cm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1N1
YmplY3Q6IExheW91dCB0ZXN0IGZhaWx1cmUgZm9yIFBhdGNoJyBpbiBzZWxmLl9lbWFpbHNfbGlz
dFsxXSkKKyAgICAgICAgZm9yIGZhaWxlZF90ZXN0IGluIFsndGVzdC9mYWlsdXJlMS5odG1sJywg
J3Rlc3QvZmFpbHVyZTIuaHRtbCddOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZhaWxl
ZF90ZXN0IGluIHNlbGYuX2VtYWlsc19saXN0WzFdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1
bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9wYXRjaF91bmV4cGVjdGVkX2Vycm9y
KHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
Y29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0
Y2hfYXV0aG9yJywgJ3Rlc3RAaWdhbGlhLmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVy
ZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhp
c3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5f
Zmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAgICAg
ICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
bm9uZmxha3lfZmFpbHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9w
YXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgW10pCiAgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3JldGNvZGUnLCBGQUlMVVJF
KQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9
J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IFRoZSBzdGVwICJsYXlvdXQtdGVzdHMt
cmVwZWF0LWZhaWx1cmVzIiBmYWlsZWQgdG8gZ2VuZXJhdGUgYW55IGxpc3Qgb2YgZmFpbHVyZXMg
b3IgZmxha2llcyBhbmQgcmV0dXJuZWQgYW4gZXJyb3IgY29kZS5cblJldHJ5aW5nIGJ1aWxkIFty
ZXRyeSBjb3VudCBpcyAwIG9mIDNdIChyZXRyeSknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5T
dGVwKCkKKyAgICAgICAgZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgPSAnVGhlIHN0ZXAg
ImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMiIGZhaWxlZCB0byBnZW5lcmF0ZSBhbnkgbGlz
dCBvZiBmYWlsdXJlcyBvciBmbGFraWVzIGFuZCByZXR1cm5lZCBhbiBlcnJvciBjb2RlLicKKyAg
ICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPSdVbmV4
cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3VlOiB7fVxuUmV0cnlpbmcgYnVpbGQgW3JldHJ5IGNv
dW50IGlzIDAgb2YgM10gKHJldHJ5KScuZm9ybWF0KGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vy
cm9yKSkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCksIDEpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciBpbiBzZWxmLl9lbWFpbHNfbGlz
dFswXSkKKyAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0CiAKICAgICBkZWYgdGVzdF9zdGVwX3Jl
dHJ5X3dpdGhvdXRfcGF0Y2hfdW5leHBlY3RlZF9lcnJvcihzZWxmKToKICAgICAgICAgc2VsZi5j
b25maWd1cmVTdGVwKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywg
J2d0aycpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFz
ZScpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2F1dGhvcicsICd0ZXN0QGlnYWxp
YS5jb20nKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBb
InRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhp
c3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbInRlc3QvZmxha3kx
Lmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3
aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0
ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIl0pCkBAIC0yODM2LDU3ICsy
OTE5LDgxIEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZShCdWls
ZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVy
ZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRf
ZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3JldGNvZGUnLCBGQUlMVVJFKQotICAgICAg
ICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0
ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IFRoZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZh
aWx1cmVzLXdpdGhvdXQtcGF0Y2giIGZhaWxlZCB0byBnZW5lcmF0ZSBhbnkgbGlzdCBvZiBmYWls
dXJlcyBvciBmbGFraWVzIGFuZCByZXR1cm5lZCBhbiBlcnJvciBjb2RlLlxuUmV0cnlpbmcgYnVp
bGQgW3JldHJ5IGNvdW50IGlzIDAgb2YgM10gKHJldHJ5KScpCi0gICAgICAgIHJldHVybiBzZWxm
LnJ1blN0ZXAoKQorICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUg
c3RlcCAibGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LXBhdGNoIiBmYWlsZWQg
dG8gZ2VuZXJhdGUgYW55IGxpc3Qgb2YgZmFpbHVyZXMgb3IgZmxha2llcyBhbmQgcmV0dXJuZWQg
YW4gZXJyb3IgY29kZS4nCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlks
IHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZToge31cblJldHJ5
aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAwIG9mIDNdIChyZXRyeSknLmZvcm1hdChleHBlY3Rl
ZF9pbmZyYXN0cnVjdHVyZV9lcnJvcikpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5T
dGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAx
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3Ig
aW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHJldHVybiBzdGVwX3Jlc3VsdAogCiAg
ICAgZGVmIHRlc3Rfc3RlcF9yZXRyeV93aXRob3V0X3BhdGNoX3RpbWVvdXRzKHNlbGYpOgogICAg
ICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxs
UGxhdGZvcm0nLCAnZ3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlv
bicsICdyZWxlYXNlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfYXV0aG9yJywg
J3Rlc3RAaWdhbGlhLmNvbScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9m
YWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0
ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3ku
aHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFsi
dGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3RpbWVkb3V0JywgVHJ1ZSkKICAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfdGlt
ZWRvdXQnLCBUcnVlKQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBz
dGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IFRoZSBzdGVwICJs
YXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0Y2giIHdhcyBpbnRlcnJ1bXBl
ZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuXG5SZXRyeWluZyBidWlsZCBbcmV0cnkg
Y291bnQgaXMgMCBvZiAzXSAocmV0cnkpJykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgp
CisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ1RoZSBzdGVwICJsYXlv
dXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0Y2giIHdhcyBpbnRlcnJ1bXBlZCBi
ZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuJworICAgICAgICBzZWxmLmV4cGVjdE91dGNv
bWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUg
aXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMCBvZiAzXSAocmV0cnkp
Jy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IpKQorICAgICAgICBzdGVwX3Jl
c3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYu
X2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2luZnJh
c3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICByZXR1cm4g
c3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9wYXRjaF90aW1lb3V0
c19hbmRfd2l0aG91dF9wYXRjaF90aW1lb3V0cyhzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1
cmVTdGVwKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycp
CiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2F1dGhvcicsICd0ZXN0QGlnYWxpYS5jb20n
KQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3Qv
ZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQv
ZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbInRlc3QvZmxha3kxLmh0bWwi
LCAidGVzdC9mbGFreTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3Bh
dGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L2Zh
aWx1cmUxLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJl
LWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9w
YXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0L2ZhaWx1cmUyLmh0
bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFp
bHVyZXNfdGltZWRvdXQnLCBUcnVlKQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0
PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IFRo
ZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0Y2giIHdhcyBp
bnRlcnJ1bXBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuXG5SZXRyeWluZyBidWls
ZCBbcmV0cnkgY291bnQgaXMgMCBvZiAzXSAocmV0cnkpJykKLSAgICAgICAgcmV0dXJuIHNlbGYu
cnVuU3RlcCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ1RoZSBz
dGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0Y2giIHdhcyBpbnRl
cnJ1bXBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuJworICAgICAgICBzZWxmLmV4
cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFz
dHJ1Y3R1cmUgaXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMCBvZiAz
XSAocmV0cnkpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IpKQorICAgICAg
ICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVj
dGVkX2luZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAg
ICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3JldHJ5X3RoaXJkX3RpbWUoc2Vs
Zik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2Z1bGxQbGF0Zm9ybScsICdndGsnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjb25m
aWd1cmF0aW9uJywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9h
dXRob3InLCAndGVzdEBpZ2FsaWEuY29tJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmly
c3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWlsdXJlMi5o
dG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVu
dC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFr
aWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25m
bGFreV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50
L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxh
a2llcycsIFsidGVzdC9mYWlsdXJlMi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3RpbWVkb3V0JywgVHJ1ZSkKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgncmV0cnlfY291bnQnLCAyKQotICAgICAgICBzZWxmLmV4cGVjdE91
dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1
cmUgaXNzdWU6IFRoZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQt
cGF0Y2giIHdhcyBpbnRlcnJ1bXBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuXG5S
ZXRyeWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMiBvZiAzXSAocmV0cnkpJykKLSAgICAgICAg
cmV0dXJuIHNlbGYucnVuU3RlcCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vy
cm9yID0gJ1RoZSBzdGVwICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0
Y2giIHdhcyBpbnRlcnJ1bXBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuJworICAg
ICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhw
ZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291
bnQgaXMgMiBvZiAzXSAocmV0cnkpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJy
b3IpKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0
WzBdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3JldHJ5X2Zp
bmlzaChzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3BhdGNoX2F1dGhvcicsICd0ZXN0QGlnYWxpYS5jb20nKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2Zh
aWx1cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJl
LWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3Rf
cnVuX2ZsYWtpZXMnLCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1
bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9wcmUt
ZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19mbGFraWVzJywgWyJ0ZXN0L2ZhaWx1cmUyLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQnLCBUcnVlKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIDMpCi0gICAgICAgIHNlbGYu
ZXhwZWN0T3V0Y29tZShyZXN1bHQ9V0FSTklOR1MsIHN0YXRlX3N0cmluZz0nVGhlIHN0ZXAgImxh
eW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRjaCIgd2FzIGludGVycnVtcGVk
IGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC5cblJlYWNoZWQgdGhlIG1heGltdW0gbnVt
YmVyIG9mIHJldHJpZXMgKDMpLiBVbmFibGUgdG8gZGV0ZXJtaW5lIGlmIHBhdGNoIGlzIGJhZCBv
ciB0aGVyZSBpcyBhIHByZS1leGlzdGVudCBpbmZyYXN0cnVjdHVyZSBpc3N1ZS4gKHdhcm5pbmdz
KScpCi0gICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBleHBlY3RlZF9pbmZy
YXN0cnVjdHVyZV9lcnJvciA9ICdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJl
cy13aXRob3V0LXBhdGNoIiB3YXMgaW50ZXJydW1wZWQgYmVjYXVzZSBpdCByZWFjaGVkIHRoZSB0
aW1lb3V0LicKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1XQVJOSU5HUywgc3Rh
dGVfc3RyaW5nPSd7fVxuUmVhY2hlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyAoMyku
IFVuYWJsZSB0byBkZXRlcm1pbmUgaWYgcGF0Y2ggaXMgYmFkIG9yIHRoZXJlIGlzIGEgcHJlLWV4
aXN0ZW50IGluZnJhc3RydWN0dXJlIGlzc3VlLiAod2FybmluZ3MpJy5mb3JtYXQoZXhwZWN0ZWRf
aW5mcmFzdHJ1Y3R1cmVfZXJyb3IpKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3Rl
cCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMSkK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yIGlu
IHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogCiBj
bGFzcyBUZXN0Q2hlY2tPdXRTcGVjaWZpY1JldmlzaW9uKEJ1aWxkU3RlcE1peGluQWRkaXRpb25z
LCB1bml0dGVzdC5UZXN0Q2FzZSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452230</attachid>
            <date>2022-02-16 12:43:31 -0800</date>
            <delta_ts>2022-02-16 12:54:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236705-20220216204330.patch</filename>
            <type>text/plain</type>
            <size>41977</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5OTI2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODIxNTczYTA4ZWJiM2U5ZWQ4Yzk1NzA0ZjdlNjliMTli
YjNiN2Q0My4uNmQ3YzM0OWY5NmU1OGQzM2NlMDRiYWU5NWEzOThmNmFjNzU3MzNiNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDIyLTAyLTE2ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtFV1NdW0dUS10gU2VuZCBvbmx5IG9uZSBlLW1haWwgd2l0aCBh
bGwgdGhlIGxpc3Qgb2YgZmxha2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM2NzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2VuZGluZyBvbmUgZS1tYWlsIHBlciB0ZXN0IHdhcyB0b28gbXVjaCBl
LW1haWxzIGFuZCB3ZSB3ZXJlCisgICAgICAgIHNwYW1pbmcgdGhlIGJvdCB3YXRjaGVycy4gQ2hh
bmdlIGl0IHRvIG9ubHkgc2VuZCBvbmUgZS1tYWlsCisgICAgICAgIHBlciBydW4gd2l0aCBhbGwg
dGhlIGxpc3Qgb2YgZmxha2llcyBvbiB0aGUgYm9keSBvZiB0aGUgZS1tYWlsLgorCisgICAgICAg
IEZpeCBhbHNvIHR3byB3cm9uZyB2YXJpYWJsZSBuYW1lcyBkZXRlY3RlZCBvbiByZWxhdGVkIGNv
ZGUKKyAgICAgICAgbWVhbndoaWxlIHRlc3RpbmcgdGhpcy4KKworICAgICAgICBBZGQgYWxzbyB1
bml0IHRlc3RzIHRvIGJlIGFibGUgdG8gY2hlY2sgdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgICAg
ICBlLW1haWxzIGdlbmVyYXRlZCBhbmQgYWxzbyBmaXggYSBsb2dpYyBlcnJvciBkZXRldGVkIHdo
ZW4KKyAgICAgICAgd29ya2luZyBvbiB0aGUgdW5pdCB0ZXN0cyByZWxhdGVkIHRvIHJlcG9ydGlu
ZworICAgICAgICB0aGUgcHJlX2V4aXN0ZW50X25vbl9mbGFreV9mYWlsdXJlcyBmb3IgdGhlIEdU
SyBFV1MuCisKKyAgICAgICAgKiBDSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5OgorICAgICAg
ICAoQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLnNlbmRfZW1haWxfZm9yX25ld19idWlsZF9m
YWlsdXJlKToKKyAgICAgICAgKEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlLnNlbmRf
ZW1haWxfZm9yX3ByZV9leGlzdGVudF9mYWlsdXJlcyk6CisgICAgICAgIChBbmFseXplTGF5b3V0
VGVzdHNSZXN1bHRzUmVkVHJlZS5zZW5kX2VtYWlsX2Zvcl9mbGFreV9mYWlsdXJlc19hbmRfc3Rl
cHMpOgorICAgICAgICAoQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUuc3RhcnQpOgor
ICAgICAgICAqIENJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHk6CisgICAgICAg
IChCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucy5zZXRVcEJ1aWxkU3RlcCk6CisgICAgICAgIChCdWls
ZFN0ZXBNaXhpbkFkZGl0aW9ucy5fc2VuZF9lbWFpbCk6CisKIDIwMjItMDItMTYgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrYXJvdW5kIEFTQU4gZmFs
c2UgcG9zaXRpdmUgc3RhY2stYnVmZmVyLXVuZGVyZmxvdyBibWFsbG9jX2FsbG9jYXRlX2ltcGxf
Y2FzdWFsX2Nhc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMu
cHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CmluZGV4IDY5YTExMWJiMjZh
MWM0ZTM2MTFjN2I3NmRhM2ZlNzBlOTdhYjdlNWMuLmFlOGFlYzExOTE2NmEyY2ZmMzk4ZGJkMDBm
ODJkNTEwMmYxYTU1MjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3Rl
cHMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQpAQCAtMjE3MSw3
ICsyMTcxLDcgQEAgY2xhc3MgQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzKGJ1aWxkc3RlcC5C
dWlsZFN0ZXAsIEJ1Z3ppbGxhTWl4aW4sIEdpdEh1Yk1peGkKICAgICAgICAgICAgIGlmIHByX251
bWJlciBhbmQgbm90IHNlbGYuc2hvdWxkX3NlbmRfZW1haWxfZm9yX3ByKHByX251bWJlcik6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICBpZiBub3QgcGF0Y2hfaWQgYW5kIG5v
dCAocHJfbnVtYmVyIGFuZCBzaGEpOgotICAgICAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdV
bnJlY29nbml6ZWQgY2hhbmdlIHR5cGUnKQorICAgICAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9n
KCdzdGRlcnInLCAnVW5yZWNvZ25pemVkIGNoYW5nZSB0eXBlJykKICAgICAgICAgICAgICAgICBy
ZXR1cm4KIAogICAgICAgICAgICAgY2hhbmdlX3N0cmluZyA9IE5vbmUKQEAgLTIxODcsMTEgKzIx
ODcsMTEgQEAgY2xhc3MgQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzKGJ1aWxkc3RlcC5CdWls
ZFN0ZXAsIEJ1Z3ppbGxhTWl4aW4sIEdpdEh1Yk1peGkKICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fYWRkVG9Mb2coJ3N0ZGlvJywgZXJyb3IpCiAKICAgICAgICAgICAgIGlmIG5vdCBjaGFuZ2Vf
YXV0aG9yOgotICAgICAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdVbmFibGUgdG8gZGV0ZXJt
aW5lIGVtYWlsIGFkZHJlc3MgZm9yIHt9IGZyb20gbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24u
IFNraXBwaW5nIHNlbmRpbmcgZW1haWwuJy5mb3JtYXQoc2VsZi5nZXRQcm9wZXJ0eSgnb3duZXJz
JywgW10pKSkKKyAgICAgICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkZXJyJywgJ1VuYWJs
ZSB0byBkZXRlcm1pbmUgZW1haWwgYWRkcmVzcyBmb3Ige30gZnJvbSBtZXRhZGF0YS9jb250cmli
dXRvcnMuanNvbi4gU2tpcHBpbmcgc2VuZGluZyBlbWFpbC4nLmZvcm1hdChzZWxmLmdldFByb3Bl
cnR5KCdvd25lcnMnLCBbXSkpKQogICAgICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgICAg
ICBidWlsZGVyX25hbWUgPSBzZWxmLmdldFByb3BlcnR5KCdidWlsZGVybmFtZScsICcnKQotICAg
ICAgICAgICAgaXNzdWVfaWQgPSBzZWxmLmdldFByb3BlcnR5KCdidWdfaWQnLCAnJykgb3IgcHJf
bnVtYmVyCisgICAgICAgICAgICBidWdfaWQgPSBzZWxmLmdldFByb3BlcnR5KCdidWdfaWQnLCAn
Jykgb3IgcHJfbnVtYmVyCiAgICAgICAgICAgICB0aXRsZSA9IHNlbGYuZ2V0UHJvcGVydHkoJ2J1
Z190aXRsZScsICcnKSBvciBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIudGl0bGUnLCAnJykKICAg
ICAgICAgICAgIHdvcmtlcl9uYW1lID0gc2VsZi5nZXRQcm9wZXJ0eSgnd29ya2VybmFtZScsICcn
KQogICAgICAgICAgICAgcGxhdGZvcm0gPSBzZWxmLmdldFByb3BlcnR5KCdwbGF0Zm9ybScsICcn
KQpAQCAtMzAzOCw3ICszMDM4LDcgQEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cyhi
dWlsZHN0ZXAuQnVpbGRTdGVwLCBCdWd6aWxsYU1peGluLCBHaXRIdWJNaXhpbikKICAgICAgICAg
ICAgIGlmIHByX251bWJlciBhbmQgbm90IHNlbGYuc2hvdWxkX3NlbmRfZW1haWxfZm9yX3ByKHBy
X251bWJlcik6CiAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICBpZiBub3QgcGF0
Y2hfaWQgYW5kIG5vdCAocHJfbnVtYmVyIGFuZCBzaGEpOgotICAgICAgICAgICAgICAgIHNlbGYu
X2FkZFRvTG9nKCdVbnJlY29nbml6ZWQgY2hhbmdlIHR5cGUnKQorICAgICAgICAgICAgICAgIHNl
bGYuX2FkZFRvTG9nKCdzdGRlcnInLCAnVW5yZWNvZ25pemVkIGNoYW5nZSB0eXBlJykKICAgICAg
ICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAgICAgY2hhbmdlX3N0cmluZyA9IE5vbmUKQEAg
LTMwNTQsMTEgKzMwNTQsMTEgQEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cyhidWls
ZHN0ZXAuQnVpbGRTdGVwLCBCdWd6aWxsYU1peGluLCBHaXRIdWJNaXhpbikKICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fYWRkVG9Mb2coJ3N0ZGlvJywgZXJyb3IpCiAKICAgICAgICAgICAgIGlm
IG5vdCBjaGFuZ2VfYXV0aG9yOgotICAgICAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdVbmFi
bGUgdG8gZGV0ZXJtaW5lIGVtYWlsIGFkZHJlc3MgZm9yIHt9IGZyb20gbWV0YWRhdGEvY29udHJp
YnV0b3JzLmpzb24uIFNraXBwaW5nIHNlbmRpbmcgZW1haWwuJy5mb3JtYXQoc2VsZi5nZXRQcm9w
ZXJ0eSgnb3duZXJzJywgW10pKSkKKyAgICAgICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3Rk
ZXJyJywgJ1VuYWJsZSB0byBkZXRlcm1pbmUgZW1haWwgYWRkcmVzcyBmb3Ige30gZnJvbSBtZXRh
ZGF0YS9jb250cmlidXRvcnMuanNvbi4gU2tpcHBpbmcgc2VuZGluZyBlbWFpbC4nLmZvcm1hdChz
ZWxmLmdldFByb3BlcnR5KCdvd25lcnMnLCBbXSkpKQogICAgICAgICAgICAgICAgIHJldHVybgog
CiAgICAgICAgICAgICBidWlsZGVyX25hbWUgPSBzZWxmLmdldFByb3BlcnR5KCdidWlsZGVybmFt
ZScsICcnKQotICAgICAgICAgICAgaXNzdWVfaWQgPSBzZWxmLmdldFByb3BlcnR5KCdidWdfaWQn
LCAnJykgb3IgcHJfbnVtYmVyCisgICAgICAgICAgICBidWdfaWQgPSBzZWxmLmdldFByb3BlcnR5
KCdidWdfaWQnLCAnJykgb3IgcHJfbnVtYmVyCiAgICAgICAgICAgICB0aXRsZSA9IHNlbGYuZ2V0
UHJvcGVydHkoJ2J1Z190aXRsZScsICcnKSBvciBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIudGl0
bGUnLCAnJykKICAgICAgICAgICAgIHdvcmtlcl9uYW1lID0gc2VsZi5nZXRQcm9wZXJ0eSgnd29y
a2VybmFtZScsICcnKQogICAgICAgICAgICAgcGF0Y2hfYXV0aG9yID0gc2VsZi5nZXRQcm9wZXJ0
eSgncGF0Y2hfYXV0aG9yJywgJycpCkBAIC0zMzc3LDEwICszMzc3LDEwIEBAIGNsYXNzIEFuYWx5
emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMpOgog
ICAgICAgICAgICAgcGx1cmFsU3VmZml4ID0gJ3MnIGlmIG51bWJlcl9mYWlsdXJlcyA+IDEgZWxz
ZSAnJwogCiAgICAgICAgICAgICBlbWFpbF9zdWJqZWN0ID0gJ0luZm8gYWJvdXQge30gcHJlLWV4
aXN0ZW50IGZhaWx1cmV7fSBhdCB7fScuZm9ybWF0KG51bWJlcl9mYWlsdXJlcywgcGx1cmFsU3Vm
Zml4LCBidWlsZGVyX25hbWUpCi0gICAgICAgICAgICBlbWFpbF90ZXN0ID0gJ0luZm8gYWJvdXQg
cHJlLWV4aXN0ZW50IChub24tZmxha3kpIHRlc3QgZmFpbHVyZXt9IGF0IEVXUzpcbicuZm9ybWF0
KHBsdXJhbFN1ZmZpeCkKLSAgICAgICAgICAgIGVtYWlsX3RleHQgPSAnICAgIC0gQnVpbGQgOiB7
fVxuJy5mb3JtYXQoYnVpbGRfdXJsKQotICAgICAgICAgICAgZW1haWxfdGV4dCA9ICcgICAgLSBC
dWlsZGVyIDoge31cbicuZm9ybWF0KGJ1aWxkZXJfbmFtZSkKLSAgICAgICAgICAgIGVtYWlsX3Rl
eHQgPSAnICAgIC0gV29ya2VyIDoge31cbicuZm9ybWF0KHdvcmtlcl9uYW1lKQorICAgICAgICAg
ICAgZW1haWxfdGV4dCA9ICdJbmZvIGFib3V0IHByZS1leGlzdGVudCAobm9uLWZsYWt5KSB0ZXN0
IGZhaWx1cmV7fSBhdCBFV1M6XG4nLmZvcm1hdChwbHVyYWxTdWZmaXgpCisgICAgICAgICAgICBl
bWFpbF90ZXh0ICs9ICcgIC0gQnVpbGQgOiB7fVxuJy5mb3JtYXQoYnVpbGRfdXJsKQorICAgICAg
ICAgICAgZW1haWxfdGV4dCArPSAnICAtIEJ1aWxkZXIgOiB7fVxuJy5mb3JtYXQoYnVpbGRlcl9u
YW1lKQorICAgICAgICAgICAgZW1haWxfdGV4dCArPSAnICAtIFdvcmtlciA6IHt9XG4nLmZvcm1h
dCh3b3JrZXJfbmFtZSkKICAgICAgICAgICAgIGZvciB0ZXN0X25hbWUgaW4gc29ydGVkKHRlc3Rf
bmFtZXMpOgogICAgICAgICAgICAgICAgIGhpc3RvcnlfdXJsID0gJ3t9P3N1aXRlPWxheW91dC10
ZXN0cyZ0ZXN0PXt9Jy5mb3JtYXQoUkVTVUxUU19EQl9VUkwsIHRlc3RfbmFtZSkKICAgICAgICAg
ICAgICAgICBlbWFpbF90ZXh0ICs9ICdcbi0ge30gKDxhIGhyZWY9Int9Ij50ZXN0IGhpc3Rvcnk8
L2E+KScuZm9ybWF0KHRlc3RfbmFtZSwgaGlzdG9yeV91cmwpCkBAIC0zMzg4LDYgKzMzODgsMzAg
QEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUoQW5hbHl6ZUxheW91dFRl
c3RzUmVzdWx0cyk6CiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAg
IHByaW50KCdFcnJvciBpbiBzZW5kaW5nIGVtYWlsIGZvciBmbGFreSBmYWlsdXJlOiB7fScuZm9y
bWF0KGUpKQogCisgICAgZGVmIHNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmVzX2FuZF9zdGVw
cyhzZWxmLCB0ZXN0X25hbWVzX3N0ZXBzX2RpY3QpOgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBidWlsZGVyX25hbWUgPSBzZWxmLmdldFByb3BlcnR5KCdidWlsZGVybmFtZScsICcnKQorICAg
ICAgICAgICAgd29ya2VyX25hbWUgPSBzZWxmLmdldFByb3BlcnR5KCd3b3JrZXJuYW1lJywgJycp
CisgICAgICAgICAgICBidWlsZF91cmwgPSAne30jL2J1aWxkZXJzL3t9L2J1aWxkcy97fScuZm9y
bWF0KHNlbGYubWFzdGVyLmNvbmZpZy5idWlsZGJvdFVSTCwgc2VsZi5idWlsZC5fYnVpbGRlcmlk
LCBzZWxmLmJ1aWxkLm51bWJlcikKKyAgICAgICAgICAgIG51bWJlcl9mYWlsdXJlcyA9IGxlbih0
ZXN0X25hbWVzX3N0ZXBzX2RpY3QpCisgICAgICAgICAgICBwbHVyYWxTdWZmaXggPSAncycgaWYg
bnVtYmVyX2ZhaWx1cmVzID4gMSBlbHNlICcnCisgICAgICAgICAgICBlbWFpbF9zdWJqZWN0ID0g
J0luZm8gYWJvdXQge30gZmxha3kgZmFpbHVyZXt9IGF0IHt9Jy5mb3JtYXQobnVtYmVyX2ZhaWx1
cmVzLCBwbHVyYWxTdWZmaXgsIGJ1aWxkZXJfbmFtZSkKKyAgICAgICAgICAgIGVtYWlsX3RleHQg
PSAnSW5mbyBhYm91dCB7fSBmbGFreSB0ZXN0IGZhaWx1cmV7fSBhdCBFV1M6XG4nLmZvcm1hdChu
dW1iZXJfZmFpbHVyZXMsIHBsdXJhbFN1ZmZpeCkKKyAgICAgICAgICAgIGVtYWlsX3RleHQgKz0g
JyAgLSBCdWlsZCA6IHt9XG4nLmZvcm1hdChidWlsZF91cmwpCisgICAgICAgICAgICBlbWFpbF90
ZXh0ICs9ICcgIC0gQnVpbGRlciA6IHt9XG4nLmZvcm1hdChidWlsZGVyX25hbWUpCisgICAgICAg
ICAgICBlbWFpbF90ZXh0ICs9ICcgIC0gV29ya2VyIDoge31cbicuZm9ybWF0KHdvcmtlcl9uYW1l
KQorICAgICAgICAgICAgZmxha3lfbnVtYmVyID0gMAorICAgICAgICAgICAgZm9yIHRlc3RfbmFt
ZSBpbiB0ZXN0X25hbWVzX3N0ZXBzX2RpY3Q6CisgICAgICAgICAgICAgICAgZmxha3lfbnVtYmVy
ICs9IDEKKyAgICAgICAgICAgICAgICBoaXN0b3J5X3VybCA9ICd7fT9zdWl0ZT1sYXlvdXQtdGVz
dHMmdGVzdD17fScuZm9ybWF0KFJFU1VMVFNfREJfVVJMLCB0ZXN0X25hbWUpCisgICAgICAgICAg
ICAgICAgbnVtYmVyX3N0ZXBzX2ZsYWt5ID0gbGVuKHRlc3RfbmFtZXNfc3RlcHNfZGljdFt0ZXN0
X25hbWVdKQorICAgICAgICAgICAgICAgIHBsdXJhbHN0ZXBTdWZmaXggPSAncycgaWYgbnVtYmVy
X3N0ZXBzX2ZsYWt5ID4gMSBlbHNlICcnCisgICAgICAgICAgICAgICAgc3RlcF9uYW1lc19zdHIg
PSAnInt9IicuZm9ybWF0KCciLCAiJy5qb2luKHRlc3RfbmFtZXNfc3RlcHNfZGljdFt0ZXN0X25h
bWVdKSkKKyAgICAgICAgICAgICAgICBlbWFpbF90ZXh0ICs9ICdcbkZsYWt5ICN7fVxuICAtIFRl
c3QgbmFtZToge31cbiAgLSBGbGFreSBvbiBzdGVwe306IHt9XG4gIC0gSGlzdG9yeToge31cbicu
Zm9ybWF0KGZsYWt5X251bWJlciwgdGVzdF9uYW1lLCBwbHVyYWxzdGVwU3VmZml4LCBzdGVwX25h
bWVzX3N0ciwgaGlzdG9yeV91cmwpCisgICAgICAgICAgICBzZW5kX2VtYWlsX3RvX2JvdF93YXRj
aGVycyhlbWFpbF9zdWJqZWN0LCBlbWFpbF90ZXh0LCBidWlsZGVyX25hbWUsICdmbGFreS17fScu
Zm9ybWF0KHdvcmtlcl9uYW1lKSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg
ICAgICAgICAgcHJpbnQoJ0Vycm9yIGluIHNlbmRpbmcgZW1haWwgZm9yIGZsYWt5IGZhaWx1cmU6
IHt9Jy5mb3JtYXQoZSkpCisKICAgICBkZWYgc3RhcnQoc2VsZik6CiAgICAgICAgICMgUnVuIHdp
dGggcGF0Y2gsIHJ1bm5pbmcgdGhlIHdob2xlIGxheW91dCB0ZXN0IHN1aXRlCiAgICAgICAgIGZp
cnN0X3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQgPSBzZWxmLmdldFByb3BlcnR5KCdmaXJz
dF9yZXN1bHRzX2V4Y2VlZF9mYWlsdXJlX2xpbWl0JywgRmFsc2UpCkBAIC0zNDUzLDYgKzM0Nzcs
NyBAQCBjbGFzcyBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZShBbmFseXplTGF5b3V0
VGVzdHNSZXN1bHRzKToKICAgICAgICAgIyBXYXJuIEVXUyBib3Qgd2F0Y2hlcnMgYWJvdXQgZmxh
a2llcyBzbyB0aGV5IGNhbiBnYXJkZW4gdGhvc2UuIEluY2x1ZGUgdGhlIHN0ZXAgd2hlcmUgdGhl
IGZsYWt5IHdhcyBmb3VuZCBpbiB0aGUgZS1tYWlsIHRvIGtub3cgaWYgaXQgd2FzIGZvdW5kIHdp
dGggcGF0Y2ggb3Igd2l0aG91dCBpdC4KICAgICAgICAgIyBEdWUgdG8gdGhlIHdheSB0aGlzIGNs
YXNzIHdvcmtzIG1vc3Qgb2YgdGhlIGZsYWtpZXMgYXJlIGZpbHRlcmVkIG9uIHRoZSBzdGVwIHdp
dGggcGF0Y2ggZXZlbiB3aGVuIHRob3NlIHdlcmUgcHJlLWV4aXN0ZW50IGlzc3VlcyAoc28gdGhp
cyBpcyBhbHNvIHVzZWZ1bCBmb3IgYm90IHdhdGNoZXJzKS4KICAgICAgICAgYWxsX2ZsYWt5X2Zh
aWx1cmVzID0gZmlyc3RfcnVuX2ZsYWtpZXMudW5pb24od2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVy
ZXNfcmVzdWx0c19mbGFraWVzKS51bmlvbih3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX2ZsYWtpZXMpCisgICAgICAgIGZsYWt5X3N0ZXBzX2RpY3QgPSB7fQogICAgICAgICBm
b3IgZmxha3lfZmFpbHVyZSBpbiBhbGxfZmxha3lfZmFpbHVyZXM6CiAgICAgICAgICAgICBzdGVw
X25hbWVzID0gW10KICAgICAgICAgICAgIGlmIGZsYWt5X2ZhaWx1cmUgaW4gd2l0aG91dF9wYXRj
aF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzOgpAQCAtMzQ2MSwxMSArMzQ4NiwxMSBA
QCBjbGFzcyBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZShBbmFseXplTGF5b3V0VGVz
dHNSZXN1bHRzKToKICAgICAgICAgICAgICAgICBzdGVwX25hbWVzLmFwcGVuZCgnbGF5b3V0LXRl
c3RzLXJlcGVhdC1mYWlsdXJlcyAod2l0aCBwYXRjaCknKQogICAgICAgICAgICAgaWYgZmxha3lf
ZmFpbHVyZSBpbiBmaXJzdF9ydW5fZmxha2llczoKICAgICAgICAgICAgICAgICBzdGVwX25hbWVz
LmFwcGVuZCgnbGF5b3V0LXRlc3RzICh3aXRoIHBhdGNoKScpCi0gICAgICAgICAgICBzdGVwX25h
bWVzX3N0ciA9ICcie30iJy5mb3JtYXQoJyIsICInLmpvaW4oc3RlcF9uYW1lcykpCi0gICAgICAg
ICAgICBzZWxmLnNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmUoZmxha3lfZmFpbHVyZSwgc3Rl
cF9uYW1lc19zdHIpCisgICAgICAgICAgICBmbGFreV9zdGVwc19kaWN0W2ZsYWt5X2ZhaWx1cmVd
ID0gc3RlcF9uYW1lcworICAgICAgICBzZWxmLnNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmVz
X2FuZF9zdGVwcyhmbGFreV9zdGVwc19kaWN0KQogCiAgICAgICAgICMgV2FybiBFV1MgYm90IHdh
dGNoZXJzIGFib3V0IHByZS1leGlzdGVudCBub24tZmxha3kgZmFpbHVyZXMgKGlmIGFueSksIGJ1
dCBzZW5kIG9ubHkgb25lIGUtbWFpbCB3aXRoIGFsbCB0aGUgdGVzdHMgdG8gYXZvaWQgc2VuZGlu
ZyB0b28gbXVjaCBlLW1haWxzLgotICAgICAgICBwcmVfZXhpc3RlbnRfbm9uX2ZsYWt5X2ZhaWx1
cmVzID0gd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWls
dXJlcyAtIHdpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVy
ZXMudW5pb24oYWxsX2ZsYWt5X2ZhaWx1cmVzKQorICAgICAgICBwcmVfZXhpc3RlbnRfbm9uX2Zs
YWt5X2ZhaWx1cmVzID0gd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25m
bGFreV9mYWlsdXJlcyAtIGFsbF9mbGFreV9mYWlsdXJlcwogICAgICAgICBpZiBwcmVfZXhpc3Rl
bnRfbm9uX2ZsYWt5X2ZhaWx1cmVzOgogICAgICAgICAgICAgc2VsZi5zZW5kX2VtYWlsX2Zvcl9w
cmVfZXhpc3RlbnRfZmFpbHVyZXMocHJlX2V4aXN0ZW50X25vbl9mbGFreV9mYWlsdXJlcykKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weSBi
L1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkKaW5kZXggYTJjYzk3
ZTdmMTEwMTE2YWUxZDIxMjMxNTIxY2U2NzYxNGE5YzAxZC4uZTljMTA3ODZkMDEwZGM0NjI1ODMw
ZDU2MmM1YzAxYTlmMjFjZDg4MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBz
X3VuaXR0ZXN0LnB5CkBAIC0zOCwxMCArMzgsMTAgQEAgZnJvbSBtb2NrIGltcG9ydCBjYWxsLCBw
YXRjaAogZnJvbSB0d2lzdGVkLmludGVybmV0IGltcG9ydCBkZWZlciwgZXJyb3IsIHJlYWN0b3IK
IGZyb20gdHdpc3RlZC5weXRob24gaW1wb3J0IGZhaWx1cmUsIGxvZwogZnJvbSB0d2lzdGVkLnRy
aWFsIGltcG9ydCB1bml0dGVzdAotCitpbXBvcnQgc2VuZF9lbWFpbAogCiBmcm9tIHN0ZXBzIGlt
cG9ydCAoQW5hbHl6ZUFQSVRlc3RzUmVzdWx0cywgQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRz
LCBBbmFseXplSlNDVGVzdHNSZXN1bHRzLAotICAgICAgICAgICAgICAgICAgIEFuYWx5emVMYXlv
dXRUZXN0c1Jlc3VsdHMsIEFwcGx5UGF0Y2gsIEFwcGx5V2F0Y2hMaXN0LCBBcmNoaXZlQnVpbHRQ
cm9kdWN0LCBBcmNoaXZlVGVzdFJlc3VsdHMsCisgICAgICAgICAgICAgICAgICAgQW5hbHl6ZUxh
eW91dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRjaCwgQXBwbHlXYXRjaExpc3QsIEFyY2hpdmVCdWls
dFByb2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0cywgQnVnemlsbGFNaXhpbiwKICAgICAgICAgICAg
ICAgICAgICBDaGVja091dFB1bGxSZXF1ZXN0LCBDaGVja091dFNvdXJjZSwgQ2hlY2tPdXRTcGVj
aWZpY1JldmlzaW9uLCBDaGVja0NoYW5nZVJlbGV2YW5jZSwgQ2hlY2tQYXRjaFN0YXR1c09uRVdT
UXVldWVzLCBDaGVja1N0eWxlLAogICAgICAgICAgICAgICAgICAgIENsZWFuQnVpbGQsIENsZWFu
VXBHaXRJbmRleExvY2ssIENsZWFuR2l0UmVwbywgQ2xlYW5Xb3JraW5nRGlyZWN0b3J5LCBDb21w
aWxlSlNDLCBDb21waWxlSlNDV2l0aG91dENoYW5nZSwKICAgICAgICAgICAgICAgICAgICBDb21w
aWxlV2ViS2l0LCBDb21waWxlV2ViS2l0V2l0aG91dENoYW5nZSwgQ29uZmlndXJlQnVpbGQsIENv
bmZpZ3VyZUJ1aWxkLCBDb250cmlidXRvcnMsIENyZWF0ZUxvY2FsR0lUQ29tbWl0LApAQCAtNjEs
NyArNjEsNyBAQCBmcm9tIHN0ZXBzIGltcG9ydCAoQW5hbHl6ZUFQSVRlc3RzUmVzdWx0cywgQW5h
bHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLCBBbmFseXplSgogIyBXb3JrYXJvdW5kIGZvciBodHRw
czovL2dpdGh1Yi5jb20vYnVpbGRib3QvYnVpbGRib3QvaXNzdWVzLzQ2NjkKIGZyb20gYnVpbGRi
b3QudGVzdC5mYWtlLmZha2VidWlsZCBpbXBvcnQgRmFrZUJ1aWxkCiBGYWtlQnVpbGQuYWRkU3Rl
cHNBZnRlckN1cnJlbnRTdGVwID0gbGFtYmRhIEZha2VCdWlsZCwgc3RlcF9mYWN0b3JpZXM6IE5v
bmUKLQorRmFrZUJ1aWxkLl9idWlsZGVyaWQgPSAxCiAKIGRlZiBtb2NrX3N0ZXAoc3RlcCwgbG9n
cz0nJywgcmVzdWx0cz1TVUNDRVNTLCBzdG9wcGVkPUZhbHNlLCBwcm9wZXJ0aWVzPU5vbmUpOgog
ICAgIHN0ZXAubG9ncyA9IGxvZ3MKQEAgLTEwMyw2ICsxMDMsMTAgQEAgY2xhc3MgRXhwZWN0TWFz
dGVyU2hlbGxDb21tYW5kKG9iamVjdCk6CiBjbGFzcyBCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucyhC
dWlsZFN0ZXBNaXhpbiwgVGVzdFJlYWN0b3JNaXhpbik6CiAgICAgZGVmIHNldFVwQnVpbGRTdGVw
KHNlbGYpOgogICAgICAgICBzZWxmLnBhdGNoKHJlYWN0b3IsICdzcGF3blByb2Nlc3MnLCBsYW1i
ZGEgKmFyZ3MsICoqa3dhcmdzOiBzZWxmLl9jaGVja1NwYXduUHJvY2VzcygqYXJncywgKiprd2Fy
Z3MpKQorICAgICAgICBzZWxmLnBhdGNoKHNlbmRfZW1haWwsICdzZW5kX2VtYWlsJywgc2VsZi5f
c2VuZF9lbWFpbCkKKyAgICAgICAgc2VsZi5wYXRjaChzZW5kX2VtYWlsLCAnZ2V0X2VtYWlsX2lk
cycsIGxhbWJkYSBjOiBbJ3Rlc3RAd2Via2l0Lm9yZyddKQorICAgICAgICBzZWxmLnBhdGNoKEJ1
Z3ppbGxhTWl4aW4sICdnZXRfYnVnemlsbGFfYXBpX2tleScsIGxhbWJkYSBmOiAnVEVTVC1BUEkt
S0VZJykKKyAgICAgICAgc2VsZi5fZW1haWxzX2xpc3QgPSBbXQogICAgICAgICBzZWxmLl9leHBl
Y3RlZF9sb2NhbF9jb21tYW5kcyA9IFtdCiAgICAgICAgIHNlbGYuc2V0VXBUZXN0UmVhY3Rvcigp
CiAKQEAgLTE4OSw2ICsxOTMsMTYgQEAgY2xhc3MgQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMoQnVp
bGRTdGVwTWl4aW4sIFRlc3RSZWFjdG9yTWl4aW4pOgogICAgICAgICAgICAgICAgIHJlc3VsdHMu
YXBwZW5kKG9zLnBhdGguam9pbihyZWxhdGl2ZV9yb290X3BhdGgsIG5hbWUpKQogICAgICAgICBy
ZXR1cm4gcmVzdWx0cwogCisgICAgZGVmIF9zZW5kX2VtYWlsKHNlbGYsIHRvX2VtYWlscywgc3Vi
amVjdCwgdGV4dCwgcmVmZXJlbmNlPScnKToKKyAgICAgICAgaWYgbm90IHRvX2VtYWlsczoKKyAg
ICAgICAgICAgIHNlbGYuX2VtYWlsc19saXN0LmFwcGVuZCgnRXJyb3I6IHNraXBwaW5nIGVtYWls
IHNpbmNlIG5vIHJlY2lwaWVudCBpcyBzcGVjaWZpZWQnKQorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisgICAgICAgIGlmIG5vdCBzdWJqZWN0IG9yIG5vdCB0ZXh0OgorICAgICAgICAgICAgc2Vs
Zi5fZW1haWxzX2xpc3QuYXBwZW5kKCdFcnJvcjogc2tpcHBpbmcgZW1haWwgc2luY2Ugbm8gc3Vi
amVjdCBvciB0ZXh0IGlzIHNwZWNpZmllZCcpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgc2VsZi5fZW1haWxzX2xpc3QuYXBwZW5kKCdTdWJqZWN0OiB7fVxuVG86IHt9XG5SZWZl
cmVuY2U6IHt9XG5Cb2R5OlxuXG57fScuZm9ybWF0KHN1YmplY3QsIHRvX2VtYWlscywgcmVmZXJl
bmNlLCB0ZXh0KSkKKyAgICAgICAgcmV0dXJuIFRydWUKKwogICAgIGRlZiBydW5TdGVwKHNlbGYp
OgogICAgICAgICBkZWYgY2hlY2socmVzdWx0KToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5fZXhwZWN0ZWRfbG9jYWxfY29tbWFuZHMsIFtdLCAnYXNzZXJ0IGFsbCBleHBlY3Rl
ZCBsb2NhbCBjb21tYW5kcyB3ZXJlIHJ1bicpCkBAIC0xMjA1LDcgKzEyMTksNiBAQCBjbGFzcyBU
ZXN0Q29tcGlsZVdlYktpdFdpdGhvdXRDaGFuZ2UoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVu
aXR0ZXN0LlRlc3RDYXNlKQogY2xhc3MgVGVzdEFuYWx5emVDb21waWxlV2ViS2l0UmVzdWx0cyhC
dWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRV
cChzZWxmKToKICAgICAgICAgc2VsZi5sb25nTWVzc2FnZSA9IFRydWUKLSAgICAgICAgQW5hbHl6
ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLnNlbmRfZW1haWxfZm9yX2J1aWxkX2ZhaWx1cmUgPSBsYW1i
ZGEgc2VsZjogTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5zZXRVcEJ1aWxkU3RlcCgpCiAKICAg
ICBkZWYgdGVhckRvd24oc2VsZik6CkBAIC0xNTk0LDggKzE2MDcsNiBAQCBjbGFzcyBUZXN0QW5h
bHl6ZUpTQ1Rlc3RzUmVzdWx0cyhCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdqc2NfY2xlYW5fdHJlZV9zdHJlc3Nf
dGVzdF9mYWlsdXJlcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdqc2NfY2xlYW5f
dHJlZV9iaW5hcnlfZmFpbHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnanNj
X2NsZWFuX3RyZWVfZmxha3lfYW5kX3Bhc3NlZCcsIHt9KQotICAgICAgICBBbmFseXplSlNDVGVz
dHNSZXN1bHRzLnNlbmRfZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmUgPSBsYW1iZGEgKmFyZ3M6IE5v
bmUKLSAgICAgICAgQW5hbHl6ZUpTQ1Rlc3RzUmVzdWx0cy5zZW5kX2VtYWlsX2Zvcl9wcmVfZXhp
c3RpbmdfZmFpbHVyZSA9IGxhbWJkYSAqYXJnczogTm9uZQogCiAgICAgZGVmIHRlc3Rfc2luZ2xl
X25ld19zdHJlc3NfZmFpbHVyZShzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkK
QEAgLTE5MjgsNyArMTkzOSw2IEBAIGNsYXNzIFRlc3RSZVJ1bldlYktpdFRlc3RzKFRlc3RSdW5X
ZWJLaXRUZXN0cyk6CiAgICAgICAgIHNlbGYuc2V0dXBTdGVwKFJlUnVuV2ViS2l0VGVzdHMoKSkK
ICAgICAgICAgc2VsZi5wcm9wZXJ0eV9leGNlZWRfZmFpbHVyZV9saW1pdCA9ICdzZWNvbmRfcmVz
dWx0c19leGNlZWRfZmFpbHVyZV9saW1pdCcKICAgICAgICAgc2VsZi5wcm9wZXJ0eV9mYWlsdXJl
cyA9ICdzZWNvbmRfcnVuX2ZhaWx1cmVzJwotICAgICAgICBSZVJ1bldlYktpdFRlc3RzLnNlbmRf
ZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmUgPSBsYW1iZGEgKmFyZ3M6IE5vbmUKIAogICAgIGRlZiB0
ZXN0X2ZsYWt5X2ZhaWx1cmVzX2luX2ZpcnN0X3J1bihzZWxmKToKICAgICAgICAgc2VsZi5jb25m
aWd1cmVTdGVwKCkKQEAgLTIzMzEsOCArMjM0MSw2IEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0
VGVzdHNSZXN1bHRzKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHJldHVybiBzZWxmLnRlYXJEb3duQnVpbGRTdGVwKCkKIAogICAgIGRlZiBjb25m
aWd1cmVTdGVwKHNlbGYpOgotICAgICAgICBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzLnNlbmRf
ZW1haWxfZm9yX2ZsYWt5X2ZhaWx1cmUgPSBsYW1iZGEgKmFyZ3M6IE5vbmUKLSAgICAgICAgQW5h
bHl6ZUxheW91dFRlc3RzUmVzdWx0cy5zZW5kX2VtYWlsX2Zvcl9wcmVfZXhpc3RpbmdfZmFpbHVy
ZSA9IGxhbWJkYSAqYXJnczogTm9uZQogICAgICAgICBzZWxmLnNldHVwU3RlcChBbmFseXplTGF5
b3V0VGVzdHNSZXN1bHRzKCkpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3Jlc3Vs
dHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnLCBGYWxzZSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnc2Vjb25kX3Jlc3VsdHNfZXhjZWVkX2ZhaWx1cmVfbGltaXQnLCBGYWxzZSkKQEAgLTI2ODAs
MTQgKzI2ODgsMTggQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVl
KEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAgcmV0dXJuIHNl
bGYudGVhckRvd25CdWlsZFN0ZXAoKQogCiAgICAgZGVmIGNvbmZpZ3VyZVN0ZXAoc2VsZik6Ci0g
ICAgICAgIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMuc2VuZF9lbWFpbF9mb3JfZmxha3lfZmFp
bHVyZSA9IGxhbWJkYSAqYXJnczogTm9uZQotICAgICAgICBBbmFseXplTGF5b3V0VGVzdHNSZXN1
bHRzLnNlbmRfZW1haWxfZm9yX3ByZV9leGlzdGluZ19mYWlsdXJlID0gbGFtYmRhICphcmdzOiBO
b25lCisKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAoQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1Jl
ZFRyZWUoKSkKIAotICAgIGRlZiB0ZXN0X2ZhaWx1cmVfaW50cm9kdWNlZF9ieV9wYXRjaF9jbGVh
bl90cmVlX2dyZWVuKHNlbGYpOgotICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQorICAgIGRl
ZiBjb25maWd1cmVDb21tb25Qcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29u
ZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hf
YXV0aG9yJywgJ3Rlc3RAaWdhbGlhLmNvbScpCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3Bh
dGNoX2lkJywgJzQwNDA0NCcpCisKKyAgICBkZWYgdGVzdF9mYWlsdXJlX2ludHJvZHVjZWRfYnlf
cGF0Y2hfY2xlYW5fdHJlZV9ncmVlbihzZWxmKToKKyAgICAgICAgc2VsZi5jb25maWd1cmVTdGVw
KCkKKyAgICAgICAgc2VsZi5jb25maWd1cmVDb21tb25Qcm9wZXJ0aWVzKCkKICAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwi
LCAidGVzdC9mYWlsdXJlMi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0
X3J1bl9mbGFraWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIl0pCkBAIC0yNjk1
LDEyICsyNzA3LDE5IEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJl
ZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lf
ZmFpbHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9y
ZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9mbGFr
eS5odG1sIl0pCiAgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwgc3Rh
dGVfc3RyaW5nPSdGb3VuZCAxIG5ldyB0ZXN0IGZhaWx1cmU6IHRlc3QvZmFpbHVyZTEuaHRtbCAo
ZmFpbHVyZSknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc3RlcF9y
ZXN1bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxm
Ll9lbWFpbHNfbGlzdCksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogSW5m
byBhYm91dCA0IGZsYWt5IGZhaWx1cmVzJyBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAg
ICAgZm9yIGZsYWt5X3Rlc3QgaW4gWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0
bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwi
XToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnVGVzdCBuYW1lOiB7fScuZm9ybWF0KGZs
YWt5X3Rlc3QpIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKCdUZXN0IG5hbWU6IHRlc3QvZmFpbHVyZTEuaHRtbCcgaW4gc2VsZi5fZW1haWxzX2xpc3Rb
MF0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogTGF5b3V0IHRlc3QgZmFpbHVy
ZSBmb3IgUGF0Y2gnIGluIHNlbGYuX2VtYWlsc19saXN0WzFdKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoJ3Rlc3QvZmFpbHVyZTEuaHRtbCcgaW4gc2VsZi5fZW1haWxzX2xpc3RbMV0pCisgICAg
ICAgIHJldHVybiBzdGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3RfZmFpbHVyZV9pbnRyb2R1Y2Vk
X2J5X3BhdGNoX2NsZWFuX3RyZWVfcmVkKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0
ZXAoKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKLSAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAg
ICAgc2VsZi5jb25maWd1cmVDb21tb25Qcm9wZXJ0aWVzKCkKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9m
YWlsdXJlMi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3By
ZS1leGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0
X3J1bl9mbGFraWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvcHJl
LWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0p
CkBAIC0yNzA4LDEwICsyNzI3LDIxIEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1
bHRzUmVkVHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNf
bm9uZmxha3lfZmFpbHVyZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCJdKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAg
ICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J0ZvdW5k
IDEgbmV3IHRlc3QgZmFpbHVyZTogdGVzdC9mYWlsdXJlMS5odG1sIChmYWlsdXJlKScpCi0gICAg
ICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVu
U3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwg
MykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdTdWJqZWN0OiBJbmZvIGFib3V0IDQgZmxha3kg
ZmFpbHVyZXMnIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBmb3IgZmxha3lfdGVz
dCBpbiBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCIsICJ0ZXN0L2ZhaWx1
cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdOgorICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCdUZXN0IG5hbWU6IHt9Jy5mb3JtYXQoZmxha3lfdGVzdCkgaW4gc2Vs
Zi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ1Rlc3QgbmFtZTog
cHJlZXhpc3RpbmctdGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sJyBpbiBzZWxmLl9lbWFp
bHNfbGlzdFswXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdTdWJqZWN0OiBJbmZvIGFib3V0
IDEgcHJlLWV4aXN0ZW50IGZhaWx1cmUgYXQnIGluIHNlbGYuX2VtYWlsc19saXN0WzFdKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUoJ3ByZWV4aXN0aW5nLXRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1
cmUuaHRtbCcgaW4gc2VsZi5fZW1haWxzX2xpc3RbMV0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZSgnU3ViamVjdDogTGF5b3V0IHRlc3QgZmFpbHVyZSBmb3IgUGF0Y2gnIGluIHNlbGYuX2VtYWls
c19saXN0WzJdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3Rlc3QvZmFpbHVyZTEuaHRtbCcg
aW4gc2VsZi5fZW1haWxzX2xpc3RbMl0pCisgICAgICAgIHJldHVybiBzdGVwX3Jlc3VsdAogCiAg
ICAgZGVmIHRlc3RfcHJlX2V4aXN0ZW50X2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICBzZWxmLmNv
bmZpZ3VyZVN0ZXAoKQorICAgICAgICBzZWxmLmNvbmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvcHJl
LWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0p
CiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0ZXN0L3By
ZS1leGlzdGVudC9mbGFreTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTMuaHRtbCJd
KQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0
bWwiXSkKQEAgLTI3MTksMTAgKzI3NDksMTkgQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0
c1Jlc3VsdHNSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVz
dWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1s
Il0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1
cmVzX3Jlc3VsdHNfZmxha2llcycsIFtdKQogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVz
dWx0PVNVQ0NFU1MsIHN0YXRlX3N0cmluZz0nUGFzc2VkIGxheW91dCB0ZXN0cycpCi0gICAgICAg
IHJldHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3Rl
cCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMikK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdTdWJqZWN0OiBJbmZvIGFib3V0IDMgZmxha3kgZmFp
bHVyZXMnIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBmb3IgZmxha3lfdGVzdCBp
biBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxh
a3kyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kzLmh0bWwiXToKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgnVGVzdCBuYW1lOiB7fScuZm9ybWF0KGZsYWt5X3Rlc3QpIGluIHNl
bGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdUZXN0IG5hbWU6
IHByZWV4aXN0aW5nLXRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCcgaW4gc2VsZi5fZW1h
aWxzX2xpc3RbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogSW5mbyBhYm91
dCAxIHByZS1leGlzdGVudCBmYWlsdXJlIGF0JyBpbiBzZWxmLl9lbWFpbHNfbGlzdFsxXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKCdwcmVleGlzdGluZy10ZXN0L3ByZS1leGlzdGVudC9mYWls
dXJlLmh0bWwnIGluIHNlbGYuX2VtYWlsc19saXN0WzFdKQorICAgICAgICByZXR1cm4gc3RlcF9y
ZXN1bHQKIAogICAgIGRlZiB0ZXN0X3ByZV9leGlzdGVudF9mbGFraWVzKHNlbGYpOgogICAgICAg
ICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQorICAgICAgICBzZWxmLmNvbmZpZ3VyZUNvbW1vblByb3Bl
cnRpZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBb
InRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5MS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTIuaHRtbCIs
ICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTMuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVz
JywgW10pCkBAIC0yNzMxLDEyICsyNzcwLDE2IEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVz
dHNSZXN1bHRzUmVkVHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAg
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jl
c3VsdHNfZmxha2llcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3Bh
dGNoX3JlcGVhdF9mYWlsdXJlc19yZXRjb2RlJywgU1VDQ0VTUykKICAgICAgICAgc2VsZi5leHBl
Y3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J1Bhc3NlZCBsYXlvdXQgdGVz
dHMnKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc3RlcF9yZXN1bHQg
PSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFp
bHNfbGlzdCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnU3ViamVjdDogSW5mbyBhYm91
dCAzIGZsYWt5IGZhaWx1cmVzJyBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgZm9y
IGZsYWt5X3Rlc3QgaW4gWyJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTEuaHRtbCIsICJ0ZXN0L3By
ZS1leGlzdGVudC9mbGFreTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreTMuaHRtbCJd
OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdUZXN0IG5hbWU6IHt9Jy5mb3JtYXQoZmxh
a3lfdGVzdCkgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHJldHVybiBzdGVwX3Jl
c3VsdAogCiAgICAgZGVmIHRlc3RfZmlyc3Rfc3RlcF9naXZlc191bmV4cGVjdGVkX2ZhaWx1cmVf
YW5kX2NsZWFuX3RyZWVfcGFzc19sYXN0X3RyeShzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1
cmVTdGVwKCkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycp
Ci0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisg
ICAgICAgIHNlbGYuY29uZmlndXJlQ29tbW9uUHJvcGVydGllcygpCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdy
ZXRyeV9jb3VudCcsIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlLk1BWF9SRVRSWSkK
QEAgLTI3NDQsMzggKzI3ODcsNDUgQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3Vs
dHNSZWRUcmVlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fZmxha2llcycsIFsndGVzdC9wcmUtZXhp
c3RlbnQvZmxha3kuaHRtbCddKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjbGVhbl90cmVl
X3J1bl9zdGF0dXMnLCBXQVJOSU5HUykKICAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3Vs
dD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J0ZvdW5kIHVuZXhwZWN0ZWQgZmFpbHVyZSB3aXRoIHBh
dGNoIChmYWlsdXJlKScpCi0gICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBz
dGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVu
KHNlbGYuX2VtYWlsc19saXN0KSwgMCkKKyAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0CiAKICAg
ICBkZWYgdGVzdF9maXJzdF9zdGVwX2dpdmVzX3VuZXhwZWN0ZWRfZmFpbHVyZV9hbmRfY2xlYW5f
dHJlZV91bmV4cGVjdGVkX2ZhaWx1cmVfbGFzdF90cnkoc2VsZik6CiAgICAgICAgIHNlbGYuY29u
ZmlndXJlU3RlcCgpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdn
dGsnKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjb25maWd1cmF0aW9uJywgJ3JlbGVhc2Un
KQorICAgICAgICBzZWxmLmNvbmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgncmV0cnlfY291bnQnLCBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzUmVkVHJlZS5NQVhfUkVU
UlkpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NsZWFuX3RyZWVfcnVuX2ZhaWx1cmVzJywg
W10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NsZWFuX3RyZWVfcnVuX2ZsYWtpZXMnLCBb
XSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fc3RhdHVzJywgRkFJ
TFVSRSkKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1XQVJOSU5HUywgc3RhdGVf
c3RyaW5nPSdUaGUgbGF5b3V0LXRlc3QgcnVuIHdpdGggcGF0Y2ggZ2VuZXJhdGVkIG5vIGxpc3Qg
b2YgcmVzdWx0cyBhbmQgZXhpdGVkIHdpdGggZXJyb3IsIGFuZCB0aGUgY2xlYW5fdHJlZSB3aXRo
b3V0IHBhdGNoIHJ1biBkaWQgdGhlIHNhbWUgdGhpbmcuXG5SZWFjaGVkIHRoZSBtYXhpbXVtIG51
bWJlciBvZiByZXRyaWVzICgzKS4gVW5hYmxlIHRvIGRldGVybWluZSBpZiBwYXRjaCBpcyBiYWQg
b3IgdGhlcmUgaXMgYSBwcmUtZXhpc3RlbnQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWUuICh3YXJuaW5n
cyknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgZXhwZWN0ZWRfaW5m
cmFzdHJ1Y3R1cmVfZXJyb3IgPSAnVGhlIGxheW91dC10ZXN0IHJ1biB3aXRoIHBhdGNoIGdlbmVy
YXRlZCBubyBsaXN0IG9mIHJlc3VsdHMgYW5kIGV4aXRlZCB3aXRoIGVycm9yLCBhbmQgdGhlIGNs
ZWFuX3RyZWUgd2l0aG91dCBwYXRjaCBydW4gZGlkIHRoZSBzYW1lIHRoaW5nLicKKyAgICAgICAg
c2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1XQVJOSU5HUywgc3RhdGVfc3RyaW5nPSd7fVxuUmVh
Y2hlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyAoMykuIFVuYWJsZSB0byBkZXRlcm1p
bmUgaWYgcGF0Y2ggaXMgYmFkIG9yIHRoZXJlIGlzIGEgcHJlLWV4aXN0ZW50IGluZnJhc3RydWN0
dXJlIGlzc3VlLiAod2FybmluZ3MpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJy
b3IpKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0
WzBdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X2ZpcnN0X3N0
ZXBfZ2l2ZXNfdW5leHBlY3RlZF9mYWlsdXJlX3JldHJ5KHNlbGYpOgogICAgICAgICBzZWxmLmNv
bmZpZ3VyZVN0ZXAoKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAn
Z3RrJykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNl
JykKKyAgICAgICAgc2VsZi5jb25maWd1cmVDb21tb25Qcm9wZXJ0aWVzKCkKICAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2NsZWFuX3RyZWVfcnVuX2ZhaWx1cmVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3JldHJ5X2NvdW50JywgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0c1JlZFRyZWUuTUFYX1JF
VFJZIC0gMSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY2xlYW5fdHJlZV9ydW5fZmxha2ll
cycsIFsndGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCddKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdjbGVhbl90cmVlX3J1bl9zdGF0dXMnLCBXQVJOSU5HUykKLSAgICAgICAgc2VsZi5l
eHBlY3RPdXRjb21lKHJlc3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJh
c3RydWN0dXJlIGlzc3VlOiBUaGUgbGF5b3V0LXRlc3QgcnVuIHdpdGggcGF0Y2ggZ2VuZXJhdGVk
IG5vIGxpc3Qgb2YgcmVzdWx0cyBhbmQgZXhpdGVkIHdpdGggZXJyb3IsIHJldHJ5aW5nIHdpdGgg
dGhlIGhvcGUgaXQgd2FzIGEgcmFuZG9tIGluZnJhc3RydWN0dXJlIGVycm9yLlxuUmV0cnlpbmcg
YnVpbGQgW3JldHJ5IGNvdW50IGlzIDIgb2YgM10gKHJldHJ5KScpCi0gICAgICAgIHJldHVybiBz
ZWxmLnJ1blN0ZXAoKQorICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdU
aGUgbGF5b3V0LXRlc3QgcnVuIHdpdGggcGF0Y2ggZ2VuZXJhdGVkIG5vIGxpc3Qgb2YgcmVzdWx0
cyBhbmQgZXhpdGVkIHdpdGggZXJyb3IsIHJldHJ5aW5nIHdpdGggdGhlIGhvcGUgaXQgd2FzIGEg
cmFuZG9tIGluZnJhc3RydWN0dXJlIGVycm9yLicKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21l
KHJlc3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlz
c3VlOiB7fVxuUmV0cnlpbmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDIgb2YgM10gKHJldHJ5KScu
Zm9ybWF0KGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yKSkKKyAgICAgICAgc3RlcF9yZXN1
bHQgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9l
bWFpbHNfbGlzdCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbmZyYXN0
cnVjdHVyZV9lcnJvciBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgcmV0dXJuIHN0
ZXBfcmVzdWx0CiAKICAgICBkZWYgdGVzdF9zdGVwX3JldHJ5X3dpdGhfcGF0Y2hfZXhpdHNfZWFy
bHlfZXJyb3Ioc2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJlU3RlcCgpCi0gICAgICAgIHNl
bGYuc2V0UHJvcGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdndGsnKQotICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdjb25maWd1cmF0aW9uJywgJ3JlbGVhc2UnKQorICAgICAgICBzZWxmLmNvbmZpZ3Vy
ZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5f
ZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0L2ZhaWx1cmUyLmh0bWwiLCAi
dGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5
Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZsYWtpZXMnLCBb
InRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJdKQogICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX25vbmZsYWt5X2Zh
aWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVy
ZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKQEAgLTI3ODMsMTMgKzI4
MzMsMTYgQEAgY2xhc3MgVGVzdEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHNSZWRUcmVlKEJ1aWxk
U3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXMKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJl
cycsIFsidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycs
IFsidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1bHRzX2V4Y2VlZF9mYWlsdXJlX2xp
bWl0JywgVHJ1ZSkKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1SRVRSWSwgc3Rh
dGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3VlOiBPbmUgb2YgdGhlIHN0
ZXBzIGZvciByZXRyeWluZyB0aGUgZmFpbGVkIHRlc3RzIGhhcyBleGl0ZWQgZWFybHksIGJ1dCB0
aGlzIHN0ZXBzIHNob3VsZCBydW4gd2l0aG91dCAiLS1leGl0LWFmdGVyLW4tZmFpbHVyZXMiIHN3
aXRjaCwgc28gdGhleSBzaG91bGQgbm90IGV4aXQgZWFybHkuXG5SZXRyeWluZyBidWlsZCBbcmV0
cnkgY291bnQgaXMgMCBvZiAzXSAocmV0cnkpJykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3Rl
cCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ09uZSBvZiB0aGUg
c3RlcHMgZm9yIHJldHJ5aW5nIHRoZSBmYWlsZWQgdGVzdHMgaGFzIGV4aXRlZCBlYXJseSwgYnV0
IHRoaXMgc3RlcHMgc2hvdWxkIHJ1biB3aXRob3V0ICItLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcyIg
c3dpdGNoLCBzbyB0aGV5IHNob3VsZCBub3QgZXhpdCBlYXJseS4nCisgICAgICAgIHNlbGYuZXhw
ZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0
cnVjdHVyZSBpc3N1ZToge31cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAwIG9mIDNd
IChyZXRyeSknLmZvcm1hdChleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvcikpCisgICAgICAg
IHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0
ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAg
IHJldHVybiBzdGVwX3Jlc3VsdAogCiAgICAgZGVmIHRlc3Rfc3RlcF9yZXRyeV93aXRob3V0X3Bh
dGNoX2V4aXRzX2Vhcmx5X2Vycm9yKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAo
KQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKLSAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAgICAg
c2VsZi5jb25maWd1cmVDb21tb25Qcm9wZXJ0aWVzKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnZmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWls
dXJlMi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1l
eGlzdGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1
bl9mbGFraWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkKICAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0
c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvcHJlLWV4
aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1sIl0pCkBA
IC0yNzk3LDM3ICsyODUwLDQ5IEBAIGNsYXNzIFRlc3RBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRz
UmVkVHJlZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzCiAgICAgICAgIHNl
bGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfbm9u
Zmxha3lfZmFpbHVyZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCJdKQogICAg
ICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXN1
bHRzX2ZsYWtpZXMnLCBbInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19l
eGNlZWRfZmFpbHVyZV9saW1pdCcsIFRydWUpCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShy
ZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1
ZTogT25lIG9mIHRoZSBzdGVwcyBmb3IgcmV0cnlpbmcgdGhlIGZhaWxlZCB0ZXN0cyBoYXMgZXhp
dGVkIGVhcmx5LCBidXQgdGhpcyBzdGVwcyBzaG91bGQgcnVuIHdpdGhvdXQgIi0tZXhpdC1hZnRl
ci1uLWZhaWx1cmVzIiBzd2l0Y2gsIHNvIHRoZXkgc2hvdWxkIG5vdCBleGl0IGVhcmx5LlxuUmV0
cnlpbmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDAgb2YgM10gKHJldHJ5KScpCi0gICAgICAgIHJl
dHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJv
ciA9ICdPbmUgb2YgdGhlIHN0ZXBzIGZvciByZXRyeWluZyB0aGUgZmFpbGVkIHRlc3RzIGhhcyBl
eGl0ZWQgZWFybHksIGJ1dCB0aGlzIHN0ZXBzIHNob3VsZCBydW4gd2l0aG91dCAiLS1leGl0LWFm
dGVyLW4tZmFpbHVyZXMiIHN3aXRjaCwgc28gdGhleSBzaG91bGQgbm90IGV4aXQgZWFybHkuJwor
ICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1Vu
ZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkg
Y291bnQgaXMgMCBvZiAzXSAocmV0cnkpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVf
ZXJyb3IpKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19s
aXN0WzBdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBf
cmV0cnlfd2l0aF9wYXRjaF90aW1lb3V0cyhzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1cmVT
dGVwKCkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycpCi0g
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisgICAg
ICAgIHNlbGYuY29uZmlndXJlQ29tbW9uUHJvcGVydGllcygpCiAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3Qv
ZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9w
cmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJz
dF9ydW5fZmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0p
CiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Rp
bWVkb3V0JywgVHJ1ZSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9y
ZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9wcmUtZXhp
c3RlbnQvZmFpbHVyZS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhvdXRf
cGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFsidGVzdC9wcmUtZXhpc3Rl
bnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PUZBSUxV
UkUsIHN0YXRlX3N0cmluZz0nRm91bmQgMiBuZXcgdGVzdCBmYWlsdXJlczogdGVzdC9mYWlsdXJl
MS5odG1sLCB0ZXN0L2ZhaWx1cmUyLmh0bWwgKGZhaWx1cmUpJykKLSAgICAgICAgcmV0dXJuIHNl
bGYucnVuU3RlcCgpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxzX2xpc3QpLCAyKQorICAgICAgICBl
eHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJl
cGVhdC1mYWlsdXJlcy13aXRoLXBhdGNoIiByZWFjaGVkIHRoZSB0aW1lb3V0IGJ1dCB0aGUgc3Rl
cCAibGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LXBhdGNoIiBlbmRlZC4gTm90
IHRyeWluZyB0byByZXBlYXQgdGhpcy4gUmVwb3J0aW5nIDIgZmFpbHVyZXMgZnJvbSB0aGUgZmly
c3QgcnVuLicKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJl
X2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
J1N1YmplY3Q6IExheW91dCB0ZXN0IGZhaWx1cmUgZm9yIFBhdGNoJyBpbiBzZWxmLl9lbWFpbHNf
bGlzdFsxXSkKKyAgICAgICAgZm9yIGZhaWxlZF90ZXN0IGluIFsndGVzdC9mYWlsdXJlMS5odG1s
JywgJ3Rlc3QvZmFpbHVyZTIuaHRtbCddOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZh
aWxlZF90ZXN0IGluIHNlbGYuX2VtYWlsc19saXN0WzFdKQorICAgICAgICByZXR1cm4gc3RlcF9y
ZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9wYXRjaF91bmV4cGVjdGVkX2Vy
cm9yKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQotICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAgICAgc2VsZi5jb25maWd1cmVDb21t
b25Qcm9wZXJ0aWVzKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmlyc3RfcnVuX2ZhaWx1
cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWlsdXJlMi5odG1sIiwgInRlc3Qv
cHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mbGFreS5odG1s
Il0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mbGFraWVzJywgWyJ0ZXN0
L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19ub25mbGFreV9mYWlsdXJl
cycsIFtdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWls
dXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0
aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmV0Y29kZScsIEZBSUxVUkUpCi0gICAgICAgIHNlbGYu
ZXhwZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZy
YXN0cnVjdHVyZSBpc3N1ZTogVGhlIHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMi
IGZhaWxlZCB0byBnZW5lcmF0ZSBhbnkgbGlzdCBvZiBmYWlsdXJlcyBvciBmbGFraWVzIGFuZCBy
ZXR1cm5lZCBhbiBlcnJvciBjb2RlLlxuUmV0cnlpbmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDAg
b2YgM10gKHJldHJ5KScpCi0gICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBl
eHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJl
cGVhdC1mYWlsdXJlcyIgZmFpbGVkIHRvIGdlbmVyYXRlIGFueSBsaXN0IG9mIGZhaWx1cmVzIG9y
IGZsYWtpZXMgYW5kIHJldHVybmVkIGFuIGVycm9yIGNvZGUuJworICAgICAgICBzZWxmLmV4cGVj
dE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1
Y3R1cmUgaXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMCBvZiAzXSAo
cmV0cnkpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IpKQorICAgICAgICBz
dGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVu
KHNlbGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVk
X2luZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBy
ZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aG91dF9wYXRj
aF91bmV4cGVjdGVkX2Vycm9yKHNlbGYpOgogICAgICAgICBzZWxmLmNvbmZpZ3VyZVN0ZXAoKQot
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nLCAnZ3RrJykKLSAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnY29uZmlndXJhdGlvbicsICdyZWxlYXNlJykKKyAgICAgICAgc2Vs
Zi5jb25maWd1cmVDb21tb25Qcm9wZXJ0aWVzKCkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
Zmlyc3RfcnVuX2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9mYWlsdXJl
Mi5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZhaWx1cmUuaHRtbCIsICJ0ZXN0L3ByZS1leGlz
dGVudC9mbGFreS5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9m
bGFraWVzJywgWyJ0ZXN0L2ZsYWt5MS5odG1sIiwgInRlc3QvZmxha3kyLmh0bWwiXSkKICAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfcmVzdWx0c19u
b25mbGFreV9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIu
aHRtbCJdKQpAQCAtMjgzNiw1NyArMjkwMSw3MyBAQCBjbGFzcyBUZXN0QW5hbHl6ZUxheW91dFRl
c3RzUmVzdWx0c1JlZFRyZWUoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlcwog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgW10pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3dpdGhvdXRfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3Jlc3VsdHNfZmxha2llcycsIFtdKQogICAg
ICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc19yZXRj
b2RlJywgRkFJTFVSRSkKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1SRVRSWSwg
c3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3VlOiBUaGUgc3RlcCAi
bGF5b3V0LXRlc3RzLXJlcGVhdC1mYWlsdXJlcy13aXRob3V0LXBhdGNoIiBmYWlsZWQgdG8gZ2Vu
ZXJhdGUgYW55IGxpc3Qgb2YgZmFpbHVyZXMgb3IgZmxha2llcyBhbmQgcmV0dXJuZWQgYW4gZXJy
b3IgY29kZS5cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAwIG9mIDNdIChyZXRyeSkn
KQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgZXhwZWN0ZWRfaW5mcmFz
dHJ1Y3R1cmVfZXJyb3IgPSAnVGhlIHN0ZXAgImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMt
d2l0aG91dC1wYXRjaCIgZmFpbGVkIHRvIGdlbmVyYXRlIGFueSBsaXN0IG9mIGZhaWx1cmVzIG9y
IGZsYWtpZXMgYW5kIHJldHVybmVkIGFuIGVycm9yIGNvZGUuJworICAgICAgICBzZWxmLmV4cGVj
dE91dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1
Y3R1cmUgaXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMCBvZiAzXSAo
cmV0cnkpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IpKQorICAgICAgICBz
dGVwX3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVu
KHNlbGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVk
X2luZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICBy
ZXR1cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aG91dF9wYXRj
aF90aW1lb3V0cyhzZWxmKToKICAgICAgICAgc2VsZi5jb25maWd1cmVTdGVwKCkKLSAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0aycpCi0gICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScpCisgICAgICAgIHNlbGYuY29uZmln
dXJlQ29tbW9uUHJvcGVydGllcygpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1
bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIs
ICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxh
a3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycs
IFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5odG1sIl0pCiAgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1cmVzX3RpbWVkb3V0JywgVHJ1ZSkK
ICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNf
dGltZWRvdXQnLCBUcnVlKQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVJFVFJZ
LCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1cmUgaXNzdWU6IFRoZSBzdGVw
ICJsYXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0Y2giIHdhcyBpbnRlcnJ1
bXBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuXG5SZXRyeWluZyBidWlsZCBbcmV0
cnkgY291bnQgaXMgMCBvZiAzXSAocmV0cnkpJykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3Rl
cCgpCisgICAgICAgIGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9yID0gJ1RoZSBzdGVwICJs
YXlvdXQtdGVzdHMtcmVwZWF0LWZhaWx1cmVzLXdpdGhvdXQtcGF0Y2giIHdhcyBpbnRlcnJ1bXBl
ZCBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHRpbWVvdXQuJworICAgICAgICBzZWxmLmV4cGVjdE91
dGNvbWUocmVzdWx0PVJFVFJZLCBzdGF0ZV9zdHJpbmc9J1VuZXhwZWN0ZWQgaW5mcmFzdHJ1Y3R1
cmUgaXNzdWU6IHt9XG5SZXRyeWluZyBidWlsZCBbcmV0cnkgY291bnQgaXMgMCBvZiAzXSAocmV0
cnkpJy5mb3JtYXQoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IpKQorICAgICAgICBzdGVw
X3Jlc3VsdCA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNl
bGYuX2VtYWlsc19saXN0KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2lu
ZnJhc3RydWN0dXJlX2Vycm9yIGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICByZXR1
cm4gc3RlcF9yZXN1bHQKIAogICAgIGRlZiB0ZXN0X3N0ZXBfcmV0cnlfd2l0aF9wYXRjaF90aW1l
b3V0c19hbmRfd2l0aG91dF9wYXRjaF90aW1lb3V0cyhzZWxmKToKICAgICAgICAgc2VsZi5jb25m
aWd1cmVTdGVwKCkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3JtJywgJ2d0
aycpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVsZWFzZScp
CisgICAgICAgIHNlbGYuY29uZmlndXJlQ29tbW9uUHJvcGVydGllcygpCiAgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5odG1sIiwg
InRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAi
dGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCdmaXJzdF9ydW5fZmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2ZsYWt5Mi5o
dG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0X2ZhaWx1
cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0
ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3ku
aHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWls
dXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvZmFpbHVyZTIuaHRtbCJdKQogICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc190aW1lZG91dCcs
IFRydWUpCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9UkVUUlksIHN0YXRlX3N0
cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZTogVGhlIHN0ZXAgImxheW91dC10
ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRjaCIgd2FzIGludGVycnVtcGVkIGJlY2F1
c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC5cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBp
cyAwIG9mIDNdIChyZXRyeSknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKKyAgICAg
ICAgZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IgPSAnVGhlIHN0ZXAgImxheW91dC10ZXN0
cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRjaCIgd2FzIGludGVycnVtcGVkIGJlY2F1c2Ug
aXQgcmVhY2hlZCB0aGUgdGltZW91dC4nCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1
bHQ9UkVUUlksIHN0YXRlX3N0cmluZz0nVW5leHBlY3RlZCBpbmZyYXN0cnVjdHVyZSBpc3N1ZTog
e31cblJldHJ5aW5nIGJ1aWxkIFtyZXRyeSBjb3VudCBpcyAwIG9mIDNdIChyZXRyeSknLmZvcm1h
dChleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvcikpCisgICAgICAgIHN0ZXBfcmVzdWx0ID0g
c2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZW1haWxz
X2xpc3QpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW5mcmFzdHJ1Y3R1
cmVfZXJyb3IgaW4gc2VsZi5fZW1haWxzX2xpc3RbMF0pCisgICAgICAgIHJldHVybiBzdGVwX3Jl
c3VsdAogCiAgICAgZGVmIHRlc3RfcmV0cnlfdGhpcmRfdGltZShzZWxmKToKICAgICAgICAgc2Vs
Zi5jb25maWd1cmVTdGVwKCkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZnVsbFBsYXRmb3Jt
JywgJ2d0aycpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbmZpZ3VyYXRpb24nLCAncmVs
ZWFzZScpCisgICAgICAgIHNlbGYuY29uZmlndXJlQ29tbW9uUHJvcGVydGllcygpCiAgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ2ZpcnN0X3J1bl9mYWlsdXJlcycsIFsidGVzdC9mYWlsdXJlMS5o
dG1sIiwgInRlc3QvZmFpbHVyZTIuaHRtbCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0
bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdmaXJzdF9ydW5fZmxha2llcycsIFsidGVzdC9mbGFreTEuaHRtbCIsICJ0ZXN0L2Zs
YWt5Mi5odG1sIl0pCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3dpdGhfcGF0Y2hfcmVwZWF0
X2ZhaWx1cmVzX3Jlc3VsdHNfbm9uZmxha3lfZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRt
bCIsICJ0ZXN0L3ByZS1leGlzdGVudC9mYWlsdXJlLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQv
Zmxha3kuaHRtbCJdKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVh
dF9mYWlsdXJlc19yZXN1bHRzX2ZsYWtpZXMnLCBbInRlc3QvZmFpbHVyZTIuaHRtbCJdKQogICAg
ICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRob3V0X3BhdGNoX3JlcGVhdF9mYWlsdXJlc190aW1l
ZG91dCcsIFRydWUpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3JldHJ5X2NvdW50JywgMikK
LSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1SRVRSWSwgc3RhdGVfc3RyaW5nPSdV
bmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3VlOiBUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJl
cGVhdC1mYWlsdXJlcy13aXRob3V0LXBhdGNoIiB3YXMgaW50ZXJydW1wZWQgYmVjYXVzZSBpdCBy
ZWFjaGVkIHRoZSB0aW1lb3V0LlxuUmV0cnlpbmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDIgb2Yg
M10gKHJldHJ5KScpCi0gICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBleHBl
Y3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJlcGVh
dC1mYWlsdXJlcy13aXRob3V0LXBhdGNoIiB3YXMgaW50ZXJydW1wZWQgYmVjYXVzZSBpdCByZWFj
aGVkIHRoZSB0aW1lb3V0LicKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1SRVRS
WSwgc3RhdGVfc3RyaW5nPSdVbmV4cGVjdGVkIGluZnJhc3RydWN0dXJlIGlzc3VlOiB7fVxuUmV0
cnlpbmcgYnVpbGQgW3JldHJ5IGNvdW50IGlzIDIgb2YgM10gKHJldHJ5KScuZm9ybWF0KGV4cGVj
dGVkX2luZnJhc3RydWN0dXJlX2Vycm9yKSkKKyAgICAgICAgc3RlcF9yZXN1bHQgPSBzZWxmLnJ1
blN0ZXAoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9lbWFpbHNfbGlzdCks
IDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbmZyYXN0cnVjdHVyZV9lcnJv
ciBpbiBzZWxmLl9lbWFpbHNfbGlzdFswXSkKKyAgICAgICAgcmV0dXJuIHN0ZXBfcmVzdWx0CiAK
ICAgICBkZWYgdGVzdF9yZXRyeV9maW5pc2goc2VsZik6CiAgICAgICAgIHNlbGYuY29uZmlndXJl
U3RlcCgpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2Z1bGxQbGF0Zm9ybScsICdndGsnKQot
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjb25maWd1cmF0aW9uJywgJ3JlbGVhc2UnKQorICAg
ICAgICBzZWxmLmNvbmZpZ3VyZUNvbW1vblByb3BlcnRpZXMoKQogICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdmaXJzdF9ydW5fZmFpbHVyZXMnLCBbInRlc3QvZmFpbHVyZTEuaHRtbCIsICJ0ZXN0
L2ZhaWx1cmUyLmh0bWwiLCAidGVzdC9wcmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3Qv
cHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwiXSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZmly
c3RfcnVuX2ZsYWtpZXMnLCBbInRlc3QvZmxha3kxLmh0bWwiLCAidGVzdC9mbGFreTIuaHRtbCJd
KQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCd3aXRoX3BhdGNoX3JlcGVhdF9mYWlsdXJlc19y
ZXN1bHRzX25vbmZsYWt5X2ZhaWx1cmVzJywgWyJ0ZXN0L2ZhaWx1cmUxLmh0bWwiLCAidGVzdC9w
cmUtZXhpc3RlbnQvZmFpbHVyZS5odG1sIiwgInRlc3QvcHJlLWV4aXN0ZW50L2ZsYWt5Lmh0bWwi
XSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnd2l0aF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNf
cmVzdWx0c19mbGFraWVzJywgWyJ0ZXN0L2ZhaWx1cmUyLmh0bWwiXSkKICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnd2l0aG91dF9wYXRjaF9yZXBlYXRfZmFpbHVyZXNfdGltZWRvdXQnLCBUcnVl
KQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdyZXRyeV9jb3VudCcsIDMpCi0gICAgICAgIHNl
bGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9V0FSTklOR1MsIHN0YXRlX3N0cmluZz0nVGhlIHN0ZXAg
ImxheW91dC10ZXN0cy1yZXBlYXQtZmFpbHVyZXMtd2l0aG91dC1wYXRjaCIgd2FzIGludGVycnVt
cGVkIGJlY2F1c2UgaXQgcmVhY2hlZCB0aGUgdGltZW91dC5cblJlYWNoZWQgdGhlIG1heGltdW0g
bnVtYmVyIG9mIHJldHJpZXMgKDMpLiBVbmFibGUgdG8gZGV0ZXJtaW5lIGlmIHBhdGNoIGlzIGJh
ZCBvciB0aGVyZSBpcyBhIHByZS1leGlzdGVudCBpbmZyYXN0cnVjdHVyZSBpc3N1ZS4gKHdhcm5p
bmdzKScpCi0gICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBleHBlY3RlZF9p
bmZyYXN0cnVjdHVyZV9lcnJvciA9ICdUaGUgc3RlcCAibGF5b3V0LXRlc3RzLXJlcGVhdC1mYWls
dXJlcy13aXRob3V0LXBhdGNoIiB3YXMgaW50ZXJydW1wZWQgYmVjYXVzZSBpdCByZWFjaGVkIHRo
ZSB0aW1lb3V0LicKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1XQVJOSU5HUywg
c3RhdGVfc3RyaW5nPSd7fVxuUmVhY2hlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyAo
MykuIFVuYWJsZSB0byBkZXRlcm1pbmUgaWYgcGF0Y2ggaXMgYmFkIG9yIHRoZXJlIGlzIGEgcHJl
LWV4aXN0ZW50IGluZnJhc3RydWN0dXJlIGlzc3VlLiAod2FybmluZ3MpJy5mb3JtYXQoZXhwZWN0
ZWRfaW5mcmFzdHJ1Y3R1cmVfZXJyb3IpKQorICAgICAgICBzdGVwX3Jlc3VsdCA9IHNlbGYucnVu
U3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2VtYWlsc19saXN0KSwg
MSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2luZnJhc3RydWN0dXJlX2Vycm9y
IGluIHNlbGYuX2VtYWlsc19saXN0WzBdKQorICAgICAgICByZXR1cm4gc3RlcF9yZXN1bHQKIAog
CiBjbGFzcyBUZXN0Q2hlY2tPdXRTcGVjaWZpY1JldmlzaW9uKEJ1aWxkU3RlcE1peGluQWRkaXRp
b25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>