<?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>213263</bug_id>
          
          <creation_ts>2020-06-16 15:02:44 -0700</creation_ts>
          <short_desc>[WebDriver][WPE] Update imported selenium to a version with the WPE WebDriver</short_desc>
          <delta_ts>2020-06-19 06:54:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lauro Moura">lmoura</reporter>
          <assigned_to name="Lauro Moura">lmoura</assigned_to>
          <cc>bburg</cc>
    
    <cc>cgarcia</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1663259</commentid>
    <comment_count>0</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-06-16 15:02:44 -0700</bug_when>
    <thetext>The currently imported version of Selenium (300cd3fa0288d3a88eb4b4c459c54bd02a015118 - March 2018) does not have the WPE WebDriver module (merged in 0d7e57a7079c0a48286e8e741a0122916c08ca16 - Mar 2020).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663333</commentid>
    <comment_count>1</comment_count>
      <attachid>402062</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-06-16 18:11:08 -0700</bug_when>
    <thetext>Created attachment 402062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663398</commentid>
    <comment_count>2</comment_count>
      <attachid>402062</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-17 00:35:17 -0700</bug_when>
    <thetext>Comment on attachment 402062
Patch

Is this really including all the changes? I think the are more changes in tests and other files I don&apos;t see here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664085</commentid>
    <comment_count>3</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-06-18 20:16:07 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #2)
&gt; Comment on attachment 402062 [details]
&gt; Patch
&gt; 
&gt; Is this really including all the changes? I think the are more changes in
&gt; tests and other files I don&apos;t see here

Indeed a bunch of changes were missing. I&apos;m finishing some tests to update the patch. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664086</commentid>
    <comment_count>4</comment_count>
      <attachid>402264</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-06-18 20:18:35 -0700</bug_when>
    <thetext>Created attachment 402264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664334</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-19 06:53:05 -0700</bug_when>
    <thetext>Committed r263264: &lt;https://trac.webkit.org/changeset/263264&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402264.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664335</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-19 06:54:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/64530313&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402062</attachid>
            <date>2020-06-16 18:11:08 -0700</date>
            <delta_ts>2020-06-18 20:18:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213263-20200616221106.patch</filename>
            <type>text/plain</type>
            <size>42771</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTI5CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9D
aGFuZ2VMb2cgYi9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjZjNWRkOWYwODBhYTI4
N2Y4MWI0MmQ5MWI2YjEwZjg4YTRmNzkzNy4uNmVkNTliNGZjNWI1MDgwNzliNDM5MGUxODNmZWQ3
YWM3ZDRjNGY0YSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1dl
YkRyaXZlclRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA2LTE2ICBMYXVy
byBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJEcml2ZXJdW1dQRV0g
VXBkYXRlIGltcG9ydGVkIHNlbGVuaXVtIHRvIGEgdmVyc2lvbiB3aXRoIHRoZSBXUEUgV2ViRHJp
dmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMy
NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY3R1
YWwgV1BFIHN1cHBvcnQgZm9yIFNlbGVuaXVtIHRlc3RzIHdpbGwgY29tZSBpbiBhIHNlcGFyYXRl
IGNvbW1pdC4KKworICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb246IFVw
ZGF0ZWQgcmV2aXNpb24gaGFzaCBhbmQgZm9sZGVycworICAgICAgICB0byBza2lwLgorICAgICAg
ICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vb3B0aW9u
cy5weTogQWRkZWQuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi90aW1lb3V0cy5weTogQWRkZWQuCisgICAgICAgICogaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93aW5kb3cucHk6IEFkZGVkLgorICAg
ICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvcGVy
bWlzc2lvbnMucHk6IEFkZGVkLgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9zYWZhcmkvcmVtb3RlX2Nvbm5lY3Rpb24ucHk6IEFkZGVkLgorICAgICAg
ICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L3JlbGF0
aXZlX2xvY2F0b3IucHk6IEFkZGVkLgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvb3B0aW9ucy5weToKKyAgICAgICAgKE9wdGlvbnMp
OiBVcGRhdGVkIGZyb20gdXBzdHJlYW0KKyAgICAgICAgKE9wdGlvbnMuX19pbml0X18pOiBkaXR0
bworICAgICAgICAoT3B0aW9ucy5iaW5hcnlfbG9jYXRpb24pOiBkaXR0bworICAgICAgICAoT3B0
aW9ucy5vdmVybGF5X3Njcm9sbGJhcnNfZW5hYmxlZCk6IGRpdHRvCisgICAgICAgIChPcHRpb25z
LnBhZ2VfbG9hZF9zdHJhdGVneSk6IGRpdHRvCisgICAgICAgIChPcHRpb25zLnRvX2NhcGFiaWxp
dGllcyk6IGRpdHRvCisgICAgICAgIChPcHRpb25zLmRlZmF1bHRfY2FwYWJpbGl0aWVzKTogZGl0
dG8KKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Vi
a2l0Z3RrL3dlYmRyaXZlci5weToKKyAgICAgICAgKFdlYkRyaXZlci5fX2luaXRfXyk6IERpdHRv
CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdl
YmtpdC9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC9vcHRpb25zLnB5OiBBZGRlZC4KKyAgICAgICAg
KiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd3Bld2Via2l0L3NlcnZp
Y2UucHk6IEFkZGVkLgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci93cGV3ZWJraXQvd2ViZHJpdmVyLnB5OiBBZGRlZC4KKyAgICAgICAgKiBpbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3J1bm5lci9ydW5fcHl0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAg
KiBpbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdGlt
ZW91dF90ZXN0cy5weTogQWRkZWQuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9leHBlY3RlZF9jb25kaXRpb25zX3Rlc3RzLnB5
OiBBZGRlZC4KKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9zdXBwb3J0L3JlbGF0aXZlX2J5X3Rlc3RzLnB5OiBBZGRlZC4KKwogMjAyMC0wNi0x
MiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2ViRHJpdmVy
XVtXUEVdIEFkZCByZW1haW5pbmcgV1BFIGZhaWx1cmVzIHRvIGV4cGVjdGF0aW9ucy4KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb24gYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9pbXBvcnRlci5qc29uCmluZGV4IDE5MmIz
MTM3OGM4ZmE3YmE4NjlkNmI2N2JjZWY4M2RiZTE5MTRlMDYuLmM4Njc5MTU0OTA2NjRkY2Q3NzEx
NWM1Yjc1NzlhYjNkMTQ1MzMwN2YgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2ltcG9ydGVyLmpzb24KKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vaW1wb3J0ZXIuanNvbgpAQCAtMSw2ICsxLDYgQEAKIHsKICAgICAicmVwb3NpdG9yeSI6
ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5pdW1IUS9zZWxlbml1bS5naXQiLAotICAgICJyZXZp
c2lvbiI6ICIzMDBjZDNmYTAyODhkM2E4OGViNGI0YzQ1OWM1NGJkMDJhMDE1MTE4IiwKKyAgICAi
cmV2aXNpb24iOiAiMGQ3ZTU3YTcwNzljMGE0ODI4NmU4ZTc0MWEwMTIyOTE2YzA4Y2ExNiIsCiAg
ICAgInBhdGhzX3RvX2ltcG9ydCI6IFsKICAgICAgICAgImNvbW1vbiIsCiAgICAgICAgICJweS9j
b25mdGVzdC5weSIsCkBAIC0xNCwxOSArMTQsMTYgQEAKICAgICAgICAgImNvbW1vbi9zcmMvd2Vi
L1JlZGlyZWN0LmFzcHgiLAogICAgICAgICAiY29tbW9uL3NyYy93ZWIvUmVkaXJlY3QuYXNweC5j
cyIsCiAgICAgICAgICJjb21tb24vc3JjL3dlYi9TZXR0aW5ncy5TdHlsZUNvcCIsCi0gICAgICAg
ICJweS9zZWxlbml1bS93ZWJkcml2ZXIvYW5kcm9pZCIsCi0gICAgICAgICJweS9zZWxlbml1bS93
ZWJkcml2ZXIvYmxhY2tiZXJyeSIsCiAgICAgICAgICJweS9zZWxlbml1bS93ZWJkcml2ZXIvY2hy
b21lIiwKKyAgICAgICAgInB5L3NlbGVuaXVtL3dlYmRyaXZlci9jaHJvbWl1bSIsCiAgICAgICAg
ICJweS9zZWxlbml1bS93ZWJkcml2ZXIvZWRnZSIsCiAgICAgICAgICJweS9zZWxlbml1bS93ZWJk
cml2ZXIvZmlyZWZveCIsCiAgICAgICAgICJweS9zZWxlbml1bS93ZWJkcml2ZXIvaWUiLAogICAg
ICAgICAicHkvc2VsZW5pdW0vd2ViZHJpdmVyL29wZXJhIiwKLSAgICAgICAgInB5L3NlbGVuaXVt
L3dlYmRyaXZlci9waGFudG9tanMiLAogICAgICAgICAicHkvdGVzdC91bml0IiwKICAgICAgICAg
InB5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZSIsCiAgICAgICAgICJweS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9maXJlZm94IiwKICAgICAgICAgInB5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2llIiwKICAgICAgICAgInB5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21hcmlvbmV0
dGUiLAotICAgICAgICAicHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvcGhhbnRvbWpzIgogICAg
IF0KIH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vb3B0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vb3B0aW9ucy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYWIzZjA4MDNjZjAyNzMxNDE4MmM1NWYwNGQ4ZDc1NGQ5YTE5MGJjCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5CkBAIC0wLDAgKzEsNzUgQEAKKyMgTGljZW5zZWQg
dG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9y
IG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmls
ZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlv
bgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhp
cyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0
aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO
U0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQg
dG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug
aXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVT
IE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
ICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9t
IGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKKworCitjbGFzcyBCYXNlT3B0aW9u
cyhvYmplY3QpOgorICAgICIiIgorICAgIEJhc2UgY2xhc3MgZm9yIGluZGl2aWR1YWwgYnJvd3Nl
ciBvcHRpb25zCisgICAgIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fY2FwcyA9IHNlbGYuZGVmYXVsdF9jYXBh
YmlsaXRpZXMKKyAgICAgICAgc2VsZi5zZXRfY2FwYWJpbGl0eSgicGFnZUxvYWRTdHJhdGVneSIs
ICJub3JtYWwiKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNhcGFiaWxpdGllcyhzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHMKKworICAgIGRlZiBzZXRfY2FwYWJpbGl0eShzZWxm
LCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICIiIiBTZXRzIGEgY2FwYWJpbGl0eSAiIiIKKyAgICAg
ICAgc2VsZi5fY2Fwc1tuYW1lXSA9IHZhbHVlCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgorICAgICAgICByZXR1cm4KKworICAgIEBwcm9wZXJ0
eQorICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBkZWZhdWx0X2NhcGFiaWxpdGllcyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHt9CisKKworY2xhc3MgQXJnT3B0aW9ucyhCYXNlT3B0aW9ucyk6
CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKEFyZ09wdGlvbnMsIHNl
bGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5fYXJndW1lbnRzID0gW10KKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBhcmd1bWVudHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICA6UmV0
dXJuczogQSBsaXN0IG9mIGFyZ3VtZW50cyBuZWVkZWQgZm9yIHRoZSBicm93c2VyCisgICAgICAg
ICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fYXJndW1lbnRzCisKKyAgICBkZWYgYWRkX2FyZ3Vt
ZW50KHNlbGYsIGFyZ3VtZW50KToKKyAgICAgICAgIiIiCisgICAgICAgIEFkZHMgYW4gYXJndW1l
bnQgdG8gdGhlIGxpc3QKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gU2V0cyB0aGUgYXJn
dW1lbnRzCisgICAgICAgICIiIgorICAgICAgICBpZiBhcmd1bWVudDoKKyAgICAgICAgICAgIHNl
bGYuX2FyZ3VtZW50cy5hcHBlbmQoYXJndW1lbnQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdhcmd1bWVudCBjYW4gbm90IGJlIG51bGwnKQorCisgICAgZGVm
IHRvX2NhcGFiaWxpdGllcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHMKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vdGltZW91dHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3RpbWVvdXRzLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlk
NDBiMGYwMzVhZGQyZGY0Y2FhMDVmNjJlZmUzMDNmN2IzMWI5MTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3RpbWVvdXRzLnB5CkBAIC0wLDAgKzEsOTQgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNv
ZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29u
dHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0
cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdh
cmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisj
IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxp
Y2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQor
IyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNl
IGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisj
CisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3Jp
dGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp
YnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJ
VElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhl
IExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv
bnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitjbGFzcyBUaW1lb3V0
cyhvYmplY3QpOgorICAgIAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbXBsaWNpdF93YWl0PU5v
bmUsIHBhZ2VfbG9hZD1Ob25lLCBzY3JpcHQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBD
cmVhdGUgYSBuZXcgVGltZW91dCBvYmplY3QuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAt
IGltcGxpY2l0X3dhaXQgLSBFaXRoZXIgYW4gaW50IG9yIGEgZmxvYXQuIFRoZSBudW1iZXIgcGFz
c2VkIGluIG5lZWRzIHRvIGhvdyBtYW55IAorICAgICAgICAgICAgc2Vjb25kcyB0aGUgZHJpdmVy
IHdpbGwgd2FpdC4KKyAgICAgICAgIC0gcGFnZV9sb2FkIC0gRWl0aGVyIGFuIGludCBvciBhIGZs
b2F0LiBUaGUgbnVtYmVyIHBhc3NlZCBpbiBuZWVkcyB0byBob3cgbWFueSAKKyAgICAgICAgICAg
IHNlY29uZHMgdGhlIGRyaXZlciB3aWxsIHdhaXQuCisgICAgICAgICAtIHNjcmlwdCAtIEVpdGhl
ciBhbiBpbnQgb3IgYSBmbG9hdC4gVGhlIG51bWJlciBwYXNzZWQgaW4gbmVlZHMgdG8gaG93IG1h
bnkgCisgICAgICAgICAgICBzZWNvbmRzIHRoZSBkcml2ZXIgd2lsbCB3YWl0LgorICAgICAgICAi
IiIKKyAgICAgICAgc2VsZi5faW1wbGljaXRfd2FpdCA9IHNlbGYuX2NvbnZlcnQoaW1wbGljaXRf
d2FpdCkKKyAgICAgICAgc2VsZi5fcGFnZV9sb2FkID0gc2VsZi5fY29udmVydChwYWdlX2xvYWQp
CisgICAgICAgIHNlbGYuX3NjcmlwdCA9IHNlbGYuX2NvbnZlcnQoc2NyaXB0KQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGltcGxpY2l0X3dhaXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBSZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgaW1wbGljaXQgd2FpdC4gVGhpcyBkb2VzIG5vdCBy
ZXR1cm4gdGhlIHZhbHVlIG9uIHRoZSByZW1vdGUgZW5kCisgICAgICAgICIiIgorICAgICAgICBy
ZXR1cm4gc2VsZi5faW1wbGljaXRfd2FpdCAvIDEwMDAKKworICAgIEBpbXBsaWNpdF93YWl0LnNl
dHRlcgorICAgIGRlZiBpbXBsaWNpdF93YWl0KHNlbGYsIF9pbXBsaWNpdF93YWl0KToKKyAgICAg
ICAgIiIiCisgICAgICAgIFNldHMgdGhlIHZhbHVlIGZvciB0aGUgaW1wbGljaXQgd2FpdC4gVGhp
cyBkb2VzIG5vdCBzZXQgdGhlIHZhbHVlIG9uIHRoZSByZW1vdGUgZW5kCisgICAgICAgICIiIgor
ICAgICAgICBzZWxmLl9pbXBsaWNpdF93YWl0ID0gc2VsZi5fY29udmVydChfaW1wbGljaXRfd2Fp
dCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYWdlX2xvYWQoc2VsZik6CisgICAgICAgICIi
IgorICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgcGFnZSBsb2FkIHdhaXQuIFRoaXMg
ZG9lcyBub3QgcmV0dXJuIHRoZSB2YWx1ZSBvbiB0aGUgcmVtb3RlIGVuZAorICAgICAgICAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuX3BhZ2VfbG9hZCAvIDEwMDAKKworICAgIEBwYWdlX2xvYWQu
c2V0dGVyCisgICAgZGVmIHBhZ2VfbG9hZChzZWxmLCBfcGFnZV9sb2FkKToKKyAgICAgICAgIiIi
CisgICAgICAgIFNldHMgdGhlIHZhbHVlIGZvciB0aGUgcGFnZSBsb2FkIHdhaXQuIFRoaXMgZG9l
cyBub3Qgc2V0IHRoZSB2YWx1ZSBvbiB0aGUgcmVtb3RlIGVuZAorICAgICAgICAiIiIKKyAgICAg
ICAgc2VsZi5fcGFnZV9sb2FkID0gc2VsZi5fY29udmVydChfcGFnZV9sb2FkKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIHNjcmlwdChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVy
biB0aGUgdmFsdWUgZm9yIHRoZSBzY3JpcHQgd2FpdC4gVGhpcyBkb2VzIG5vdCByZXR1cm4gdGhl
IHZhbHVlIG9uIHRoZSByZW1vdGUgZW5kCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5fc2NyaXB0IC8gMTAwMAorCisgICAgQHNjcmlwdC5zZXR0ZXIKKyAgICBkZWYgc2NyaXB0KHNl
bGYsIF9zY3JpcHQpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyB0aGUgdmFsdWUgZm9yIHRo
ZSBzY3JpcHQgd2FpdC4gVGhpcyBkb2VzIG5vdCBzZXQgdGhlIHZhbHVlIG9uIHRoZSByZW1vdGUg
ZW5kCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9zY3JpcHQgPSBzZWxmLl9jb252ZXJ0KF9z
Y3JpcHQpCisKKyAgICBkZWYgX2NvbnZlcnQoc2VsZiwgdGltZW91dCk6CisgICAgICAgIGlmIHRp
bWVvdXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHRpbWVvdXQsIChp
bnQsIGZsb2F0KSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludChmbG9hdCh0aW1lb3V0KSAq
IDEwMDApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cigiVGltZW91dHMgY2FuIG9ubHkgYmUgYW4gaW50IG9yIGEgZmxvYXQiKQorCisgICAgZGVmIF90
b19qc29uKHNlbGYpOgorICAgICAgICB0aW1lb3V0cyA9IHt9CisgICAgICAgIGlmIHNlbGYuX2lt
cGxpY2l0X3dhaXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0aW1lb3V0c1siaW1wbGljaXQi
XSA9IHNlbGYuX2ltcGxpY2l0X3dhaXQKKyAgICAgICAgaWYgc2VsZi5fcGFnZV9sb2FkIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgdGltZW91dHNbInBhZ2VMb2FkIl0gPSBzZWxmLl9wYWdlX2xv
YWQKKyAgICAgICAgaWYgc2VsZi5fc2NyaXB0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdGlt
ZW91dHNbInNjcmlwdCJdID0gc2VsZi5fc2NyaXB0CisgICAgICAgIAorICAgICAgICByZXR1cm4g
dGltZW91dHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93aW5kb3cucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzNmNTk5OGNkODUzY2EyYWFlNTE1YmJiNDE1NjVmZjlhMjc2ZTcwMQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vd2luZG93LnB5CkBAIC0wLDAgKzEsMjkgQEAKKyMgTGljZW5zZWQg
dG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9y
IG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmls
ZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlv
bgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhp
cyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0
aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO
U0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQg
dG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug
aXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVT
IE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
ICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiIK
K1RoZSBXaW5kb3dUeXBlcyBpbXBsZW1lbnRhdGlvbi4KKyIiIgorCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKKworCitjbGFzcyBXaW5kb3dUeXBlcyhvYmplY3QpOgor
ICAgICIiIlNldCBvZiBzdXBwb3J0ZWQgd2luZG93IHR5cGVzLiIiIgorCisgICAgVEFCID0gJ3Rh
YicKKyAgICBXSU5ET1cgPSAnd2luZG93JwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9wZXJtaXNzaW9ucy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9zYWZhcmkvcGVybWlzc2lvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk1ZjJiYzkzMDk5NGU0ZmJhZDEy
MDgyZWE4MTNlNzY0OTFmYzJlMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvcGVybWlzc2lvbnMu
cHkKQEAgLTAsMCArMSwyOCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBD
b25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhp
cyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vu
c2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVp
cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2Fy
ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAi
QVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
CisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlv
bnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIgorVGhlIFBlcm1pc3Npb24gaW1wbGVtZW50
YXRpb24uCisiIiIKKworCitjbGFzcyBQZXJtaXNzaW9uKG9iamVjdCk6CisgICAgIiIiCisgICAg
U2V0IG9mIHN1cHBvcnRlZCBwZXJtaXNzaW9ucy4KKyAgICAiIiIKKworICAgIEdFVF9VU0VSX01F
RElBID0gImdldFVzZXJNZWRpYSIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvcmVtb3RlX2Nvbm5lY3Rpb24u
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyYzYyM2U2MTBhZmNh
YjVlNzRhNTMxYjc0OTY2MzkwZjZiNDcwZGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90
ZV9jb25uZWN0aW9uLnB5CkBAIC0wLDAgKzEsMzEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3
YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJp
YnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmli
dXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRp
bmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRv
IHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vu
c2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3
aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisj
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
ZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP
TlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMg
YW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndl
YmRyaXZlci5yZW1vdGUucmVtb3RlX2Nvbm5lY3Rpb24gaW1wb3J0IFJlbW90ZUNvbm5lY3Rpb24K
K2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBv
cnQgRGVzaXJlZENhcGFiaWxpdGllcworCisKK2NsYXNzIFNhZmFyaVJlbW90ZUNvbm5lY3Rpb24o
UmVtb3RlQ29ubmVjdGlvbik6CisKKyAgICBicm93c2VyX25hbWUgPSBEZXNpcmVkQ2FwYWJpbGl0
aWVzLlNBRkFSSVsnYnJvd3Nlck5hbWUnXQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90
ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1UcnVlKToKKyAgICAgICAgUmVtb3RlQ29ubmVjdGlv
bi5fX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmUpCisKKyAgICAg
ICAgc2VsZi5fY29tbWFuZHNbIkdFVF9QRVJNSVNTSU9OUyJdID0gKCdHRVQnLCAnL3Nlc3Npb24v
JHNlc3Npb25JZC9hcHBsZS9wZXJtaXNzaW9ucycpCisgICAgICAgIHNlbGYuX2NvbW1hbmRzWyJT
RVRfUEVSTUlTU0lPTlMiXSA9ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2FwcGxlL3Bl
cm1pc3Npb25zJykKKyAgICAgICAgc2VsZi5fY29tbWFuZHNbIkFUVEFDSF9ERUJVR0dFUiJdID0g
KCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBwbGUvYXR0YWNoX2RlYnVnZ2VyJykKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9zdXBwb3J0L3JlbGF0aXZlX2xvY2F0b3IucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9yZWxhdGl2ZV9sb2Nh
dG9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg2MjgzZGIxMTk1MzAyNTU2MzNlOTBmYTZiZDIwMjRlM2NiZDRl
MTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9yZWxhdGl2ZV9sb2NhdG9yLnB5CkBAIC0wLDAg
KzEsNzYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kg
KFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRz
LiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3Ig
YWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4g
IFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJ
UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZp
YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVy
IHRoZSBMaWNlbnNlLgorCitpbXBvcnQganNvbgoraW1wb3J0IHBrZ3V0aWwKKworZnJvbSBzZWxl
bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCisKKworZGVm
IHdpdGhfdGFnX25hbWUodGFnX25hbWUpOgorICAgIGlmIHRhZ19uYW1lIGlzIE5vbmU6CisgICAg
ICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigidGFnX25hbWUgY2FuIG5vdCBiZSBudWxsIikK
KyAgICByZXR1cm4gUmVsYXRpdmVCeSh7ImNzcyBzZWxlY3RvciI6IHRhZ19uYW1lfSkKKworY2xh
c3MgUmVsYXRpdmVCeShvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3QgPSBO
b25lLCBmaWx0ZXJzID0gW10pOgorICAgICAgICBzZWxmLnJvb3QgPSByb290CisgICAgICAgIHNl
bGYuZmlsdGVycyA9IGZpbHRlcnMKKworICAgIGRlZiBhYm92ZShzZWxmLCBlbGVtZW50X29yX2xv
Y2F0b3IgPSBOb25lKToKKyAgICAgICAgaWYgZWxlbWVudF9vcl9sb2NhdG9yIGlzIE5vbmU6Cisg
ICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkVsZW1lbnQgb3IgbG9jYXRvciBt
dXN0IGJlIGdpdmVuIHdoZW4gY2FsbGluZyBhYm92ZSBtZXRob2QiKQorICAgICAgICAKKyAgICAg
ICAgc2VsZi5maWx0ZXJzLmFwcGVuZCh7ImtpbmQiOiAiYWJvdmUiLCAiYXJncyI6IFtlbGVtZW50
X29yX2xvY2F0b3JdfSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBiZWxvdyhzZWxm
LCBlbGVtZW50X29yX2xvY2F0b3IgPSBOb25lKToKKyAgICAgICAgaWYgZWxlbWVudF9vcl9sb2Nh
dG9yIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkVsZW1l
bnQgb3IgbG9jYXRvciBtdXN0IGJlIGdpdmVuIHdoZW4gY2FsbGluZyBhYm92ZSBtZXRob2QiKQor
CisgICAgICAgIHNlbGYuZmlsdGVycy5hcHBlbmQoeyJraW5kIjogImJlbG93IiwgImFyZ3MiOiBb
ZWxlbWVudF9vcl9sb2NhdG9yXX0pCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgdG9f
bGVmdF9vZihzZWxmLCBlbGVtZW50X29yX2xvY2F0b3IgPSBOb25lKToKKyAgICAgICAgaWYgZWxl
bWVudF9vcl9sb2NhdG9yIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNl
cHRpb24oIkVsZW1lbnQgb3IgbG9jYXRvciBtdXN0IGJlIGdpdmVuIHdoZW4gY2FsbGluZyBhYm92
ZSBtZXRob2QiKQorCisgICAgICAgIHNlbGYuZmlsdGVycy5hcHBlbmQoeyJraW5kIjogImxlZnQi
LCAiYXJncyI6IFtlbGVtZW50X29yX2xvY2F0b3JdfSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKwor
ICAgIGRlZiB0b19yaWdodF9vZihzZWxmLCBlbGVtZW50X29yX2xvY2F0b3IpOgorICAgICAgICBp
ZiBlbGVtZW50X29yX2xvY2F0b3IgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZl
ckV4Y2VwdGlvbigiRWxlbWVudCBvciBsb2NhdG9yIG11c3QgYmUgZ2l2ZW4gd2hlbiBjYWxsaW5n
IGFib3ZlIG1ldGhvZCIpCisKKyAgICAgICAgc2VsZi5maWx0ZXJzLmFwcGVuZCh7ImtpbmQiOiAi
cmlnaHQiLCAiYXJncyI6IFtlbGVtZW50X29yX2xvY2F0b3JdfSkKKyAgICAgICAgcmV0dXJuIHNl
bGYKKworICAgIGRlZiBuZWFyKHNlbGYsIGVsZW1lbnRfb3JfbG9jYXRvcl9kaXN0YW5jZSA9IE5v
bmUpOgorICAgICAgICBpZiBlbGVtZW50X29yX2xvY2F0b3IgaXMgTm9uZToKKyAgICAgICAgICAg
IHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiRWxlbWVudCBvciBsb2NhdG9yIG9yIGRpc3RhbmNl
IG11c3QgYmUgZ2l2ZW4gd2hlbiBjYWxsaW5nIGFib3ZlIG1ldGhvZCIpCisKKyAgICAgICAgc2Vs
Zi5maWx0ZXJzLmFwcGVuZCh7ImtpbmQiOiAibmVhciIsICJhcmdzIjogW2VsZW1lbnRfb3JfbG9j
YXRvcl19KQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHRvX2RpY3Qoc2VsZik6Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAncmVsYXRpdmUnOiB7CisgICAgICAgICAgICAg
ICAgJ3Jvb3QnOiBzZWxmLnJvb3QsCisgICAgICAgICAgICAgICAgJ2ZpbHRlcnMnOiBzZWxmLmZp
bHRlcnMKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvb3B0
aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci93ZWJraXRndGsvb3B0aW9ucy5weQppbmRleCA1ZGMyOGNhYjI1NTFmYmQ3YTFlYmQ5
ZjgzZmZiZWRiNTAyMmFhOGI4Li5jYmY1YTYyMGM5MzUyZDg3OWNlMTM1ZmY1NjA2NDAyYmUyZWM3
NDJmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvd2Via2l0Z3RrL29wdGlvbnMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay9vcHRpb25z
LnB5CkBAIC0xNiwyMCArMTYsMjEgQEAKICMgdW5kZXIgdGhlIExpY2Vuc2UuCiAKIGZyb20gc2Vs
ZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJl
ZENhcGFiaWxpdGllcworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLm9wdGlvbnMgaW1w
b3J0IEFyZ09wdGlvbnMKIAogCi1jbGFzcyBPcHRpb25zKG9iamVjdCk6CitjbGFzcyBPcHRpb25z
KEFyZ09wdGlvbnMpOgogICAgIEtFWSA9ICd3ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMnCiAKICAg
ICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKE9wdGlvbnMsIHNlbGYpLl9faW5p
dF9fKCkKICAgICAgICAgc2VsZi5fYmluYXJ5X2xvY2F0aW9uID0gJycKLSAgICAgICAgc2VsZi5f
YXJndW1lbnRzID0gW10KICAgICAgICAgc2VsZi5fb3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJsZWQg
PSBUcnVlCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgYmluYXJ5X2xvY2F0aW9uKHNlbGYpOgog
ICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJucyB0aGUgbG9jYXRpb24gb2YgdGhlIGJyb3dzZXIg
YmluYXJ5IG90aGVyd2lzZSBhbiBlbXB0eSBzdHJpbmcKKyAgICAgICAgOlJldHVybnM6IFRoZSBs
b2NhdGlvbiBvZiB0aGUgYnJvd3NlciBiaW5hcnkgb3RoZXJ3aXNlIGFuIGVtcHR5IHN0cmluZwog
ICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX2JpbmFyeV9sb2NhdGlvbgogCkBAIC00
MywyOSArNDQsMTAgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3QpOgogICAgICAgICAiIiIKICAgICAg
ICAgc2VsZi5fYmluYXJ5X2xvY2F0aW9uID0gdmFsdWUKIAotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBhcmd1bWVudHMoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm5zIGEgbGlzdCBv
ZiBhcmd1bWVudHMgbmVlZGVkIGZvciB0aGUgYnJvd3NlcgotICAgICAgICAiIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuX2FyZ3VtZW50cwotCi0gICAgZGVmIGFkZF9hcmd1bWVudChzZWxmLCBhcmd1
bWVudCk6Ci0gICAgICAgICIiIgotICAgICAgICBBZGRzIGFuIGFyZ3VtZW50IHRvIHRoZSBsaXN0
Ci0KLSAgICAgICAgOkFyZ3M6Ci0gICAgICAgICAtIFNldHMgdGhlIGFyZ3VtZW50cwotICAgICAg
ICAiIiIKLSAgICAgICAgaWYgYXJndW1lbnQ6Ci0gICAgICAgICAgICBzZWxmLl9hcmd1bWVudHMu
YXBwZW5kKGFyZ3VtZW50KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiYXJndW1lbnQgY2FuIG5vdCBiZSBudWxsIikKLQogICAgIEBwcm9wZXJ0eQogICAgIGRl
ZiBvdmVybGF5X3Njcm9sbGJhcnNfZW5hYmxlZChzZWxmKToKICAgICAgICAgIiIiCi0gICAgICAg
IFJldHVybnMgd2hldGhlciBvdmVybGF5IHNjcm9sbGJhcnMgc2hvdWxkIGJlIGVuYWJsZWQKKyAg
ICAgICAgOlJldHVybnM6IFdoZXRoZXIgb3ZlcmxheSBzY3JvbGxiYXJzIHNob3VsZCBiZSBlbmFi
bGVkCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5fb3ZlcmxheV9zY3JvbGxiYXJz
X2VuYWJsZWQKIApAQCAtNzksMTIgKzYxLDIzIEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAg
ICAgICAgIiIiCiAgICAgICAgIHNlbGYuX292ZXJsYXlfc2Nyb2xsYmFyc19lbmFibGVkID0gdmFs
dWUKIAorICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYWdlX2xvYWRfc3RyYXRlZ3koc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLl9jYXBzWyJwYWdlTG9hZFN0cmF0ZWd5Il0KKworICAgIEBwYWdl
X2xvYWRfc3RyYXRlZ3kuc2V0dGVyCisgICAgZGVmIHBhZ2VfbG9hZF9zdHJhdGVneShzZWxmLCBz
dHJhdGVneSk6CisgICAgICAgIGlmIHN0cmF0ZWd5IGluIFsibm9ybWFsIiwgImVhZ2VyIiwgIm5v
bmUiXToKKyAgICAgICAgICAgIHNlbGYuc2V0X2NhcGFiaWxpdHkoInBhZ2VMb2FkU3RyYXRlZ3ki
LCBzdHJhdGVneSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
IlN0cmF0ZWd5IGNhbiBvbmx5IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiBub3JtYWwsIGVhZ2Vy
LCBub25lIikKKwogICAgIGRlZiB0b19jYXBhYmlsaXRpZXMoc2VsZik6CiAgICAgICAgICIiIgog
ICAgICAgICBDcmVhdGVzIGEgY2FwYWJpbGl0aWVzIHdpdGggYWxsIHRoZSBvcHRpb25zIHRoYXQg
aGF2ZSBiZWVuIHNldCBhbmQKICAgICAgICAgcmV0dXJucyBhIGRpY3Rpb25hcnkgd2l0aCBldmVy
eXRoaW5nCiAgICAgICAgICIiIgotICAgICAgICB3ZWJraXRndGsgPSBEZXNpcmVkQ2FwYWJpbGl0
aWVzLldFQktJVEdUSy5jb3B5KCkKKyAgICAgICAgY2FwcyA9IHNlbGYuX2NhcHMKIAogICAgICAg
ICBicm93c2VyX29wdGlvbnMgPSB7fQogICAgICAgICBpZiBzZWxmLmJpbmFyeV9sb2NhdGlvbjoK
QEAgLTkzLDYgKzg2LDEwIEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICAgICAgICAgIGJy
b3dzZXJfb3B0aW9uc1siYXJncyJdID0gc2VsZi5hcmd1bWVudHMKICAgICAgICAgYnJvd3Nlcl9v
cHRpb25zWyJ1c2VPdmVybGF5U2Nyb2xsYmFycyJdID0gc2VsZi5vdmVybGF5X3Njcm9sbGJhcnNf
ZW5hYmxlZAogCi0gICAgICAgIHdlYmtpdGd0a1tPcHRpb25zLktFWV0gPSBicm93c2VyX29wdGlv
bnMKKyAgICAgICAgY2Fwc1tPcHRpb25zLktFWV0gPSBicm93c2VyX29wdGlvbnMKIAotICAgICAg
ICByZXR1cm4gd2Via2l0Z3RrCisgICAgICAgIHJldHVybiBjYXBzCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgZGVmYXVsdF9jYXBhYmlsaXRpZXMoc2VsZik6CisgICAgICAgIHJldHVybiBEZXNp
cmVkQ2FwYWJpbGl0aWVzLldFQktJVEdUSy5jb3B5KCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvd2Vi
ZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3dlYmtpdGd0ay93ZWJkcml2ZXIucHkKaW5kZXggNzAwOWNlMmFkODJlNDc1ZDgw
ODU0YmMzY2IzYWNiYzYxZWI1MjQ4MS4uMjJhMjU3Y2JiMzAwMjMwN2U4YWNkZDA5NjY5ZDM2ZWM0
ZGQyNWUyNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay93ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay93
ZWJkcml2ZXIucHkKQEAgLTIwLDkgKzIwLDkgQEAgdHJ5OgogZXhjZXB0IEltcG9ydEVycm9yOgog
ICAgIGltcG9ydCBodHRwbGliIGFzIGh0dHBfY2xpZW50CiAKLWZyb20gc2VsZW5pdW0ud2ViZHJp
dmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGll
cwogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmRyaXZlciBpbXBvcnQgV2ViRHJp
dmVyIGFzIFJlbW90ZVdlYkRyaXZlcgogZnJvbSAuc2VydmljZSBpbXBvcnQgU2VydmljZQorZnJv
bSAub3B0aW9ucyBpbXBvcnQgT3B0aW9ucwogCiAKIGNsYXNzIFdlYkRyaXZlcihSZW1vdGVXZWJE
cml2ZXIpOgpAQCAtMzEsOCArMzEsOCBAQCBjbGFzcyBXZWJEcml2ZXIoUmVtb3RlV2ViRHJpdmVy
KToKICAgICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGg9Ildl
YktpdFdlYkRyaXZlciIsIHBvcnQ9MCwgb3B0aW9ucz1Ob25lLAotICAgICAgICAgICAgICAgICBk
ZXNpcmVkX2NhcGFiaWxpdGllcz1EZXNpcmVkQ2FwYWJpbGl0aWVzLldFQktJVEdUSywKLSAgICAg
ICAgICAgICAgICAgc2VydmljZV9sb2dfcGF0aD1Ob25lKToKKyAgICAgICAgICAgICAgICAgZGVz
aXJlZF9jYXBhYmlsaXRpZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc2VydmljZV9sb2dfcGF0
aD1Ob25lLCBrZWVwX2FsaXZlPUZhbHNlKToKICAgICAgICAgIiIiCiAgICAgICAgIENyZWF0ZXMg
YSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFdlYktpdEdUSyBkcml2ZXIuCiAKQEAgLTQ0LDEwICs0NCwx
NSBAQCBjbGFzcyBXZWJEcml2ZXIoUmVtb3RlV2ViRHJpdmVyKToKICAgICAgICAgIC0gb3B0aW9u
cyA6IGFuIGluc3RhbmNlIG9mIFdlYktpdEdUS09wdGlvbnMKICAgICAgICAgIC0gZGVzaXJlZF9j
YXBhYmlsaXRpZXMgOiBEaWN0aW9uYXJ5IG9iamVjdCB3aXRoIGRlc2lyZWQgY2FwYWJpbGl0aWVz
CiAgICAgICAgICAtIHNlcnZpY2VfbG9nX3BhdGggOiBQYXRoIHRvIHdyaXRlIHNlcnZpY2Ugc3Rk
b3V0IGFuZCBzdGRlcnIgb3V0cHV0LgorICAgICAgICAgLSBrZWVwX2FsaXZlIDogV2hldGhlciB0
byBjb25maWd1cmUgUmVtb3RlQ29ubmVjdGlvbiB0byB1c2UgSFRUUCBrZWVwLWFsaXZlLgogICAg
ICAgICAiIiIKLSAgICAgICAgaWYgb3B0aW9ucyBpcyBub3QgTm9uZToKKyAgICAgICAgaWYgb3B0
aW9ucyBpcyBOb25lOgorICAgICAgICAgICAgaWYgZGVzaXJlZF9jYXBhYmlsaXRpZXMgaXMgTm9u
ZToKKyAgICAgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcyA9IE9wdGlvbnMoKS50b19j
YXBhYmlsaXRpZXMoKQorICAgICAgICBlbHNlOgogICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0g
b3B0aW9ucy50b19jYXBhYmlsaXRpZXMoKQotICAgICAgICAgICAgY2FwYWJpbGl0aWVzLnVwZGF0
ZShkZXNpcmVkX2NhcGFiaWxpdGllcykKKyAgICAgICAgICAgIGlmIGRlc2lyZWRfY2FwYWJpbGl0
aWVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy51cGRhdGUoZGVz
aXJlZF9jYXBhYmlsaXRpZXMpCiAgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcyA9IGNh
cGFiaWxpdGllcwogCiAgICAgICAgIHNlbGYuc2VydmljZSA9IFNlcnZpY2UoZXhlY3V0YWJsZV9w
YXRoLCBwb3J0PXBvcnQsIGxvZ19wYXRoPXNlcnZpY2VfbG9nX3BhdGgpCkBAIC01Niw3ICs2MSw4
IEBAIGNsYXNzIFdlYkRyaXZlcihSZW1vdGVXZWJEcml2ZXIpOgogICAgICAgICBSZW1vdGVXZWJE
cml2ZXIuX19pbml0X18oCiAgICAgICAgICAgICBzZWxmLAogICAgICAgICAgICAgY29tbWFuZF9l
eGVjdXRvcj1zZWxmLnNlcnZpY2Uuc2VydmljZV91cmwsCi0gICAgICAgICAgICBkZXNpcmVkX2Nh
cGFiaWxpdGllcz1kZXNpcmVkX2NhcGFiaWxpdGllcykKKyAgICAgICAgICAgIGRlc2lyZWRfY2Fw
YWJpbGl0aWVzPWRlc2lyZWRfY2FwYWJpbGl0aWVzLAorICAgICAgICAgICAga2VlcF9hbGl2ZT1r
ZWVwX2FsaXZlKQogICAgICAgICBzZWxmLl9pc19yZW1vdGUgPSBGYWxzZQogCiAgICAgZGVmIHF1
aXQoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvd3Bld2Via2l0L19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC9fX2lu
aXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNWIxZTZmODVhMDllNTk1MGFhYjUzNDlmMjQ2ZTFhY2I5MzBj
MmFlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci93cGV3ZWJraXQvb3B0aW9ucy5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93cGV3ZWJraXQvb3B0aW9u
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMDBlYjc2ZTNiMzI4M2U5NTA2YzVkNGY4MTM2YTgzZWNmODc5Zjdm
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC9vcHRpb25zLnB5CkBAIC0wLDAgKzEsODggQEAK
KyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5k
ZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRo
ZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25h
bCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMg
bGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZl
cnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBl
eGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4g
YSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp
Y2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh
dyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9V
VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNz
IG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNl
bnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRp
ZXMgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKKworCitjbGFzcyBPcHRpb25zKG9iamVjdCk6
CisgICAgS0VZID0gJ3dwZTpicm93c2VyT3B0aW9ucycKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKKyAgICAgICAgc2VsZi5fYmluYXJ5X2xvY2F0aW9uID0gJycKKyAgICAgICAgc2VsZi5fYXJn
dW1lbnRzID0gW10KKyAgICAgICAgc2VsZi5fY2FwcyA9IERlc2lyZWRDYXBhYmlsaXRpZXMuV1BF
V0VCS0lULmNvcHkoKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNhcGFiaWxpdGllcyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHMKKworICAgIGRlZiBzZXRfY2FwYWJpbGl0eShz
ZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICIiIlNldHMgYSBjYXBhYmlsaXR5LiIiIgorICAg
ICAgICBzZWxmLl9jYXBzW25hbWVdID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBi
aW5hcnlfbG9jYXRpb24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBs
b2NhdGlvbiBvZiB0aGUgYnJvd3NlciBiaW5hcnkgb3RoZXJ3aXNlIGFuIGVtcHR5IHN0cmluZwor
ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2JpbmFyeV9sb2NhdGlvbgorCisgICAg
QGJpbmFyeV9sb2NhdGlvbi5zZXR0ZXIKKyAgICBkZWYgYmluYXJ5X2xvY2F0aW9uKHNlbGYsIHZh
bHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBicm93c2Vy
IGJpbmFyeSB0byBsYXVuY2gKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdmFsdWUgOiBw
YXRoIHRvIHRoZSBicm93c2VyIGJpbmFyeQorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYmlu
YXJ5X2xvY2F0aW9uID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhcmd1bWVudHMo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiBhcmd1bWVudHMg
bmVlZGVkIGZvciB0aGUgYnJvd3NlcgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2FyZ3VtZW50cworCisgICAgZGVmIGFkZF9hcmd1bWVudChzZWxmLCBhcmd1bWVudCk6CisgICAg
ICAgICIiIgorICAgICAgICBBZGRzIGFuIGFyZ3VtZW50IHRvIHRoZSBsaXN0CisKKyAgICAgICAg
OkFyZ3M6CisgICAgICAgICAtIFNldHMgdGhlIGFyZ3VtZW50cworICAgICAgICAiIiIKKyAgICAg
ICAgaWYgYXJndW1lbnQ6CisgICAgICAgICAgICBzZWxmLl9hcmd1bWVudHMuYXBwZW5kKGFyZ3Vt
ZW50KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYXJndW1l
bnQgY2FuIG5vdCBiZSBudWxsIikKKworICAgIGRlZiB0b19jYXBhYmlsaXRpZXMoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgY2FwYWJpbGl0aWVzIHdpdGggYWxsIHRoZSBv
cHRpb25zIHRoYXQgaGF2ZSBiZWVuIHNldCBhbmQKKyAgICAgICAgcmV0dXJucyBhIGRpY3Rpb25h
cnkgd2l0aCBldmVyeXRoaW5nCisgICAgICAgICIiIgorICAgICAgICBjYXBzID0gc2VsZi5fY2Fw
cworCisgICAgICAgIGJyb3dzZXJfb3B0aW9ucyA9IHt9CisgICAgICAgIGlmIHNlbGYuYmluYXJ5
X2xvY2F0aW9uOgorICAgICAgICAgICAgYnJvd3Nlcl9vcHRpb25zWyJiaW5hcnkiXSA9IHNlbGYu
YmluYXJ5X2xvY2F0aW9uCisgICAgICAgIGlmIHNlbGYuYXJndW1lbnRzOgorICAgICAgICAgICAg
YnJvd3Nlcl9vcHRpb25zWyJhcmdzIl0gPSBzZWxmLmFyZ3VtZW50cworCisgICAgICAgIGNhcHNb
T3B0aW9ucy5LRVldID0gYnJvd3Nlcl9vcHRpb25zCisKKyAgICAgICAgcmV0dXJuIGNhcHMKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci93cGV3ZWJraXQvc2VydmljZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93cGV3ZWJraXQvc2VydmljZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wYjFmNTVlMjkxN2VmODM5YWRkZDc0NzU2ZmIwNzllZGMyOTg5MzI3Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3dwZXdlYmtpdC9zZXJ2aWNlLnB5CkBAIC0wLDAgKzEsNDIgQEAKKyMgTGljZW5zZWQg
dG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9y
IG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmls
ZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlv
bgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhp
cyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0
aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO
U0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQg
dG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug
aXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVT
IE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
ICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9t
IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24gaW1wb3J0IHNlcnZpY2UKKworCitjbGFzcyBTZXJ2
aWNlKHNlcnZpY2UuU2VydmljZSk6CisgICAgIiIiCisgICAgT2JqZWN0IHRoYXQgbWFuYWdlcyB0
aGUgc3RhcnRpbmcgYW5kIHN0b3BwaW5nIG9mIHRoZSBXUEVXZWJLaXREcml2ZXIKKyAgICAiIiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGgsIHBvcnQ9MCwgbG9nX3Bh
dGg9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9m
IHRoZSBTZXJ2aWNlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV4ZWN1dGFibGVfcGF0
aCA6IFBhdGggdG8gdGhlIFdQRVdlYktpdERyaXZlcgorICAgICAgICAgLSBwb3J0IDogUG9ydCB0
aGUgc2VydmljZSBpcyBydW5uaW5nIG9uCisgICAgICAgICAtIGxvZ19wYXRoIDogUGF0aCBmb3Ig
dGhlIFdQRVdlYktpdERyaXZlciBzZXJ2aWNlIHRvIGxvZyB0bworICAgICAgICAiIiIKKyAgICAg
ICAgbG9nX2ZpbGUgPSBvcGVuKGxvZ19wYXRoLCAid2IiKSBpZiBsb2dfcGF0aCBpcyBub3QgTm9u
ZSBhbmQgbG9nX3BhdGggIT0gIiIgZWxzZSBOb25lCisgICAgICAgIHNlcnZpY2UuU2VydmljZS5f
X2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGgsIHBvcnQsIGxvZ19maWxlKQorCisgICAgZGVm
IGNvbW1hbmRfbGluZV9hcmdzKHNlbGYpOgorICAgICAgICByZXR1cm4gWyItcCIsICIlZCIgJSBz
ZWxmLnBvcnRdCisKKyAgICBkZWYgc2VuZF9yZW1vdGVfc2h1dGRvd25fY29tbWFuZChzZWxmKToK
KyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC93ZWJkcml2ZXIucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd3Bld2Via2l0
L3dlYmRyaXZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTQ5MDQ3ZmMwMWM0ODk5NzM3NDU2YTEwYzg2YWU2
NGQxNjliYjVjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC93ZWJkcml2ZXIucHkKQEAgLTAs
MCArMSw3MiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5j
eSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVu
dHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZv
ciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlw
LiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUg
TGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFw
YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmli
dXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJB
U0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0
aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNp
ZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5k
ZXIgdGhlIExpY2Vuc2UuCisKK3RyeToKKyAgICBpbXBvcnQgaHR0cC5jbGllbnQgYXMgaHR0cF9j
bGllbnQKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBpbXBvcnQgaHR0cGxpYiBhcyBodHRwX2Ns
aWVudAorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRp
ZXMgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJl
bW90ZS53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBSZW1vdGVXZWJEcml2ZXIKK2Zyb20g
LnNlcnZpY2UgaW1wb3J0IFNlcnZpY2UKKworCitjbGFzcyBXZWJEcml2ZXIoUmVtb3RlV2ViRHJp
dmVyKToKKyAgICAiIiIKKyAgICBDb250cm9scyB0aGUgV1BFV2ViS2l0RHJpdmVyIGFuZCBhbGxv
d3MgeW91IHRvIGRyaXZlIHRoZSBicm93c2VyLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGV4ZWN1dGFibGVfcGF0aD0iV1BFV2ViRHJpdmVyIiwgcG9ydD0wLCBvcHRpb25zPU5v
bmUsCisgICAgICAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPURlc2lyZWRDYXBhYmls
aXRpZXMuV1BFV0VCS0lULAorICAgICAgICAgICAgICAgICBzZXJ2aWNlX2xvZ19wYXRoPU5vbmUp
OgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgV1BF
V2ViS2l0IGRyaXZlci4KKworICAgICAgICBTdGFydHMgdGhlIHNlcnZpY2UgYW5kIHRoZW4gY3Jl
YXRlcyBuZXcgaW5zdGFuY2Ugb2YgV1BFV2ViS2l0IERyaXZlci4KKworICAgICAgICA6QXJnczoK
KyAgICAgICAgIC0gZXhlY3V0YWJsZV9wYXRoIDogcGF0aCB0byB0aGUgZXhlY3V0YWJsZS4gSWYg
dGhlIGRlZmF1bHQgaXMgdXNlZCBpdCBhc3N1bWVzIHRoZSBleGVjdXRhYmxlIGlzIGluIHRoZSAk
UEFUSC4KKyAgICAgICAgIC0gcG9ydCA6IHBvcnQgeW91IHdvdWxkIGxpa2UgdGhlIHNlcnZpY2Ug
dG8gcnVuLCBpZiBsZWZ0IGFzIDAsIGEgZnJlZSBwb3J0IHdpbGwgYmUgZm91bmQuCisgICAgICAg
ICAtIG9wdGlvbnMgOiBhbiBpbnN0YW5jZSBvZiBXUEVXZWJLaXRPcHRpb25zCisgICAgICAgICAt
IGRlc2lyZWRfY2FwYWJpbGl0aWVzIDogRGljdGlvbmFyeSBvYmplY3Qgd2l0aCBkZXNpcmVkIGNh
cGFiaWxpdGllcworICAgICAgICAgLSBzZXJ2aWNlX2xvZ19wYXRoIDogUGF0aCB0byB3cml0ZSBz
ZXJ2aWNlIHN0ZG91dCBhbmQgc3RkZXJyIG91dHB1dC4KKyAgICAgICAgIiIiCisgICAgICAgIGlm
IG9wdGlvbnMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBvcHRpb25z
LnRvX2NhcGFiaWxpdGllcygpCisgICAgICAgICAgICBjYXBhYmlsaXRpZXMudXBkYXRlKGRlc2ly
ZWRfY2FwYWJpbGl0aWVzKQorICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXMgPSBjYXBh
YmlsaXRpZXMKKworICAgICAgICBzZWxmLnNlcnZpY2UgPSBTZXJ2aWNlKGV4ZWN1dGFibGVfcGF0
aCwgcG9ydD1wb3J0LCBsb2dfcGF0aD1zZXJ2aWNlX2xvZ19wYXRoKQorICAgICAgICBzZWxmLnNl
cnZpY2Uuc3RhcnQoKQorCisgICAgICAgIFJlbW90ZVdlYkRyaXZlci5fX2luaXRfXygKKyAgICAg
ICAgICAgIHNlbGYsCisgICAgICAgICAgICBjb21tYW5kX2V4ZWN1dG9yPXNlbGYuc2VydmljZS5z
ZXJ2aWNlX3VybCwKKyAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPWRlc2lyZWRfY2Fw
YWJpbGl0aWVzKQorICAgICAgICBzZWxmLl9pc19yZW1vdGUgPSBGYWxzZQorCisgICAgZGVmIHF1
aXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBDbG9zZXMgdGhlIGJyb3dzZXIgYW5kIHNo
dXRzIGRvd24gdGhlIFdQRVdlYktpdERyaXZlciBleGVjdXRhYmxlCisgICAgICAgIHRoYXQgaXMg
c3RhcnRlZCB3aGVuIHN0YXJ0aW5nIHRoZSBXUEVXZWJLaXREcml2ZXIKKyAgICAgICAgIiIiCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIFJlbW90ZVdlYkRyaXZlci5xdWl0KHNlbGYpCisgICAg
ICAgIGV4Y2VwdCBodHRwX2NsaWVudC5CYWRTdGF0dXNMaW5lOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5zZXJ2aWNlLnN0b3AoKQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9ydW5uZXIvcnVu
X3B5dGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3QvcnVu
bmVyL3J1bl9weXRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjkxMWUwM2VlMmI5OGY1YWYyOTBlMWZiNDQ1
Y2NhNGVjMzUyMjg1YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3QvcnVubmVyL3J1bl9weXRlc3QucHkKQEAgLTAsMCArMSwyNiBAQAor
IyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRl
ciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhl
IE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBs
aWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVy
c2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4
Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBh
IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj
ZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3
IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vu
c2UuCisKK2ltcG9ydCBweXRlc3QKKword2l0aCBvcGVuKCJweXRlc3QuaW5pIiwgInciKSBhcyBp
bmlfZmlsZToKKyAgICBpbmlfZmlsZS53cml0ZSgiW3B5dGVzdF1cbiIpCisgICAgaW5pX2ZpbGUu
d3JpdGUoImFkZG9wdHMgPSAtcj1hXG4iKQorICAgIGluaV9maWxlLndyaXRlKCJyb290ZGlyID0g
cHlcbiIpCisgICAgaW5pX2ZpbGUud3JpdGUoInB5dGhvbl9maWxlcyA9IHRlc3RfKi5weSAqX3Rl
c3RzLnB5XG4iKQorCityYWlzZSBTeXN0ZW1FeGl0KHB5dGVzdC5tYWluKCkpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vdGltZW91dF90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90aW1lb3V0X3Rlc3RzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE3Y2YwMWJiOGZlZGI1YTQyM2NkYTViYTk5YjZjZDA0OTI1YmMwNzMKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdGltZW91dF90ZXN0cy5weQpAQCAtMCwwICsxLDcw
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KKworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNv
bW1vbi50aW1lb3V0cyBpbXBvcnQgVGltZW91dHMKKworZGVmIHRlc3Rfc2hvdWxkX2NyZWF0ZV90
aW1lb3V0c19vYmplY3QoKToKKyAgICBpbXBsaWNpdF93YWl0ID0gMTAKKyAgICBwYWdlX2xvYWQg
PSAxMAorICAgIHNjcmlwdCA9IDEwCisgICAgdGltZW91dHMgPSBUaW1lb3V0cyhpbXBsaWNpdF93
YWl0PWltcGxpY2l0X3dhaXQscGFnZV9sb2FkPXBhZ2VfbG9hZCxzY3JpcHQ9c2NyaXB0KQorCisg
ICAgYXNzZXJ0IGltcGxpY2l0X3dhaXQgPT0gdGltZW91dHMuaW1wbGljaXRfd2FpdAorICAgIGFz
c2VydCBwYWdlX2xvYWQgPT0gdGltZW91dHMucGFnZV9sb2FkCisgICAgYXNzZXJ0IHNjcmlwdCA9
PSB0aW1lb3V0cy5zY3JpcHQKKworZGVmIHRlc3Rfc2hvdWxkX2Vycm9yX2lmX2ltcGxpY2l0X3dh
aXRfaXNudF9hX251bWJlcigpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgor
ICAgICAgICBUaW1lb3V0cyhpbXBsaWNpdF93YWl0PSJhYmMiKQorCisgICAgdGltZW91dCA9IFRp
bWVvdXRzKGltcGxpY2l0X3dhaXQ9MCkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9y
KToKKyAgICAgICAgdGltZW91dC5pbXBsaWNpdF93YWl0PSJhYmMiCisKKworZGVmIHRlc3Rfc2hv
dWxkX2Vycm9yX2lmX3BhZ2VfbG9hZF9pc250X2FfbnVtYmVyKCk6CisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgIFRpbWVvdXRzKHBhZ2VfbG9hZD0iYWJjIikKKyAg
ICAKKyAgICB0aW1lb3V0ID0gVGltZW91dHMocGFnZV9sb2FkPTApCisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgIHRpbWVvdXQucGFnZV9sb2FkID0gImFiYyIKKwor
CitkZWYgdGVzdF9zaG91bGRfZXJyb3JfaWZfc2NyaXB0X2lzbnRfYV9udW1iZXIoKToKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgVGltZW91dHMoc2NyaXB0PSJh
YmMiKQorCisgICAgdGltZW91dCA9IFRpbWVvdXRzKHNjcmlwdD0wKQorICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICB0aW1lb3V0LnNjcmlwdCA9ICJhYmMiCisKKwor
ZGVmIHRlc3Rfc2hvdWxkX2dldF90aW1lb3V0c193aXRob3V0X3NldHRpbmdfdGhlbShkcml2ZXIp
OgorICAgIHJlc3VsdHMgPSBkcml2ZXIudGltZW91dHMKKyAgICBhc3NlcnQgcmVzdWx0cy5pbXBs
aWNpdF93YWl0ID09IDAKKyAgICBhc3NlcnQgcmVzdWx0cy5wYWdlX2xvYWQgPT0gMzAwCisgICAg
YXNzZXJ0IHJlc3VsdHMuc2NyaXB0ID09IDMwCisKK2RlZiB0ZXN0X3Nob3VsZF9zZXRfYW5kX2dl
dF90aW1lb3V0c19vbl9yZW1vdGVfZW5kKGRyaXZlcik6CisgICAgdGltZW91dCA9IFRpbWVvdXRz
KGltcGxpY2l0X3dhaXQ9MTApCisgICAgZHJpdmVyLnRpbWVvdXRzID0gdGltZW91dAorICAgIHJl
c3VsdCA9IGRyaXZlci50aW1lb3V0cworICAgIGFzc2VydCByZXN1bHQuaW1wbGljaXRfd2FpdCA9
PSB0aW1lb3V0LmltcGxpY2l0X3dhaXQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9zdXBwb3J0L2V4cGVjdGVkX2NvbmRpdGlvbnNfdGVzdHMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBw
b3J0L2V4cGVjdGVkX2NvbmRpdGlvbnNfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDRkOGM5NGQzNmI2
MGM1YWVhY2FhODZmODA1ZGFjZjlhMzI4MzhhZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBv
cnQvZXhwZWN0ZWRfY29uZGl0aW9uc190ZXN0cy5weQpAQCAtMCwwICsxLDY2IEBACisjIExpY2Vu
c2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQor
IyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNF
IGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2Vz
IHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIu
MCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGlu
IGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBv
ZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9M
SUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdy
ZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNl
bnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFO
VElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBs
aWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJu
aW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKwor
aW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBU
aW1lb3V0RXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQgaW1w
b3J0IFdlYkRyaXZlcldhaXQKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0
IGV4cGVjdGVkX2NvbmRpdGlvbnMgYXMgRUMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1v
bi5ieSBpbXBvcnQgQnkKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJlbGVtZW50
IGltcG9ydCBXZWJFbGVtZW50CisKKworZGVmIHRlc3RfYW55X29mX3RydWUoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBXZWJEcml2ZXJXYWl0
KGRyaXZlciwgMC4xKS51bnRpbChFQy5hbnlfb2YoCisgICAgICAgIEVDLnRpdGxlX2lzKCJOb3Bl
IiksIEVDLnRpdGxlX2lzKCJIZWxsbyBXZWJEcml2ZXIiKSkpCisKKworZGVmIHRlc3RfYW55X29m
X2ZhbHNlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIp
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMC4xKS51bnRpbChFQy5hbnlfb2YoCisgICAgICAgICAgICBFQy50
aXRsZV9pcygiTm9wZSIpLCBFQy50aXRsZV9pcygiU3RpbGwgTm9wZSIpKSkKKworCitkZWYgdGVz
dF9hbGxfb2ZfdHJ1ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0
Lmh0bWwiKQorICAgIHJlc3VsdHMgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC4xKS51bnRpbChF
Qy5hbGxfb2YoCisgICAgICAgIEVDLnRpdGxlX2lzKCJIZWxsbyBXZWJEcml2ZXIiKSwKKyAgICAg
ICAgRUMudmlzaWJpbGl0eV9vZl9lbGVtZW50X2xvY2F0ZWQoKEJ5LklELCAib25lbGluZSIpKSkp
CisgICAgYXNzZXJ0IHJlc3VsdHNbMF0gaXMgVHJ1ZQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJl
c3VsdHNbMV0sIFdlYkVsZW1lbnQpCisKKworZGVmIHRlc3RfYWxsX29mX2ZhbHNlKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRl
c3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZl
ciwgMC4xKS51bnRpbChFQy5hbGxfb2YoCisgICAgICAgICAgICBFQy50aXRsZV9pcygiTm9wZSIp
LCBFQy50aXRsZV9pcygiU3RpbGwgTm9wZSIpKSkKKworCitkZWYgdGVzdF9ub25lX29mX3RydWUo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBX
ZWJEcml2ZXJXYWl0KGRyaXZlciwgMC4xKS51bnRpbChFQy5ub25lX29mKAorICAgICAgICBFQy50
aXRsZV9pcygiTm9wZSIpLCBFQy50aXRsZV9pcygiU3RpbGwgTm9wZSIpKSkKKworCitkZWYgdGVz
dF9ub25lX29mX2ZhbHNlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRl
c3QuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAg
ICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC4xKS51bnRpbChFQy5ub25lX29mKAorICAgICAg
ICAgICAgRUMudGl0bGVfaXMoIk5vcGUiKSwgRUMudGl0bGVfaXMoIkhlbGxvIFdlYkRyaXZlciIp
KSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvcmVsYXRpdmVfYnlfdGVzdHMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBw
b3J0L3JlbGF0aXZlX2J5X3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmMzEwOGViZjExNDcxOWZjMmRh
MjFhZjRjOGYyMzRiODNlZDQyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L3JlbGF0
aXZlX2J5X3Rlc3RzLnB5CkBAIC0wLDAgKzEsNDIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3
YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJp
YnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmli
dXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRp
bmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRv
IHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vu
c2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3
aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisj
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
ZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP
TlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMg
YW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisK
K2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkgICAKK2Zyb20gc2Vs
ZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQucmVsYXRpdmVfbG9jYXRvciBpbXBvcnQgd2l0aF90YWdf
bmFtZQorCitkZWYgdGVzdF9zaG91bGRfYmVfYWJsZV90b19maW5kX2VsZW1lbnRzX2Fib3ZlX2Fu
b3RoZXIoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgicmVsYXRpdmVfbG9jYXRvcnMu
aHRtbCIpCisgICAgbG93ZXN0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImJlbG93IikK
KyAgICAKKyAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKHdpdGhfdGFnX25hbWUo
InAiKS5hYm92ZShsb3dlc3QpKQorICAgIAorICAgIGlkcyA9IFtlbC5nZXRfYXR0cmlidXRlKCdp
ZCcpIGZvciBlbCBpbiBlbGVtZW50c10KKyAgICBhc3NlcnQgImFib3ZlIiBpbiBpZHMKKyAgICBh
c3NlcnQgIm1pZCIgaW4gaWRzCisKKworZGVmIHRlc3Rfc2hvdWxkX2JlX2FibGVfdG9fY29tYmlu
ZV9maWx0ZXJzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInJlbGF0aXZlX2xvY2F0
b3JzLmh0bWwiKQorCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyh3aXRoX3Rh
Z19uYW1lKCJ0ZCIpLmFib3ZlKGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJjZW50ZXIiKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9fcmln
aHRfb2YoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInNlY29uZCIpKSkKKworICAgIGlkcyA9
IFtlbC5nZXRfYXR0cmlidXRlKCdpZCcpIGZvciBlbCBpbiBlbGVtZW50c10KKyAgICBhc3NlcnQg
InRoaXJkIiBpbiBpZHMKKyAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402264</attachid>
            <date>2020-06-18 20:18:35 -0700</date>
            <delta_ts>2020-06-19 06:53:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213263-20200619001832.patch</filename>
            <type>text/plain</type>
            <size>224191</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjMxCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9D
aGFuZ2VMb2cgYi9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjZjNWRkOWYwODBhYTI4
N2Y4MWI0MmQ5MWI2YjEwZjg4YTRmNzkzNy4uMzljNWJjYTQyZDBmMDliNWNlMDY1MjM2OWI4ZjZj
MDQxNmY5NjEzZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1dl
YkRyaXZlclRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIwLTA2LTE4ICBMYXVy
byBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJEcml2ZXJdW1dQRV0g
VXBkYXRlIGltcG9ydGVkIHNlbGVuaXVtIHRvIGEgdmVyc2lvbiB3aXRoIHRoZSBXUEUgV2ViRHJp
dmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMy
NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGVkIFNlbGVuaXVtIHRlc3RzIHRvIDBkN2U1N2E3MDc5Yywgd2hpY2ggYWRkZWQgdGhlIFdQRSBX
ZWJEcml2ZXIuCisKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9i
dXR0b24ucG5nOiBBZGRlZC4KKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9mb3JtUGFnZS5odG1sOgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2lucHV0cy5odG1sOgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL3JlbGF0aXZlX2xvY2F0b3JzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW4uY3NzOgorICAgICAgICAqIGlt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NlbGVjdGFibGVJdGVtcy5odG1sOgorICAg
ICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NpbXBsZVRlc3QuaHRtbDoK
KyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91cGxvYWQuaHRtbDoK
KyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91cGxvYWRfaW52aXNp
YmxlLmh0bWw6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIveGh0
bWxUZXN0Lmh0bWw6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbjog
TW9kaWZpZWQgaGFzaCBhbmQgc2tpcHBlZCBmb2xkZXJzCisgICAgICAgICogaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvY29uZnRlc3QucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vX19pbml0X18ucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vY29tbW9uL2V4Y2VwdGlvbnMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL19faW5pdF9fLnB5OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9uX2NoYWlucy5weToKKyAgICAg
ICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlv
bnMvYWN0aW9uX2J1aWxkZXIucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2lucHV0X2RldmljZS5weToKKyAgICAgICAg
KiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMv
aW50ZXJhY3Rpb24ucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2tleV9hY3Rpb25zLnB5OgorICAgICAgICAqIGltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9tb3VzZV9i
dXR0b24ucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9hY3Rpb25zL3BvaW50ZXJfYWN0aW9ucy5weToKKyAgICAgICAgKiBpbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvcG9pbnRlcl9p
bnB1dC5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2FsZXJ0LnB5OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vZGVzaXJlZF9jYXBhYmlsaXRpZXMucHk6CisgICAgICAgICog
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9odG1sNS9hcHBs
aWNhdGlvbl9jYWNoZS5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL29wdGlvbnMucHk6IEFkZGVkLgorICAgICAgICAqIGltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcHJveHkucHk6CisgICAgICAg
ICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90aW1lb3V0
cy5weTogQWRkZWQuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi91dGlscy5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvdy5weTogQ29waWVkIGZyb20gV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkuCisgICAgICAg
ICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9jb21tYW5k
LnB5OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9y
ZW1vdGUvZXJyb3JoYW5kbGVyLnB5OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHk6CisgICAgICAgICog
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9zd2l0Y2hfdG8u
cHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Jl
bW90ZS91dGlscy5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvcmVtb3RlL3dlYmRyaXZlci5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmVsZW1lbnQucHk6CisgICAgICAgICog
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9wZXJtaXNzaW9u
cy5weTogQ29waWVkIGZyb20gV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vX19pbml0X18ucHkuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVfY29ubmVjdGlvbi5weTogQ29waWVkIGZyb20gV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
cmVtb3RlL3JlbW90ZV9maXJlZm94X3Byb2ZpbGVfdGVzdHMucHkuCisgICAgICAgICogaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9zZXJ2aWNlLnB5OgorICAg
ICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvd2Vi
ZHJpdmVyLnB5OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRy
aXZlci9zdXBwb3J0L2NvbG9yLnB5OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2V2ZW50X2ZpcmluZ193ZWJkcml2ZXIucHk6CisgICAg
ICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXhw
ZWN0ZWRfY29uZGl0aW9ucy5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvc3VwcG9ydC9yZWxhdGl2ZV9sb2NhdG9yLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9zZWxl
Y3QucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L3N1cHBvcnQvd2FpdC5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvd2Via2l0Z3RrL29wdGlvbnMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay93ZWJkcml2ZXIucHk6CisgICAg
ICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC9f
X2luaXRfXy5weTogQ29waWVkIGZyb20gV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vX19pbml0X18ucHkuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC9vcHRpb25zLnB5OiBDb3BpZWQgZnJvbSBXZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0
Z3RrL29wdGlvbnMucHkuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3dwZXdlYmtpdC9zZXJ2aWNlLnB5OiBDb3BpZWQgZnJvbSBXZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3NlcnZpY2Uu
cHkuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dw
ZXdlYmtpdC93ZWJkcml2ZXIucHk6IENvcGllZCBmcm9tIFdlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvd2ViZHJpdmVyLnB5Lgor
ICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9hbGVydHNfdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5OgorICAgICAg
ICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9h
cHBjYWNoZV90ZXN0cy5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vY2xpY2tfc2Nyb2xsaW5nX3Rlc3RzLnB5OgorICAgICAg
ICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9j
b29raWVfdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2NvcnJlY3RfZXZlbnRfZmlyaW5nX3Rlc3RzLnB5OgorICAg
ICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9kcml2ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5OgorICAgICAgICAqIGltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9lbGVtZW50X2F0dHJpYnV0
ZV90ZXN0cy5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vZXhlY3V0aW5nX2FzeW5jX2phdmFzY3JpcHRfdGVzdHMucHk6Cisg
ICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2Zvcm1faGFuZGxpbmdfdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy5w
eToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZl
ci9jb21tb24vaW50ZXJhY3Rpb25zX3Rlc3RzLnB5OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRfdGltZW91dF90
ZXN0cy5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5OgorICAgICAgICAqIGltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wb3NpdGlvbl9hbmRf
c2l6ZV90ZXN0cy5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vcHJveHlfdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3JlbmRlcmVkX3dlYmVs
ZW1lbnRfdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weToKKyAgICAgICAgKiBp
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0
X2VsZW1lbnRfaGFuZGxpbmdfdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Rha2VzX3NjcmVlbnNob3RzX3Rlc3Rz
LnB5OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi90aW1lb3V0X3Rlc3RzLnB5OiBBZGRlZC4KKyAgICAgICAgKiBpbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdHlwaW5nX3Rlc3RzLnB5
OgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi93M2NfaW50ZXJhY3Rpb25fdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dlYmRyaXZlcndhaXRfdGVz
dHMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL3dpbmRvd19zd2l0Y2hpbmdfdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvd190ZXN0
cy5weToKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9yZW1vdGUvcmVtb3RlX2ZpcmVmb3hfcHJvZmlsZV90ZXN0cy5weToKKyAgICAgICAgKiBp
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvbGF1bmNo
ZXJfdGVzdHMucHk6CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVudF9maXJpbmdfd2ViZHJpdmVyX3Rlc3RzLnB5OgorICAg
ICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBv
cnQvZXhwZWN0ZWRfY29uZGl0aW9uc190ZXN0cy5weTogQWRkZWQuCisgICAgICAgICogaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9yZWxhdGl2ZV9i
eV90ZXN0cy5weTogQWRkZWQuCisKIDIwMjAtMDYtMTIgIExhdXJvIE1vdXJhICA8bG1vdXJhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW1dlYkRyaXZlcl1bV1BFXSBBZGQgcmVtYWluaW5nIFdQRSBm
YWlsdXJlcyB0byBleHBlY3RhdGlvbnMuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9idXR0b24ucG5nIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYnV0dG9uLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
MWEwNmVlNmEyZGNmMWExZmYxMzY4ZDU3YjliMjM5NzdmNmZiYzY0CkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCA2NDcKemNtVjsyMChrdzJQKTxoOzNLfExrMDAwZTFOSkxUcTAwMSVvMDAxJXcxXkBz
Njl6VGUmMDAwMDFiNWNoXzBJdHApCno9PlB4IzFaUDFfSz56QDtqfD09XjFwb2o1MzI7YlJhe3ZH
aSF2RnZkIXZWKXtzQUs+RDB2dCgxS34haSU/YmwxbAp6TztIJCFAJEheVlZXTG8mQU9uO3o1YH5H
MGw5YEVJNjIqKXRDQ1cjWDZlVEdjQWVWdVc1SkBTPFFZSzB2MV9zSXsKejxuRFJhKl5CKnNxO3ZF
USZkVTMqVSMrIXdkKyt0T19DOU4hRGlWb0FCOVRhPmAhZjxfM28jaEtXajV+T2RxTGplCno1UVph
VjJId015QU1tSUVQbXYze2lVRnZ1KWR4O3NzMFJ3a0coM1QwVSpRMyMkaiVyJGc9SVMmYChabWFS
QU0mNAp6dV4rUCZnPipycGtaI05XUm1lRXBzOW5aWjdgSEpWVGJ6MVR3WU8lQEIzfm5hN011NlUq
MTteb2I9LXJpXmU3bjUKenBUd1psWWg5Q3sqR3laNU9vR1JFVnFleyFpUDNkPzZedXA3YzxkbE56
WCF8Vjs1T2hBKyhGbyRrMTIyYGFSS1lgCno1LSFTU0tmSzRUKWEoN2NXOyFiNTZ3YyFvTSZOSVNt
PDh+Pk1LYGtwdVVnSE5qcmZLPDNrVUZgKWw3eEYjVjBzeAp6JkYzfUtRNldkK3c3PHFZXmo5STlA
Zmt4PnVjfiQ8cFNPX3ZASilEKj1KVDVBczFWPVJDSFJVaEBWJE01KHtSd3cKemtZNVNZWlh2VnEx
PHU0bUpqTytzVCE+cnNKTWUhMFQqdzZFLVI0N19nUkB+KSFWUX5LZTtYNSNHWiRWbkpAdE9ZCnpT
SUxqTW5La2V9ZWs7IUVjJGpVdChyUStkQGNAMnJlYlpKVUJfczt6d25RUF9tT21EZntgVkdeVVdL
PzAqcUxMZQp6dXBFYkRQZ3xMdXk1biFaaXtIYCRFUTVQRzdnWDF2c2k9bkdDTT4yakFGJm9jR1oz
cUIyNXU4ZGEwR3B+TDZKeCMKaDV7WDEyayR6OEF7USE7M1l+OUU+IVhmfHcwMDJvdlBESExrVjFo
cjJBeTVEUwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZm9ybVBhZ2UuaHRtbCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zvcm1QYWdlLmh0bWwK
aW5kZXggNDVhZTJiN2Q2YmRkMDZhYjNmNTg0Yjc3OWUyYzg4OTZjMmVlZjBlNi4uYjRmNDFkY2Vi
OTM4NzFiZmI4NDFmODZkZWVkMzhmYzgyNDg1YTc3MSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZm9ybVBhZ2UuaHRtbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mb3JtUGFnZS5o
dG1sCkBAIC0xOSw3ICsxOSw3IEBAIFRoZXJlIHNob3VsZCBiZSBhIGZvcm0gaGVyZToKIDwvZm9y
bT4KIAogPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIiBuYW1lPSJp
bWFnZSI+Ci0gICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2VCdXR0b24iIGFsdD0iY2xp
Y2sgbWUhIiBzcmM9ImltYWdlcy9idXR0b24uZ2lmIi8+CisgICAgPGlucHV0IHR5cGU9ImltYWdl
IiBpZD0iaW1hZ2VCdXR0b24iIGFsdD0iY2xpY2sgbWUhIiBzcmM9ImJ1dHRvbi5wbmciLz4KIDwv
Zm9ybT4KIAogPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIiBuYW1l
PSJvcHRpb25hbCIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4KZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2lucHV0cy5odG1sIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaW5wdXRzLmh0bWwK
aW5kZXggYjYwODU0ZmE5ZmM5YjYyNmI2YjAwZGU2MTRhZDQ2Y2FhNmJkYjM5YS4uNDZhNTI4Mjdl
ZGUzMGQyODUyYjE2NmQwYWNkN2FlZDdhMTBiOTg2ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaW5wdXRzLmh0bWwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaW5wdXRzLmh0bWwK
QEAgLTE2LDcgKzE2LDcgQEAKICAgPGlucHV0IG5hbWU9InNlYXJjaF9pbnB1dCIgdHlwZT0ic2Vh
cmNoIiB2YWx1ZT0ic2VhcmNoIiAvPjxici8+CiAgIDxpbnB1dCBuYW1lPSJ0ZWxfaW5wdXQiIHR5
cGU9InRlbCIgdmFsdWU9IjkxMSIgLz48YnIvPgogICA8aW5wdXQgbmFtZT0idGV4dF9pbnB1dCIg
dHlwZT0idGV4dCIgdmFsdWU9InRleHQgaW5wdXQiIC8+PGJyLz4KLSAgPGlucHV0IG5hbWU9InVy
bF9pbnB1dCIgdHlwZT0idXJsIiB2YWx1ZT0iaHR0cDovL3NlbGVuaXVtaHEub3JnLyIgLz48YnIv
PgorICA8aW5wdXQgbmFtZT0idXJsX2lucHV0IiB0eXBlPSJ1cmwiIHZhbHVlPSJodHRwczovL3Nl
bGVuaXVtLmRldi8iIC8+PGJyLz4KICAgPGJyLz4KICAgPGlucHV0IG5hbWU9ImNoZWNrYm94X2lu
cHV0IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IkNoZWNrYm94IiBjaGVja2VkIC8+PGJyLz4KICAg
PGlucHV0IG5hbWU9InJhZGlvX2lucHV0IiB0eXBlPSJyYWRpbyIgdmFsdWU9InJhZGlvMSIgY2hl
Y2tlZCAvPjxici8+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9yZWxhdGl2ZV9sb2NhdG9ycy5odG1sIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcmVsYXRpdmVfbG9jYXRvcnMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZGM4NGYxOTEwMDE3MWFmN2NjOGIxODUxYzBlNmM4MmNmOGM4NjVjCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvcmVsYXRpdmVfbG9jYXRvcnMuaHRtbApAQCAtMCwwICsxLDQxIEBACisKKzxodG1sPgor
PGhlYWQ+CisgIDx0aXRsZT5SZWxhdGl2ZSBMb2NhdG9yczwvdGl0bGU+CisgIDxzdHlsZT4KKyAg
ICB0YWJsZSB7CisgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgICBib3JkZXI6IHNvbGlk
OworICAgIH0KKyAgICB0ZCB7CisgICAgICBib3JkZXI6IHNvbGlkOworICAgIH0KKyAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlJlbGF0aXZlIExvY2F0b3IgVGVzdHM8L2gxPgorPHAg
aWQ9ImFib3ZlIj5UaGlzIHRleHQgaXMgYWJvdmUuCis8cCBpZD0ibWlkIj5UaGlzIGlzIGEgcGFy
YWdyYXBoIG9mIHRleHQgaW4gdGhlIG1pZGRsZS4KKzxwIGlkPSJiZWxvdyI+VGhpcyB0ZXh0IGlz
IGJlbG93LgorCisKKzx0YWJsZT4KKyAgPHRyPgorICAgIDx0ZCBpZD0iZmlyc3QiPjE8L3RkPgor
ICAgIDx0ZCBpZD0ic2Vjb25kIiBzdHlsZT0id2lkdGg6IDEwMHB4Ij4yPC90ZD4KKyAgICA8dGQg
aWQ9InRoaXJkIj4zPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZCBpZD0iZm91cnRoIj40
PC90ZD4KKyAgICA8dGQgaWQ9ImNlbnRlciI+NTwvdGQ+CisgICAgPHRkIGlkPSJzaXh0aCI+Njwv
dGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQgaWQ9InNldmVudGgiPjc8L3RkPgorICAgIDx0
ZCBpZD0iZWlnaHRoIj44PC90ZD4KKyAgICA8dGQgaWQ9Im5pbnRoIj45PC90ZD4KKyAgPC90cj4K
KzwvdGFibGU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW4uY3NzIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVl
bi5jc3MKaW5kZXggODE1MjYxODUwYzUzMThlY2VlZTNhNDg4NTMyNjc2ZmIwODBmOWE0Ny4uMmFk
MzdjZTA1YTU4NjA5NTBiOGRlNDgyODRjNGUwZGM2MjljMGQ1MiAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbi5j
c3MKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
c2NyZWVuL3NjcmVlbi5jc3MKQEAgLTEsNyArMSw3IEBACiAqIHsgCiAgIG1hcmdpbjogMDsgCiB9
Ci1odG1sLCBib2R5LCAjb3V0cHV0IHsKKyNvdXRwdXQgewogICB3aWR0aDogMTAwJTsKICAgaGVp
Z2h0OiAxMDAlOwogfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvc2VsZWN0YWJsZUl0ZW1zLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zZWxlY3RhYmxlSXRlbXMuaHRtbAppbmRl
eCAxOTBiMmFkYTdjMmQ4NzkwNzU5MmRmMjk4N2UzNjI2YzhiZGY3YmNlLi5hODkxNTQ0ZDY3NDdh
YWZmMDA5NDA4ODUwMTk3Yzk2YTIwYzBjMGQyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zZWxlY3RhYmxlSXRlbXMuaHRtbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zZWxlY3Rh
YmxlSXRlbXMuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxoZWFkPgogCTxtZXRhIGNoYXJzZXQ9IlVU
Ri04IiAvPgogCTx0aXRsZT5qUXVlcnkgVUkgU2VsZWN0YWJsZSAtIERlZmF1bHQgZnVuY3Rpb25h
bGl0eTwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiBocmVmPSJjc3MvdWkt
bGlnaHRuZXNzL2pxdWVyeS11aS0xLjguMS5jdXN0b20uY3NzIiByZWw9InN0eWxlc2hlZXQiIC8+
CisgICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiBocmVmPSJjc3MvdWktbGlnaHRuZXNzL2px
dWVyeS11aS0xLjguMTAuY3VzdG9tLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPgogICAgICAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9qcXVlcnktMS40LjQubWluLmpz
Ij48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
anMvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20ubWluLmpzIj48L3NjcmlwdD4KIAkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NpbXBs
ZVRlc3QuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3NpbXBsZVRlc3QuaHRtbAppbmRleCAwN2Y2ZDhiZDRkNDA2YTkzYTE1ZDM1YzEyYzM2N2M0
NDZhNjdkMDVhLi4zOTlhMDA5OTZkNzFjNjRmZDc5OGVjYjJkZTkyY2I3MTJhZDBlYTk4IDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9z
aW1wbGVUZXN0Lmh0bWwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvc2ltcGxlVGVzdC5odG1sCkBAIC05NSw3ICs5NSw3IEBAIGRvY3VtZW50Lndy
aXRlKCIgYW5kIHdpdGggZG9jdW1lbnQud3JpdGUgYWdhaW4iKTsKIDxzcGFuIGlkPSJ0cmltbWVk
U3BhY2UiPiAg4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCL4oCM4oCN4oCv4oGf
4oGg44CAdGVzdCAg4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCL4oCM4oCN4oCv
4oGf4oGg44CAPC9zcGFuPgogCiA8YnIvPgotPGEgaWQ9ImNhcGl0YWxpemVkIiBzdHlsZT0idGV4
dC10cmFuc2Zvcm06IGNhcGl0YWxpemUiPkhlbGxvLCB3b3JsZCEgYmxhLWJsYS1CTEE8L2E+PGJy
Lz4KKzxhIGlkPSJjYXBpdGFsaXplZCIgc3R5bGU9InRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXpl
Ij5oZWxsbywgd29ybGQhIGJsYS1ibGEtQkxBPC9hPjxici8+CiA8YSBpZD0ibG93ZXJjYXNlZCIg
c3R5bGU9InRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UiPkhlbGxvLCB3b3JsZCEgYmxhLWJsYS1C
TEE8L2E+PGJyLz4KIDxhIGlkPSJ1cHBlcmNhc2VkIiBzdHlsZT0idGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZSI+SGVsbG8sIHdvcmxkISBibGEtYmxhLUJMQTwvYT48YnIvPgogCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91cGxvYWQu
aHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Vw
bG9hZC5odG1sCmluZGV4IGFjYTM5OGFiNzQzNGQ0YTM5NDZiOTRlODhmNzliMWQ1YjA1NzBlOTIu
LmZhMWEzODAzMWM5OWYwMWEyYzUwYTcxNTYzYmU0NjYwMTJiMDQ2NzYgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3VwbG9hZC5odG1s
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Vw
bG9hZC5odG1sCkBAIC0yOCwxMiArMjgsMTIgQEAKICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KLTxmb3JtIGFjdGlvbj0iL2NvbW1vbi91cGxvYWQiIG1ldGhvZD0icG9zdCIgbmFtZT0idXBs
b2FkX2Zvcm0iCis8Zm9ybSBhY3Rpb249InVwbG9hZCIgbWV0aG9kPSJwb3N0IiBuYW1lPSJ1cGxv
YWRfZm9ybSIKICAgICAgIHRhcmdldD0idXBsb2FkX3RhcmdldCIgZW5jdHlwZT0ibXVsdGlwYXJ0
L2Zvcm0tZGF0YSIKICAgICAgIG9uc3VibWl0PSJvblVwbG9hZFN1Ym1pdCgpOyI+CiAgIDxkaXY+
CiAgICAgRW50ZXIgYSBmaWxlIHRvIHVwbG9hZDoKLSAgICA8ZGl2PjxpbnB1dCBpZD0idXBsb2Fk
IiBuYW1lPSJ1cGxvYWQiIHR5cGU9ImZpbGUiLz48L2Rpdj4KKyAgICA8ZGl2PjxpbnB1dCBpZD0i
dXBsb2FkIiBuYW1lPSJ1cGxvYWQiIHR5cGU9ImZpbGUiIG11bHRpcGxlLz48L2Rpdj4KICAgICA8
ZGl2PjxpbnB1dCBpZD0iZ28iIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvISIvPjwvZGl2PgogICA8
L2Rpdj4KICAgPGRpdiBpZD0idXBsb2FkX2xhYmVsIiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rp
dj4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL3VwbG9hZF9pbnZpc2libGUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3VwbG9hZF9pbnZpc2libGUuaHRtbAppbmRleCBmZjEwOTMx
MTE4OGM5OWZhYTg5ZjAxZGZmZDFkOGQyYzkyNjdlMTZmLi4zMjhjYmQyZWVkMDcxYjIyOTEyZjJh
YzAzOTFhN2E4MjBjNjhmNGUyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi91cGxvYWRfaW52aXNpYmxlLmh0bWwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdXBsb2FkX2ludmlzaWJs
ZS5odG1sCkBAIC0zMSw3ICszMSw3IEBACiA8Zm9ybSBhY3Rpb249Ii9jb21tb24vdXBsb2FkIiBt
ZXRob2Q9InBvc3QiIG5hbWU9InVwbG9hZF9mb3JtIgogICAgICAgdGFyZ2V0PSJ1cGxvYWRfdGFy
Z2V0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIgogICAgICAgb25zdWJtaXQ9Im9uVXBs
b2FkU3VibWl0KCk7Ij4KLSAgPGRpdiBzdHlsZT0naGVpZ2h0OiAwOyB3aWR0aDogMDsgb3ZlcmZs
b3c6IGhpZGRlbjsnPgorICA8ZGl2IHN0eWxlPSdoZWlnaHQ6IDA7IHdpZHRoOiAwOyBkaXNwbGF5
OiBub25lOyc+CiAgICAgPGRpdj48aW5wdXQgaWQ9InVwbG9hZCIgbmFtZT0idXBsb2FkIiB0eXBl
PSJmaWxlIi8+PC9kaXY+CiAgIDwvZGl2PgogICA8bGFiZWwgaWQ9InZpc2libGVfbGFiZWwiIGZv
cj0idXBsb2FkIj5VcGxvYWQ8L2xhYmVsPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIveGh0bWxUZXN0Lmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi94aHRtbFRlc3QuaHRtbAppbmRl
eCBkMmYzYTVkYTg0YmU1MzFmMDRiMDE1YmU5MjNiMTM2ZmE0NjVlMTViLi5iNjllYTJiYmI5OWUw
NGE3YmIwYjEwOWM4MjBhMGRmZjZkOTdlMTUzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi94aHRtbFRlc3QuaHRtbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi94aHRtbFRlc3QuaHRt
bApAQCAtNjgsNyArNjgsNyBAQAogPC9zcGFuPgogCiA8ZGl2IGlkPSJwYXJlbnQiPkknbSBhIHBh
cmVudAotICA8ZGl2IGlkPSJjaGlsZCI+SSdtIGEgY2hpbGQ8L2Rpdj4KKyAgPGRpdiBpZD0iY2hp
bGQiIGNsYXNzPSJjbHMtIUAjJCVeJioiPkknbSBhIGNoaWxkPC9kaXY+CiA8L2Rpdj4KIAogPGRp
diBpZD0ib25seS1leGlzdHMtb24teGh0bWx0ZXN0Ij5Xb28gd29vPC9kaXY+CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9pbXBvcnRlci5qc29uIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbgppbmRleCAxOTJiMzEzNzhj
OGZhN2JhODY5ZDZiNjdiY2VmODNkYmUxOTE0ZTA2Li5iNjYyYTI1NGY3NmIxMzM3ZTk3YWNjZTVi
NjBiOWM5N2U0YTZkMWRhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9pbXBvcnRlci5qc29uCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2ltcG9ydGVyLmpzb24KQEAgLTEsNiArMSw2IEBACiB7CiAgICAgInJlcG9zaXRvcnkiOiAiaHR0
cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtSFEvc2VsZW5pdW0uZ2l0IiwKLSAgICAicmV2aXNpb24i
OiAiMzAwY2QzZmEwMjg4ZDNhODhlYjRiNGM0NTljNTRiZDAyYTAxNTExOCIsCisgICAgInJldmlz
aW9uIjogIjBkN2U1N2E3MDc5YzBhNDgyODZlOGU3NDFhMDEyMjkxNmMwOGNhMTYiLAogICAgICJw
YXRoc190b19pbXBvcnQiOiBbCiAgICAgICAgICJjb21tb24iLAogICAgICAgICAicHkvY29uZnRl
c3QucHkiLApAQCAtMTcsNiArMTcsNyBAQAogICAgICAgICAicHkvc2VsZW5pdW0vd2ViZHJpdmVy
L2FuZHJvaWQiLAogICAgICAgICAicHkvc2VsZW5pdW0vd2ViZHJpdmVyL2JsYWNrYmVycnkiLAog
ICAgICAgICAicHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZSIsCisgICAgICAgICJweS9zZWxl
bml1bS93ZWJkcml2ZXIvY2hyb21pdW0iLAogICAgICAgICAicHkvc2VsZW5pdW0vd2ViZHJpdmVy
L2VkZ2UiLAogICAgICAgICAicHkvc2VsZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3giLAogICAgICAg
ICAicHkvc2VsZW5pdW0vd2ViZHJpdmVyL2llIiwKQEAgLTI2LDcgKzI3LDYgQEAKICAgICAgICAg
InB5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZSIsCiAgICAgICAgICJweS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9maXJlZm94IiwKICAgICAgICAgInB5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2llIiwKLSAgICAgICAgInB5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21hcmlvbmV0
dGUiLAotICAgICAgICAicHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvcGhhbnRvbWpzIgorICAg
ICAgICAicHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvbWFyaW9uZXR0ZSIKICAgICBdCiB9CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2NvbmZ0ZXN0LnB5CmluZGV4
IGUyZWRjZmE2ZDQ1YWRlZGY4N2QzZjdiMjJkMDA1NDgzYTYwYTRhNTguLjUwOTAzMTA0ZDA5N2Rl
ZWU4MGFjMDUxOTQ4YzUzNzg3MzMyZmQwOTkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L2NvbmZ0ZXN0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L2NvbmZ0ZXN0LnB5CkBAIC00NCw2ICs0NCw3IEBAIGRyaXZlcnMgPSAo
CiAgICAgJ1JlbW90ZScsCiAgICAgJ1NhZmFyaScsCiAgICAgJ1dlYktpdEdUSycsCisgICAgJ0No
cm9taXVtRWRnZScsCiApCiAKIApAQCAtNjAsNyArNjEsMTAgQEAgZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKIAogCiBkZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZyk6
Ci0gICAgX2RyaXZlcnMgPSBzZXQoZHJpdmVycykuZGlmZmVyZW5jZShjb25maWcuZ2V0b3B0aW9u
KCdkcml2ZXJzJykgb3IgZHJpdmVycykKKyAgICBkcml2ZXJzX29wdCA9IGNvbmZpZy5nZXRvcHRp
b24oJ2RyaXZlcnMnKQorICAgIF9kcml2ZXJzID0gc2V0KGRyaXZlcnMpLmRpZmZlcmVuY2UoZHJp
dmVyc19vcHQgb3IgZHJpdmVycykKKyAgICBpZiBkcml2ZXJzX29wdDoKKyAgICAgICAgX2RyaXZl
cnMuYWRkKCd1bml0JykKICAgICBwYXJ0cyA9IHBhdGguZGlybmFtZS5zcGxpdChvcy5wYXRoLnNl
cCkKICAgICByZXR1cm4gbGVuKFtkIGZvciBkIGluIF9kcml2ZXJzIGlmIGQubG93ZXIoKSBpbiBw
YXJ0c10pID4gMAogCkBAIC0xMTAsMTEgKzExNCwxMyBAQCBkZWYgZHJpdmVyKHJlcXVlc3QpOgog
ICAgICAgICAgICAgb3B0aW9ucyA9IGdldF9vcHRpb25zKGRyaXZlcl9jbGFzcywgcmVxdWVzdC5j
b25maWcpCiAgICAgICAgIGlmIGRyaXZlcl9jbGFzcyA9PSAnUmVtb3RlJzoKICAgICAgICAgICAg
IGNhcGFiaWxpdGllcyA9IERlc2lyZWRDYXBhYmlsaXRpZXMuRklSRUZPWC5jb3B5KCkKLSAgICAg
ICAgICAgIGNhcGFiaWxpdGllc1snbWFyaW9uZXR0ZSddID0gRmFsc2UKICAgICAgICAgICAgIGt3
YXJncy51cGRhdGUoeydkZXNpcmVkX2NhcGFiaWxpdGllcyc6IGNhcGFiaWxpdGllc30pCiAgICAg
ICAgICAgICBvcHRpb25zID0gZ2V0X29wdGlvbnMoJ0ZpcmVmb3gnLCByZXF1ZXN0LmNvbmZpZykK
ICAgICAgICAgaWYgZHJpdmVyX2NsYXNzID09ICdXZWJLaXRHVEsnOgogICAgICAgICAgICAgb3B0
aW9ucyA9IGdldF9vcHRpb25zKGRyaXZlcl9jbGFzcywgcmVxdWVzdC5jb25maWcpCisgICAgICAg
IGlmIGRyaXZlcl9jbGFzcyA9PSAnQ2hyb21pdW1FZGdlJzoKKyAgICAgICAgICAgIG9wdGlvbnMg
PSBnZXRfb3B0aW9ucyhkcml2ZXJfY2xhc3MsIHJlcXVlc3QuY29uZmlnKQorICAgICAgICAgICAg
a3dhcmdzLnVwZGF0ZSh7J2lzX2xlZ2FjeSc6IEZhbHNlfSkKICAgICAgICAgaWYgZHJpdmVyX3Bh
dGggaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBrd2FyZ3NbJ2V4ZWN1dGFibGVfcGF0aCddID0g
ZHJpdmVyX3BhdGgKICAgICAgICAgaWYgb3B0aW9ucyBpcyBub3QgTm9uZToKQEAgLTEyOSw4ICsx
MzUsMTIgQEAgZGVmIGdldF9vcHRpb25zKGRyaXZlcl9jbGFzcywgY29uZmlnKToKICAgICBicm93
c2VyX3BhdGggPSBjb25maWcub3B0aW9uLmJpbmFyeQogICAgIGJyb3dzZXJfYXJncyA9IGNvbmZp
Zy5vcHRpb24uYXJncwogICAgIG9wdGlvbnMgPSBOb25lCisKICAgICBpZiBicm93c2VyX3BhdGgg
b3IgYnJvd3Nlcl9hcmdzOgotICAgICAgICBvcHRpb25zID0gZ2V0YXR0cih3ZWJkcml2ZXIsICd7
fU9wdGlvbnMnLmZvcm1hdChkcml2ZXJfY2xhc3MpKSgpCisgICAgICAgIGlmIGRyaXZlcl9jbGFz
cyA9PSAnQ2hyb21pdW1FZGdlJzoKKyAgICAgICAgICAgIG9wdGlvbnMgPSBnZXRhdHRyKHdlYmRy
aXZlciwgJ0VkZ2VPcHRpb25zJykoRmFsc2UpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBv
cHRpb25zID0gZ2V0YXR0cih3ZWJkcml2ZXIsICd7fU9wdGlvbnMnLmZvcm1hdChkcml2ZXJfY2xh
c3MpKSgpCiAgICAgICAgIGlmIGRyaXZlcl9jbGFzcyA9PSAnV2ViS2l0R1RLJzoKICAgICAgICAg
ICAgIG9wdGlvbnMub3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJsZWQgPSBGYWxzZQogICAgICAgICBp
ZiBicm93c2VyX3BhdGggaXMgbm90IE5vbmU6CkBAIC0xNzksNyArMTg5LDggQEAgZGVmIHNlcnZl
cihyZXF1ZXN0KToKIAogICAgIF9ob3N0ID0gJ2xvY2FsaG9zdCcKICAgICBfcG9ydCA9IDQ0NDQK
LSAgICBfcGF0aCA9ICcuLi9idWNrLW91dC9nZW4vamF2YS9zZXJ2ZXIvc3JjL29yZy9vcGVucWEv
Z3JpZC9zZWxlbml1bS9zZWxlbml1bS5qYXInCisgICAgX3BhdGggPSBvcy5wYXRoLmpvaW4ob3Mu
cGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhemVsLWJpbi9qYXZhL3NlcnZlci9zcmMvb3Jn
L29wZW5xYS9zZWxlbml1bS9ncmlkL3NlbGVuaXVtX3NlcnZlcl9kZXBsb3kuamFyJykKIAogICAg
IGRlZiB3YWl0X2Zvcl9zZXJ2ZXIodXJsLCB0aW1lb3V0KToKICAgICAgICAgc3RhcnQgPSB0aW1l
LnRpbWUoKQpAQCAtMTkyLDE0ICsyMDMsMTQgQEAgZGVmIHNlcnZlcihyZXF1ZXN0KToKICAgICAg
ICAgcmV0dXJuIDAKIAogICAgIF9zb2NrZXQgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVU
LCBzb2NrZXQuU09DS19TVFJFQU0pCi0gICAgdXJsID0gJ2h0dHA6Ly97fTp7fS93ZC9odWInLmZv
cm1hdChfaG9zdCwgX3BvcnQpCisgICAgdXJsID0gJ2h0dHA6Ly97fTp7fS9zdGF0dXMnLmZvcm1h
dChfaG9zdCwgX3BvcnQpCiAgICAgdHJ5OgogICAgICAgICBfc29ja2V0LmNvbm5lY3QoKF9ob3N0
LCBfcG9ydCkpCiAgICAgICAgIHByaW50KCdUaGUgcmVtb3RlIGRyaXZlciBzZXJ2ZXIgaXMgYWxy
ZWFkeSBydW5uaW5nIG9yIHNvbWV0aGluZyBlbHNlJwogICAgICAgICAgICAgICAnaXMgdXNpbmcg
cG9ydCB7fSwgY29udGludWluZy4uLicuZm9ybWF0KF9wb3J0KSkKICAgICBleGNlcHQgRXhjZXB0
aW9uOgogICAgICAgICBwcmludCgnU3RhcnRpbmcgdGhlIFNlbGVuaXVtIHNlcnZlcicpCi0gICAg
ICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKFsnamF2YScsICctamFyJywgX3BhdGhdKQor
ICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbJ2phdmEnLCAnLWphcicsIF9wYXRo
LCAnc3RhbmRhbG9uZScsICctLXBvcnQnLCAnNDQ0NCddKQogICAgICAgICBwcmludCgnU2VsZW5p
dW0gc2VydmVyIHJ1bm5pbmcgYXMgcHJvY2Vzczoge30nLmZvcm1hdChwcm9jZXNzLnBpZCkpCiAg
ICAgICAgIGFzc2VydCB3YWl0X2Zvcl9zZXJ2ZXIodXJsLCAxMCksICdUaW1lZCBvdXQgd2FpdGlu
ZyBmb3IgU2VsZW5pdW0gc2VydmVyIGF0IHt9Jy5mb3JtYXQodXJsKQogICAgICAgICBwcmludCgn
U2VsZW5pdW0gc2VydmVyIGlzIHJlYWR5JykKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkKaW5kZXggZTA4NWMxNTk4
OTkyNjk1YWVmMjQ2YWE0Y2I5Y2M5ZDAyZjFjOWY5YS4uNTgzMjhjYzU4ZDhjZGFmMzNkMzk3MTVm
NTBiZTVlOTVmZjE2ZDJlNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkKQEAgLTE2LDQgKzE2LDQgQEAKICMg
dW5kZXIgdGhlIExpY2Vuc2UuCiAKIAotX192ZXJzaW9uX18gPSAiMy4xMC4wIgorX192ZXJzaW9u
X18gPSAiNC4wLjBhMyIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKaW5kZXggZGY2
MWVjYTAwYTY5NGExY2Y3NjAxYmZjMjExNGIzOWUzNzU1MmYxNi4uNGNiMTFjODlkNThlZjJhMjRh
ODNkMTk5YTA4ODYzZDU2MmYyOTgxOCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMu
cHkKQEAgLTQwLDE4ICs0MCw2IEBAIGNsYXNzIFdlYkRyaXZlckV4Y2VwdGlvbihFeGNlcHRpb24p
OgogICAgICAgICByZXR1cm4gZXhjZXB0aW9uX21zZwogCiAKLWNsYXNzIEVycm9ySW5SZXNwb25z
ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgotICAgICIiIgotICAgIFRocm93biB3aGVu
IGFuIGVycm9yIGhhcyBvY2N1cnJlZCBvbiB0aGUgc2VydmVyIHNpZGUuCi0KLSAgICBUaGlzIG1h
eSBoYXBwZW4gd2hlbiBjb21tdW5pY2F0aW5nIHdpdGggdGhlIGZpcmVmb3ggZXh0ZW5zaW9uCi0g
ICAgb3IgdGhlIHJlbW90ZSBkcml2ZXIgc2VydmVyLgotICAgICIiIgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCByZXNwb25zZSwgbXNnKToKLSAgICAgICAgV2ViRHJpdmVyRXhjZXB0aW9uLl9faW5p
dF9fKHNlbGYsIG1zZykKLSAgICAgICAgc2VsZi5yZXNwb25zZSA9IHJlc3BvbnNlCi0KLQogY2xh
c3MgSW52YWxpZFN3aXRjaFRvVGFyZ2V0RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAg
ICAgIiIiCiAgICAgVGhyb3duIHdoZW4gZnJhbWUgb3Igd2luZG93IHRhcmdldCB0byBiZSBzd2l0
Y2hlZCBkb2Vzbid0IGV4aXN0LgpAQCAtMTMzLDEwICsxMjEsMTAgQEAgY2xhc3MgSW52YWxpZEVs
ZW1lbnRTdGF0ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogCiBjbGFzcyBVbmV4cGVj
dGVkQWxlcnRQcmVzZW50RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAgICAgIiIiCi0g
ICAgVGhyb3duIHdoZW4gYW4gdW5leHBlY3RlZCBhbGVydCBpcyBhcHBlYXJlZC4KKyAgICBUaHJv
d24gd2hlbiBhbiB1bmV4cGVjdGVkIGFsZXJ0IGhhcyBhcHBlYXJlZC4KIAotICAgIFVzdWFsbHkg
cmFpc2VkIHdoZW4gd2hlbiBhbiBleHBlY3RlZCBtb2RhbCBpcyBibG9ja2luZyB3ZWJkcml2ZXIg
Zm9ybSBleGVjdXRpbmcgYW55Ci0gICAgbW9yZSBjb21tYW5kcy4KKyAgICBVc3VhbGx5IHJhaXNl
ZCB3aGVuICBhbiB1bmV4cGVjdGVkIG1vZGFsIGlzIGJsb2NraW5nIHRoZSB3ZWJkcml2ZXIgZnJv
bSBleGVjdXRpbmcKKyAgICBjb21tYW5kcy4KICAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbXNnPU5vbmUsIHNjcmVlbj1Ob25lLCBzdGFja3RyYWNlPU5vbmUsIGFsZXJ0X3RleHQ9Tm9u
ZSk6CiAgICAgICAgIHN1cGVyKFVuZXhwZWN0ZWRBbGVydFByZXNlbnRFeGNlcHRpb24sIHNlbGYp
Ll9faW5pdF9fKG1zZywgc2NyZWVuLCBzdGFja3RyYWNlKQpAQCAtMzIyLDYgKzMxMCw2IEBAIGNs
YXNzIFNlc3Npb25Ob3RDcmVhdGVkRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAKIGNs
YXNzIFVua25vd25NZXRob2RFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAiIiIK
LSAgICBUaGUgcmVxdWVzdGVkIGNvbW1hbmQgbWF0Y2hlZCBhIGtub3duIFVSTCBidXQgZGlkIG5v
dCBtYXRjaCBhbiBtZXRob2QgZm9yIHRoYXQgVVJMLgorICAgIFRoZSByZXF1ZXN0ZWQgY29tbWFu
ZCBtYXRjaGVkIGEga25vd24gVVJMIGJ1dCBkaWQgbm90IG1hdGNoIGFueSBtZXRob2RzIGZvciB0
aGF0IFVSTC4KICAgICAiIiIKICAgICBwYXNzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0
X18ucHkKaW5kZXggMDZmZGUzMWQ4ZTJhM2IzZGZlNzdjNjM1NTdlM2M4NzFlZmMzZWE2OC4uZmQy
ZDU4ZmJlY2Y4OWYwYWFiMjNiNjY1MGQ2NTQ2Nzc1NTY3YjNhOSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL19faW5pdF9f
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9fX2luaXRfXy5weQpAQCAtMTgsMTAgKzE4LDEyIEBACiBmcm9tIC5zYWZhcmkud2Vi
ZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgU2FmYXJpICAjIG5vcWEKIGZyb20gLndlYmtpdGd0
ay53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBXZWJLaXRHVEsgIyBub3FhCiBmcm9tIC53
ZWJraXRndGsub3B0aW9ucyBpbXBvcnQgT3B0aW9ucyBhcyBXZWJLaXRHVEtPcHRpb25zICMgbm9x
YQorZnJvbSAud3Bld2Via2l0LndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFdQRVdlYktp
dCAjIG5vcWEKK2Zyb20gLndwZXdlYmtpdC5vcHRpb25zIGltcG9ydCBPcHRpb25zIGFzIFdQRVdl
YktpdE9wdGlvbnMgIyBub3FhCiBmcm9tIC5yZW1vdGUud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2
ZXIgYXMgUmVtb3RlICAjIG5vcWEKIGZyb20gLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBp
bXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcyAgIyBub3FhCiBmcm9tIC5jb21tb24uYWN0aW9uX2No
YWlucyBpbXBvcnQgQWN0aW9uQ2hhaW5zICAjIG5vcWEKIGZyb20gLmNvbW1vbi50b3VjaF9hY3Rp
b25zIGltcG9ydCBUb3VjaEFjdGlvbnMgICMgbm9xYQogZnJvbSAuY29tbW9uLnByb3h5IGltcG9y
dCBQcm94eSAgIyBub3FhCiAKLV9fdmVyc2lvbl9fID0gJzMuOS4wJworX192ZXJzaW9uX18gPSAn
NC4wLjBhMycKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9uX2NoYWlucy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9u
X2NoYWlucy5weQppbmRleCA0ZWQyOTdlMGYyZGJkYzhlYTgxODVkODBkOTc3ZTQ3ODcxZjg0Nzcw
Li43MDQxMjRiZDE2OGVkYTM1M2E5Njc0YzBlZjgxZDdiNWVlYTllNGQ3IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2FjdGlvbl9jaGFpbnMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25fY2hhaW5zLnB5CkBAIC04NCwx
MiArODQsMTMgQEAgY2xhc3MgQWN0aW9uQ2hhaW5zKG9iamVjdCk6CiAKICAgICBkZWYgcmVzZXRf
YWN0aW9ucyhzZWxmKToKICAgICAgICAgIiIiCi0gICAgICAgICAgICBDbGVhcnMgYWN0aW9ucyB0
aGF0IGFyZSBhbHJlYWR5IHN0b3JlZCBvbiB0aGUgcmVtb3RlIGVuZC4KKyAgICAgICAgQ2xlYXJz
IGFjdGlvbnMgdGhhdCBhcmUgYWxyZWFkeSBzdG9yZWQgbG9jYWxseSBhbmQgb24gdGhlIHJlbW90
ZSBlbmQKICAgICAgICAgIiIiCiAgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6Ci0gICAgICAg
ICAgICBzZWxmLl9kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlczQ19DTEVBUl9BQ1RJT05TKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fYWN0aW9ucyA9IFtdCisgICAgICAgICAgICBz
ZWxmLnczY19hY3Rpb25zLmNsZWFyX2FjdGlvbnMoKQorICAgICAgICAgICAgZm9yIGRldmljZSBp
biBzZWxmLnczY19hY3Rpb25zLmRldmljZXM6CisgICAgICAgICAgICAgICAgZGV2aWNlLmNsZWFy
X2FjdGlvbnMoKQorICAgICAgICBzZWxmLl9hY3Rpb25zID0gW10KIAogICAgIGRlZiBjbGljayhz
ZWxmLCBvbl9lbGVtZW50PU5vbmUpOgogICAgICAgICAiIiIKQEAgLTk5LDEzICsxMDAsMTMgQEAg
Y2xhc3MgQWN0aW9uQ2hhaW5zKG9iamVjdCk6CiAgICAgICAgICAtIG9uX2VsZW1lbnQ6IFRoZSBl
bGVtZW50IHRvIGNsaWNrLgogICAgICAgICAgICBJZiBOb25lLCBjbGlja3Mgb24gY3VycmVudCBt
b3VzZSBwb3NpdGlvbi4KICAgICAgICAgIiIiCisgICAgICAgIGlmIG9uX2VsZW1lbnQ6CisgICAg
ICAgICAgICBzZWxmLm1vdmVfdG9fZWxlbWVudChvbl9lbGVtZW50KQogICAgICAgICBpZiBzZWxm
Ll9kcml2ZXIudzNjOgotICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlv
bi5jbGljayhvbl9lbGVtZW50KQorICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVy
X2FjdGlvbi5jbGljaygpCiAgICAgICAgICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24u
cGF1c2UoKQogICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkK
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIG9uX2VsZW1lbnQ6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5tb3ZlX3RvX2VsZW1lbnQob25fZWxlbWVudCkKICAgICAgICAgICAgIHNlbGYuX2Fj
dGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4ZWN1dGUoCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDb21tYW5kLkNMSUNLLCB7J2J1dHRvbic6IDB9KSkKICAgICAg
ICAgcmV0dXJuIHNlbGYKQEAgLTExOCwxNCArMTE5LDEyIEBAIGNsYXNzIEFjdGlvbkNoYWlucyhv
YmplY3QpOgogICAgICAgICAgLSBvbl9lbGVtZW50OiBUaGUgZWxlbWVudCB0byBtb3VzZSBkb3du
LgogICAgICAgICAgICBJZiBOb25lLCBjbGlja3Mgb24gY3VycmVudCBtb3VzZSBwb3NpdGlvbi4K
ICAgICAgICAgIiIiCisgICAgICAgIGlmIG9uX2VsZW1lbnQ6CisgICAgICAgICAgICBzZWxmLm1v
dmVfdG9fZWxlbWVudChvbl9lbGVtZW50KQogICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgot
ICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlvbi5jbGlja19hbmRfaG9s
ZChvbl9lbGVtZW50KQorICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlv
bi5jbGlja19hbmRfaG9sZCgpCiAgICAgICAgICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rp
b24ucGF1c2UoKQotICAgICAgICAgICAgaWYgb25fZWxlbWVudDoKLSAgICAgICAgICAgICAgICBz
ZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2UoKQogICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgaWYgb25fZWxlbWVudDoKLSAgICAgICAgICAgICAgICBzZWxmLm1vdmVfdG9fZWxlbWVu
dChvbl9lbGVtZW50KQogICAgICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBz
ZWxmLl9kcml2ZXIuZXhlY3V0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv
bW1hbmQuTU9VU0VfRE9XTiwge30pKQogICAgICAgICByZXR1cm4gc2VsZgpAQCAtMTM4LDEyICsx
MzcsMTMgQEAgY2xhc3MgQWN0aW9uQ2hhaW5zKG9iamVjdCk6CiAgICAgICAgICAtIG9uX2VsZW1l
bnQ6IFRoZSBlbGVtZW50IHRvIGNvbnRleHQtY2xpY2suCiAgICAgICAgICAgIElmIE5vbmUsIGNs
aWNrcyBvbiBjdXJyZW50IG1vdXNlIHBvc2l0aW9uLgogICAgICAgICAiIiIKKyAgICAgICAgaWYg
b25fZWxlbWVudDoKKyAgICAgICAgICAgIHNlbGYubW92ZV90b19lbGVtZW50KG9uX2VsZW1lbnQp
CiAgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6Ci0gICAgICAgICAgICBzZWxmLnczY19hY3Rp
b25zLnBvaW50ZXJfYWN0aW9uLmNvbnRleHRfY2xpY2sob25fZWxlbWVudCkKKyAgICAgICAgICAg
IHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24uY29udGV4dF9jbGljaygpCisgICAgICAg
ICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2UoKQogICAgICAgICAgICAgc2Vs
Zi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGlmIG9uX2VsZW1lbnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5tb3ZlX3RvX2VsZW1lbnQo
b25fZWxlbWVudCkKICAgICAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2Vs
Zi5fZHJpdmVyLmV4ZWN1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21t
YW5kLkNMSUNLLCB7J2J1dHRvbic6IDJ9KSkKICAgICAgICAgcmV0dXJuIHNlbGYKQEAgLTE1Niwx
MyArMTU2LDEzIEBAIGNsYXNzIEFjdGlvbkNoYWlucyhvYmplY3QpOgogICAgICAgICAgLSBvbl9l
bGVtZW50OiBUaGUgZWxlbWVudCB0byBkb3VibGUtY2xpY2suCiAgICAgICAgICAgIElmIE5vbmUs
IGNsaWNrcyBvbiBjdXJyZW50IG1vdXNlIHBvc2l0aW9uLgogICAgICAgICAiIiIKKyAgICAgICAg
aWYgb25fZWxlbWVudDoKKyAgICAgICAgICAgIHNlbGYubW92ZV90b19lbGVtZW50KG9uX2VsZW1l
bnQpCiAgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6Ci0gICAgICAgICAgICBzZWxmLnczY19h
Y3Rpb25zLnBvaW50ZXJfYWN0aW9uLmRvdWJsZV9jbGljayhvbl9lbGVtZW50KQorICAgICAgICAg
ICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlvbi5kb3VibGVfY2xpY2soKQogICAgICAg
ICAgICAgZm9yIF8gaW4gcmFuZ2UoNCk6CiAgICAgICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9u
cy5rZXlfYWN0aW9uLnBhdXNlKCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIG9uX2Vs
ZW1lbnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5tb3ZlX3RvX2VsZW1lbnQob25fZWxlbWVudCkK
ICAgICAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4
ZWN1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kLkRPVUJMRV9D
TElDSywge30pKQogICAgICAgICByZXR1cm4gc2VsZgpAQCAtMTc2LDE1ICsxNzYsOCBAQCBjbGFz
cyBBY3Rpb25DaGFpbnMob2JqZWN0KToKICAgICAgICAgIC0gc291cmNlOiBUaGUgZWxlbWVudCB0
byBtb3VzZSBkb3duLgogICAgICAgICAgLSB0YXJnZXQ6IFRoZSBlbGVtZW50IHRvIG1vdXNlIHVw
LgogICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKLSAgICAgICAgICAg
IHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24uY2xpY2tfYW5kX2hvbGQoc291cmNlKSBc
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1vdmVfdG8odGFy
Z2V0KSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlbGVh
c2UoKQotICAgICAgICAgICAgZm9yIF8gaW4gcmFuZ2UoMyk6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHNlbGYuY2xpY2tfYW5kX2hvbGQoc291cmNlKQotICAgICAgICAgICAgc2VsZi5yZWxlYXNl
KHRhcmdldCkKKyAgICAgICAgc2VsZi5jbGlja19hbmRfaG9sZChzb3VyY2UpCisgICAgICAgIHNl
bGYucmVsZWFzZSh0YXJnZXQpCiAgICAgICAgIHJldHVybiBzZWxmCiAKICAgICBkZWYgZHJhZ19h
bmRfZHJvcF9ieV9vZmZzZXQoc2VsZiwgc291cmNlLCB4b2Zmc2V0LCB5b2Zmc2V0KToKQEAgLTE5
NywxNiArMTkwLDkgQEAgY2xhc3MgQWN0aW9uQ2hhaW5zKG9iamVjdCk6CiAgICAgICAgICAtIHhv
ZmZzZXQ6IFggb2Zmc2V0IHRvIG1vdmUgdG8uCiAgICAgICAgICAtIHlvZmZzZXQ6IFkgb2Zmc2V0
IHRvIG1vdmUgdG8uCiAgICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgot
ICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlvbi5jbGlja19hbmRfaG9s
ZChzb3VyY2UpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAu
bW92ZV90b19sb2NhdGlvbih4b2Zmc2V0LCB5b2Zmc2V0KSBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKQotICAgICAgICAgICAgZm9yIF8gaW4g
cmFuZ2UoMyk6Ci0gICAgICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBh
dXNlKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuY2xpY2tfYW5kX2hvbGQoc291
cmNlKQotICAgICAgICAgICAgc2VsZi5tb3ZlX2J5X29mZnNldCh4b2Zmc2V0LCB5b2Zmc2V0KQot
ICAgICAgICAgICAgc2VsZi5yZWxlYXNlKCkKKyAgICAgICAgc2VsZi5jbGlja19hbmRfaG9sZChz
b3VyY2UpCisgICAgICAgIHNlbGYubW92ZV9ieV9vZmZzZXQoeG9mZnNldCwgeW9mZnNldCkKKyAg
ICAgICAgc2VsZi5yZWxlYXNlKCkKICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBrZXlf
ZG93bihzZWxmLCB2YWx1ZSwgZWxlbWVudD1Ob25lKToKQEAgLTMzMiw3ICszMTgsNyBAQCBjbGFz
cyBBY3Rpb25DaGFpbnMob2JqZWN0KToKICAgICAgICAgICAgSWYgTm9uZSwgcmVsZWFzZXMgb24g
Y3VycmVudCBtb3VzZSBwb3NpdGlvbi4KICAgICAgICAgIiIiCiAgICAgICAgIGlmIG9uX2VsZW1l
bnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5tb3ZlX3RvX2VsZW1lbnQob25fZWxlbWVudCkKKyAg
ICAgICAgICAgIHNlbGYubW92ZV90b19lbGVtZW50KG9uX2VsZW1lbnQpCiAgICAgICAgIGlmIHNl
bGYuX2RyaXZlci53M2M6CiAgICAgICAgICAgICBzZWxmLnczY19hY3Rpb25zLnBvaW50ZXJfYWN0
aW9uLnJlbGVhc2UoKQogICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBh
dXNlKCkKQEAgLTM0OCwxMSArMzM0LDE0IEBAIGNsYXNzIEFjdGlvbkNoYWlucyhvYmplY3QpOgog
ICAgICAgICAgLSBrZXlzX3RvX3NlbmQ6IFRoZSBrZXlzIHRvIHNlbmQuICBNb2RpZmllciBrZXlz
IGNvbnN0YW50cyBjYW4gYmUgZm91bmQgaW4gdGhlCiAgICAgICAgICAgICdLZXlzJyBjbGFzcy4K
ICAgICAgICAgIiIiCisgICAgICAgIHR5cGluZyA9IGtleXNfdG9fdHlwaW5nKGtleXNfdG9fc2Vu
ZCkKICAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKLSAgICAgICAgICAgIHNlbGYudzNjX2Fj
dGlvbnMua2V5X2FjdGlvbi5zZW5kX2tleXMoa2V5c190b19zZW5kKQorICAgICAgICAgICAgZm9y
IGtleSBpbiB0eXBpbmc6CisgICAgICAgICAgICAgICAgc2VsZi5rZXlfZG93bihrZXkpCisgICAg
ICAgICAgICAgICAgc2VsZi5rZXlfdXAoa2V5KQogICAgICAgICBlbHNlOgogICAgICAgICAgICAg
c2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0ZSgKLSAgICAg
ICAgICAgICAgICBDb21tYW5kLlNFTkRfS0VZU19UT19BQ1RJVkVfRUxFTUVOVCwgeyd2YWx1ZSc6
IGtleXNfdG9fdHlwaW5nKGtleXNfdG9fc2VuZCl9KSkKKyAgICAgICAgICAgICAgICBDb21tYW5k
LlNFTkRfS0VZU19UT19BQ1RJVkVfRUxFTUVOVCwgeyd2YWx1ZSc6IHR5cGluZ30pKQogICAgICAg
ICByZXR1cm4gc2VsZgogCiAgICAgZGVmIHNlbmRfa2V5c190b19lbGVtZW50KHNlbGYsIGVsZW1l
bnQsICprZXlzX3RvX3NlbmQpOgpAQCAtMzY0LDEwICszNTMsOCBAQCBjbGFzcyBBY3Rpb25DaGFp
bnMob2JqZWN0KToKICAgICAgICAgIC0ga2V5c190b19zZW5kOiBUaGUga2V5cyB0byBzZW5kLiAg
TW9kaWZpZXIga2V5cyBjb25zdGFudHMgY2FuIGJlIGZvdW5kIGluIHRoZQogICAgICAgICAgICAn
S2V5cycgY2xhc3MuCiAgICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgot
ICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnNlbmRfa2V5cyhrZXlzX3Rv
X3NlbmQsIGVsZW1lbnQ9ZWxlbWVudCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYu
X2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogZWxlbWVudC5zZW5kX2tleXMoKmtleXNfdG9fc2VuZCkp
CisgICAgICAgIHNlbGYuY2xpY2soZWxlbWVudCkKKyAgICAgICAgc2VsZi5zZW5kX2tleXMoKmtl
eXNfdG9fc2VuZCkKICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgICMgQ29udGV4dCBtYW5hZ2Vy
IHNvIEFjdGlvbkNoYWlucyBjYW4gYmUgdXNlZCBpbiBhICd3aXRoIC4uIGFzJyBzdGF0ZW1lbnRz
LgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2FjdGlvbl9idWlsZGVyLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rp
b25zL2FjdGlvbl9idWlsZGVyLnB5CmluZGV4IDE4YjJkZWU0Y2Q4YmFhZTdlZjkzY2Q4ZjhiNTQz
MDc3NGYzOGE5MGEuLmViMGVjODRiYWMxMGQyNGI2OWJlMzNkNzQ1OWMzYzYzYTEzM2I2MTYgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vYWN0aW9ucy9hY3Rpb25fYnVpbGRlci5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlv
bnMvYWN0aW9uX2J1aWxkZXIucHkKQEAgLTI2LDcgKzI2LDcgQEAgZnJvbSAucG9pbnRlcl9pbnB1
dCBpbXBvcnQgUG9pbnRlcklucHV0CiBjbGFzcyBBY3Rpb25CdWlsZGVyKG9iamVjdCk6CiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGRyaXZlciwgbW91c2U9Tm9uZSwga2V5Ym9hcmQ9Tm9uZSk6CiAg
ICAgICAgIGlmIG1vdXNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBtb3VzZSA9IFBvaW50ZXJJbnB1
dChpbnRlcmFjdGlvbi5QT0lOVEVSLCAibW91c2UiKQorICAgICAgICAgICAgbW91c2UgPSBQb2lu
dGVySW5wdXQoaW50ZXJhY3Rpb24uUE9JTlRFUl9NT1VTRSwgIm1vdXNlIikKICAgICAgICAgaWYg
a2V5Ym9hcmQgaXMgTm9uZToKICAgICAgICAgICAgIGtleWJvYXJkID0gS2V5SW5wdXQoaW50ZXJh
Y3Rpb24uS0VZKQogICAgICAgICBzZWxmLmRldmljZXMgPSBbbW91c2UsIGtleWJvYXJkXQpAQCAt
NjIsOCArNjIsOCBAQCBjbGFzcyBBY3Rpb25CdWlsZGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYu
X2FkZF9pbnB1dChuZXdfaW5wdXQpCiAgICAgICAgIHJldHVybiBuZXdfaW5wdXQKIAotICAgIGRl
ZiBhZGRfcG9pbnRlcl9pbnB1dChzZWxmLCB0eXBlXywgbmFtZSk6Ci0gICAgICAgIG5ld19pbnB1
dCA9IFBvaW50ZXJJbnB1dCh0eXBlXywgbmFtZSkKKyAgICBkZWYgYWRkX3BvaW50ZXJfaW5wdXQo
c2VsZiwga2luZCwgbmFtZSk6CisgICAgICAgIG5ld19pbnB1dCA9IFBvaW50ZXJJbnB1dChraW5k
LCBuYW1lKQogICAgICAgICBzZWxmLl9hZGRfaW5wdXQobmV3X2lucHV0KQogICAgICAgICByZXR1
cm4gbmV3X2lucHV0CiAKQEAgLTczLDkgKzczLDEzIEBAIGNsYXNzIEFjdGlvbkJ1aWxkZXIob2Jq
ZWN0KToKICAgICAgICAgICAgIGVuY29kZWQgPSBkZXZpY2UuZW5jb2RlKCkKICAgICAgICAgICAg
IGlmIGVuY29kZWRbJ2FjdGlvbnMnXToKICAgICAgICAgICAgICAgICBlbmNbImFjdGlvbnMiXS5h
cHBlbmQoZW5jb2RlZCkKKyAgICAgICAgICAgICAgICBkZXZpY2UuYWN0aW9ucyA9IFtdCiAgICAg
ICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5XM0NfQUNUSU9OUywgZW5jKQogCiAgICAg
ZGVmIGNsZWFyX2FjdGlvbnMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICAgICAgQ2xlYXJz
IGFjdGlvbnMgdGhhdCBhcmUgYWxyZWFkeSBzdG9yZWQgb24gdGhlIHJlbW90ZSBlbmQKKyAgICAg
ICAgIiIiCiAgICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5XM0NfQ0xFQVJfQUNU
SU9OUykKIAogICAgIGRlZiBfYWRkX2lucHV0KHNlbGYsIGlucHV0KToKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vYWN0aW9ucy9pbnB1dF9kZXZpY2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvaW5wdXRfZGV2aWNlLnB5
CmluZGV4IDk4NGVmMzEwMDlmNjExZmNmZGY3M2EzMGI5MzQ4YjJkZWU1NWNhYTYuLjY3ZDNlYmM1
NDk3NTA1NjJlY2RhOGM0MjlhYjNkNjQ4NmIwOTU5YjMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9u
cy9pbnB1dF9kZXZpY2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2lucHV0X2RldmljZS5weQpAQCAt
MzksNSArMzksNSBAQCBjbGFzcyBJbnB1dERldmljZShvYmplY3QpOgogICAgIGRlZiBjbGVhcl9h
Y3Rpb25zKHNlbGYpOgogICAgICAgICBzZWxmLmFjdGlvbnMgPSBbXQogCi0gICAgZGVmIGNyZWF0
ZV9wYXVzZShzZWxmLCBkdXJhdG9uPTApOgorICAgIGRlZiBjcmVhdGVfcGF1c2Uoc2VsZiwgZHVy
YXRpb249MCk6CiAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9pbnRlcmFj
dGlvbi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vYWN0aW9ucy9pbnRlcmFjdGlvbi5weQppbmRleCAzYzgwODk0MWMyYTY2
YzVhZmE0ZDIxZTk5OWU4ODI5MTNkODM4NjNkLi42ODA0N2ZjNzUyYTg0NTdmY2I1ZjBkYWJhMDBj
MWFiZTc1NTY2ZTM1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvaW50ZXJhY3Rpb24ucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi9hY3Rpb25zL2ludGVyYWN0aW9uLnB5CkBAIC0yMSw2ICsyMSwxMiBAQCBQT0lOVEVS
ID0gInBvaW50ZXIiCiBOT05FID0gIm5vbmUiCiBTT1VSQ0VfVFlQRVMgPSBzZXQoW0tFWSwgUE9J
TlRFUiwgTk9ORV0pCiAKK1BPSU5URVJfTU9VU0UgPSAibW91c2UiCitQT0lOVEVSX1RPVUNIID0g
InRvdWNoIgorUE9JTlRFUl9QRU4gPSAicGVuIgorCitQT0lOVEVSX0tJTkRTID0gc2V0KFtQT0lO
VEVSX01PVVNFLCBQT0lOVEVSX1RPVUNILCBQT0lOVEVSX1BFTl0pCisKIAogY2xhc3MgSW50ZXJh
Y3Rpb24ob2JqZWN0KToKIApAQCAtMzgsNiArNDQsNyBAQCBjbGFzcyBQYXVzZShJbnRlcmFjdGlv
bik6CiAgICAgICAgIHNlbGYuZHVyYXRpb24gPSBkdXJhdGlvbgogCiAgICAgZGVmIGVuY29kZShz
ZWxmKToKLSAgICAgICAgb3V0cHV0ID0geyJ0eXBlIjogc2VsZi5QQVVTRX0KLSAgICAgICAgb3V0
cHV0WyJkdXJhdGlvbiJdID0gc2VsZi5kdXJhdGlvbiAqIDEwMDAKLSAgICAgICAgcmV0dXJuIG91
dHB1dAorICAgICAgICByZXR1cm4geworICAgICAgICAgICAgInR5cGUiOiBzZWxmLlBBVVNFLAor
ICAgICAgICAgICAgImR1cmF0aW9uIjogaW50KHNlbGYuZHVyYXRpb24gKiAxMDAwKQorICAgICAg
ICB9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMva2V5X2FjdGlvbnMucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlv
bnMva2V5X2FjdGlvbnMucHkKaW5kZXggZjBjNzQ5MjgzODMzN2I1MTBjOGZhN2Y3OGY2N2Q3YTE5
MzM2OWVhNS4uYzRkMDcyOTkyNzZiNjkwMzNlYTNjNTNlYmNjMjcwZDRhOTMwNmQyZCAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9hY3Rpb25zL2tleV9hY3Rpb25zLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9rZXlf
YWN0aW9ucy5weQpAQCAtMTQsNyArMTQsNyBAQAogIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBp
bXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKICMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogIyB1bmRlciB0aGUgTGljZW5zZS4K
LWZyb20gLmludGVyYWN0aW9uIGltcG9ydCBJbnRlcmFjdGlvbgorZnJvbSAuaW50ZXJhY3Rpb24g
aW1wb3J0IEludGVyYWN0aW9uLCBLRVkKIGZyb20gLmtleV9pbnB1dCBpbXBvcnQgS2V5SW5wdXQK
IGZyb20gLi51dGlscyBpbXBvcnQga2V5c190b190eXBpbmcKIApAQCAtMjMsMzAgKzIzLDI4IEBA
IGNsYXNzIEtleUFjdGlvbnMoSW50ZXJhY3Rpb24pOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHNvdXJjZT1Ob25lKToKICAgICAgICAgaWYgc291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBz
b3VyY2UgPSBLZXlJbnB1dCgpCisgICAgICAgICAgICBzb3VyY2UgPSBLZXlJbnB1dChLRVkpCiAg
ICAgICAgIHNlbGYuc291cmNlID0gc291cmNlCiAgICAgICAgIHN1cGVyKEtleUFjdGlvbnMsIHNl
bGYpLl9faW5pdF9fKHNvdXJjZSkKIAotICAgIGRlZiBrZXlfZG93bihzZWxmLCBsZXR0ZXIsIGVs
ZW1lbnQ9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9rZXlfYWN0aW9uKCJjcmVhdGVfa2V5
X2Rvd24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXIsIGVsZW1lbnQp
CisgICAgZGVmIGtleV9kb3duKHNlbGYsIGxldHRlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9r
ZXlfYWN0aW9uKCJjcmVhdGVfa2V5X2Rvd24iLCBsZXR0ZXIpCiAKLSAgICBkZWYga2V5X3VwKHNl
bGYsIGxldHRlciwgZWxlbWVudD1Ob25lKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2tleV9hY3Rp
b24oImNyZWF0ZV9rZXlfdXAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXR0
ZXIsIGVsZW1lbnQpCisgICAgZGVmIGtleV91cChzZWxmLCBsZXR0ZXIpOgorICAgICAgICByZXR1
cm4gc2VsZi5fa2V5X2FjdGlvbigiY3JlYXRlX2tleV91cCIsIGxldHRlcikKIAogICAgIGRlZiBw
YXVzZShzZWxmLCBkdXJhdGlvbj0wKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2tleV9hY3Rpb24o
ImNyZWF0ZV9wYXVzZSIsIGR1cmF0aW9uKQogCi0gICAgZGVmIHNlbmRfa2V5cyhzZWxmLCB0ZXh0
LCBlbGVtZW50PU5vbmUpOgorICAgIGRlZiBzZW5kX2tleXMoc2VsZiwgdGV4dCk6CiAgICAgICAg
IGlmIG5vdCBpc2luc3RhbmNlKHRleHQsIGxpc3QpOgogICAgICAgICAgICAgdGV4dCA9IGtleXNf
dG9fdHlwaW5nKHRleHQpCiAgICAgICAgIGZvciBsZXR0ZXIgaW4gdGV4dDoKLSAgICAgICAgICAg
IHNlbGYua2V5X2Rvd24obGV0dGVyLCBlbGVtZW50KQotICAgICAgICAgICAgc2VsZi5rZXlfdXAo
bGV0dGVyLCBlbGVtZW50KQorICAgICAgICAgICAgc2VsZi5rZXlfZG93bihsZXR0ZXIpCisgICAg
ICAgICAgICBzZWxmLmtleV91cChsZXR0ZXIpCiAgICAgICAgIHJldHVybiBzZWxmCiAKLSAgICBk
ZWYgX2tleV9hY3Rpb24oc2VsZiwgYWN0aW9uLCBsZXR0ZXIsIGVsZW1lbnQ9Tm9uZSk6CisgICAg
ZGVmIF9rZXlfYWN0aW9uKHNlbGYsIGFjdGlvbiwgbGV0dGVyKToKICAgICAgICAgbWV0aCA9IGdl
dGF0dHIoc2VsZi5zb3VyY2UsIGFjdGlvbikKICAgICAgICAgbWV0aChsZXR0ZXIpCiAgICAgICAg
IHJldHVybiBzZWxmCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvbW91c2VfYnV0dG9uLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9hY3Rpb25zL21vdXNlX2J1dHRvbi5weQppbmRleCA3MjYxZmQ4MjE4NjIyNmFiODg1MjEz
NDVmM2E0MTZjZTZhYzAyZDMyLi41ZmUxYjM4YjVmZWY3MGQyZmVkYmU3NDQ4YTU4ZjhkMjBkYjVm
ODg4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvbW91c2VfYnV0dG9uLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
YWN0aW9ucy9tb3VzZV9idXR0b24ucHkKQEAgLTEsMyArMSwyMSBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKwogY2xhc3Mg
TW91c2VCdXR0b24ob2JqZWN0KToKIAogICAgIExFRlQgPSAwCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Fj
dGlvbnMvcG9pbnRlcl9hY3Rpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL3BvaW50ZXJfYWN0aW9ucy5w
eQppbmRleCBkM2NhMTliZTY5ZGY2MjVmNWE2ZjdhNmExZDAwNDNmMmEwYzNkNDE0Li43ZDJmZGM3
MzQzYmUxZTQ5YTU2OGVhMDAzODRhOGVjNGFmNGM4NDI5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlv
bnMvcG9pbnRlcl9hY3Rpb25zLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9wb2ludGVyX2FjdGlvbnMu
cHkKQEAgLTIxLDEzICsyMSwxNCBAQCBmcm9tIC5tb3VzZV9idXR0b24gaW1wb3J0IE1vdXNlQnV0
dG9uCiBmcm9tIC5wb2ludGVyX2lucHV0IGltcG9ydCBQb2ludGVySW5wdXQKIAogZnJvbSBzZWxl
bml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmVsZW1lbnQgaW1wb3J0IFdlYkVsZW1lbnQKK2Zyb20g
c2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuZXZlbnRfZmlyaW5nX3dlYmRyaXZlciBpbXBvcnQg
RXZlbnRGaXJpbmdXZWJFbGVtZW50CiAKIAogY2xhc3MgUG9pbnRlckFjdGlvbnMoSW50ZXJhY3Rp
b24pOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZT1Ob25lKToKICAgICAgICAgaWYg
c291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzb3VyY2UgPSBQb2ludGVySW5wdXQoaW50ZXJh
Y3Rpb24uUE9JTlRFUiwgIm1vdXNlIikKKyAgICAgICAgICAgIHNvdXJjZSA9IFBvaW50ZXJJbnB1
dChpbnRlcmFjdGlvbi5QT0lOVEVSX01PVVNFLCAibW91c2UiKQogICAgICAgICBzZWxmLnNvdXJj
ZSA9IHNvdXJjZQogICAgICAgICBzdXBlcihQb2ludGVyQWN0aW9ucywgc2VsZikuX19pbml0X18o
c291cmNlKQogCkBAIC0zOCw3ICszOSw3IEBAIGNsYXNzIFBvaW50ZXJBY3Rpb25zKEludGVyYWN0
aW9uKToKICAgICAgICAgc2VsZi5fYnV0dG9uX2FjdGlvbigiY3JlYXRlX3BvaW50ZXJfdXAiLCBi
dXR0b249YnV0dG9uKQogCiAgICAgZGVmIG1vdmVfdG8oc2VsZiwgZWxlbWVudCwgeD1Ob25lLCB5
PU5vbmUpOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShlbGVtZW50LCBXZWJFbGVtZW50KToK
KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZWxlbWVudCwgKFdlYkVsZW1lbnQsIEV2ZW50Rmly
aW5nV2ViRWxlbWVudCkpOgogICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIm1vdmVf
dG8gcmVxdWlyZXMgYSBXZWJFbGVtZW50IikKICAgICAgICAgaWYgeCBpcyBub3QgTm9uZSBvciB5
IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgZWxfcmVjdCA9IGVsZW1lbnQucmVjdApAQCAtODcs
OCArODgsMTEgQEAgY2xhc3MgUG9pbnRlckFjdGlvbnMoSW50ZXJhY3Rpb24pOgogICAgIGRlZiBk
b3VibGVfY2xpY2soc2VsZiwgZWxlbWVudD1Ob25lKToKICAgICAgICAgaWYgZWxlbWVudDoKICAg
ICAgICAgICAgIHNlbGYubW92ZV90byhlbGVtZW50KQotICAgICAgICBzZWxmLmNsaWNrKCkKLSAg
ICAgICAgc2VsZi5jbGljaygpCisgICAgICAgIHNlbGYucG9pbnRlcl9kb3duKE1vdXNlQnV0dG9u
LkxFRlQpCisgICAgICAgIHNlbGYucG9pbnRlcl91cChNb3VzZUJ1dHRvbi5MRUZUKQorICAgICAg
ICBzZWxmLnBvaW50ZXJfZG93bihNb3VzZUJ1dHRvbi5MRUZUKQorICAgICAgICBzZWxmLnBvaW50
ZXJfdXAoTW91c2VCdXR0b24uTEVGVCkKKyAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBw
YXVzZShzZWxmLCBkdXJhdGlvbj0wKToKICAgICAgICAgc2VsZi5zb3VyY2UuY3JlYXRlX3BhdXNl
KGR1cmF0aW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL3BvaW50ZXJfaW5wdXQucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2FjdGlvbnMvcG9pbnRlcl9pbnB1dC5weQppbmRleCA3MjRlZTVhNGVkNmM3ODE1MGQzMTEy
NGEyMGE5ZmQ4YmZlMmRhNjUzLi4yMjE2YTVhMjEwMmMyY2UzYzFkNjRhNThlOWJkN2VjNDU3ZThl
ZDBkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvcG9pbnRlcl9pbnB1dC5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L2FjdGlvbnMvcG9pbnRlcl9pbnB1dC5weQpAQCAtMTUsMjQgKzE1LDMwIEBACiAjIHNwZWNpZmlj
IGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICMgdW5kZXIg
dGhlIExpY2Vuc2UuCiBmcm9tIC5pbnB1dF9kZXZpY2UgaW1wb3J0IElucHV0RGV2aWNlCitmcm9t
IC5pbnRlcmFjdGlvbiBpbXBvcnQgUE9JTlRFUiwgUE9JTlRFUl9LSU5EUwogCitmcm9tIHNlbGVu
aXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KIGZy
b20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJlbGVtZW50IGltcG9ydCBXZWJFbGVtZW50
Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LmV2ZW50X2ZpcmluZ193ZWJkcml2ZXIg
aW1wb3J0IEV2ZW50RmlyaW5nV2ViRWxlbWVudAogCiAKIGNsYXNzIFBvaW50ZXJJbnB1dChJbnB1
dERldmljZSk6CiAKICAgICBERUZBVUxUX01PVkVfRFVSQVRJT04gPSAyNTAKIAotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB0eXBlXywgbmFtZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGtpbmQs
IG5hbWUpOgogICAgICAgICBzdXBlcihQb2ludGVySW5wdXQsIHNlbGYpLl9faW5pdF9fKCkKLSAg
ICAgICAgc2VsZi50eXBlID0gdHlwZV8KKyAgICAgICAgaWYgKGtpbmQgbm90IGluIFBPSU5URVJf
S0lORFMpOgorICAgICAgICAgICAgcmFpc2UgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZh
bGlkIFBvaW50ZXJJbnB1dCBraW5kICclcyciICUga2luZCkKKyAgICAgICAgc2VsZi50eXBlID0g
UE9JTlRFUgorICAgICAgICBzZWxmLmtpbmQgPSBraW5kCiAgICAgICAgIHNlbGYubmFtZSA9IG5h
bWUKIAogICAgIGRlZiBjcmVhdGVfcG9pbnRlcl9tb3ZlKHNlbGYsIGR1cmF0aW9uPURFRkFVTFRf
TU9WRV9EVVJBVElPTiwgeD1Ob25lLCB5PU5vbmUsIG9yaWdpbj1Ob25lKToKICAgICAgICAgYWN0
aW9uID0gZGljdCh0eXBlPSJwb2ludGVyTW92ZSIsIGR1cmF0aW9uPWR1cmF0aW9uKQogICAgICAg
ICBhY3Rpb25bIngiXSA9IHgKICAgICAgICAgYWN0aW9uWyJ5Il0gPSB5Ci0gICAgICAgIGlmIGlz
aW5zdGFuY2Uob3JpZ2luLCBXZWJFbGVtZW50KToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvcmln
aW4sIChXZWJFbGVtZW50LCBFdmVudEZpcmluZ1dlYkVsZW1lbnQpKToKICAgICAgICAgICAgIGFj
dGlvblsib3JpZ2luIl0gPSB7ImVsZW1lbnQtNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmIjog
b3JpZ2luLmlkfQogICAgICAgICBlbGlmIG9yaWdpbiBpcyBub3QgTm9uZToKICAgICAgICAgICAg
IGFjdGlvblsib3JpZ2luIl0gPSBvcmlnaW4KQEAgLTQ5LDEwICs1NSwxMCBAQCBjbGFzcyBQb2lu
dGVySW5wdXQoSW5wdXREZXZpY2UpOgogICAgICAgICBzZWxmLmFkZF9hY3Rpb24oeyJ0eXBlIjog
InBvaW50ZXJDYW5jZWwifSkKIAogICAgIGRlZiBjcmVhdGVfcGF1c2Uoc2VsZiwgcGF1c2VfZHVy
YXRpb24pOgotICAgICAgICBzZWxmLmFkZF9hY3Rpb24oeyJ0eXBlIjogInBhdXNlIiwgImR1cmF0
aW9uIjogcGF1c2VfZHVyYXRpb24gKiAxMDAwfSkKKyAgICAgICAgc2VsZi5hZGRfYWN0aW9uKHsi
dHlwZSI6ICJwYXVzZSIsICJkdXJhdGlvbiI6IGludChwYXVzZV9kdXJhdGlvbiAqIDEwMDApfSkK
IAogICAgIGRlZiBlbmNvZGUoc2VsZik6CiAgICAgICAgIHJldHVybiB7InR5cGUiOiBzZWxmLnR5
cGUsCi0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiB7InBvaW50ZXJUeXBlIjogc2VsZi5u
YW1lfSwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IHsicG9pbnRlclR5cGUiOiBzZWxm
LmtpbmR9LAogICAgICAgICAgICAgICAgICJpZCI6IHNlbGYubmFtZSwKICAgICAgICAgICAgICAg
ICAiYWN0aW9ucyI6IFthY3RzIGZvciBhY3RzIGluIHNlbGYuYWN0aW9uc119CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL2FsZXJ0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hbGVydC5weQppbmRleCBjMzdmZGVlN2Q5OWI0MWNjYjJk
ZTE0ZDJjYjc2YTc5YTM5YTczYjQ4Li42NWU5N2ZjOGM4ZmFhNjBkNzI2MWZkYWRiZDhkMWZmYmE2
NjNhODVmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FsZXJ0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWxlcnQucHkKQEAg
LTEwMywyMCArMTAzLDMgQEAgY2xhc3MgQWxlcnQob2JqZWN0KToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQnOiBrZXlz
VG9TZW5kfSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGUo
Q29tbWFuZC5TRVRfQUxFUlRfVkFMVUUsIHsndGV4dCc6IGtleXNUb1NlbmR9KQotCi0gICAgZGVm
IGF1dGhlbnRpY2F0ZShzZWxmLCB1c2VybmFtZSwgcGFzc3dvcmQpOgotICAgICAgICAiIiIKLSAg
ICAgICAgU2VuZCB0aGUgdXNlcm5hbWUgLyBwYXNzd29yZCB0byBhbiBBdXRoZW50aWNhdGVkIGRp
YWxvZyAobGlrZSB3aXRoIEJhc2ljIEhUVFAgQXV0aCkuCi0gICAgICAgIEltcGxpY2l0bHkgJ2Ns
aWNrcyBvaycKLQotICAgICAgICBVc2FnZTo6Ci0gICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uYWxl
cnQuYXV0aGVudGljYXRlKCdjaGVlc2UnLCAnc2VjcmV0R291ZGEnKQotCi0gICAgICAgIDpBcmdz
OgotICAgICAgICAgLXVzZXJuYW1lOiBzdHJpbmcgdG8gYmUgc2V0IGluIHRoZSB1c2VybmFtZSBz
ZWN0aW9uIG9mIHRoZSBkaWFsb2cKLSAgICAgICAgIC1wYXNzd29yZDogc3RyaW5nIHRvIGJlIHNl
dCBpbiB0aGUgcGFzc3dvcmQgc2VjdGlvbiBvZiB0aGUgZGlhbG9nCi0gICAgICAgICIiIgotICAg
ICAgICBzZWxmLmRyaXZlci5leGVjdXRlKAotICAgICAgICAgICAgQ29tbWFuZC5TRVRfQUxFUlRf
Q1JFREVOVElBTFMsCi0gICAgICAgICAgICB7J3VzZXJuYW1lJzogdXNlcm5hbWUsICdwYXNzd29y
ZCc6IHBhc3N3b3JkfSkKLSAgICAgICAgc2VsZi5hY2NlcHQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9k
ZXNpcmVkX2NhcGFiaWxpdGllcy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZGVzaXJlZF9jYXBhYmlsaXRpZXMucHkKaW5k
ZXggYTFkMDlhNTU3ZTcyMGUyNzU5ZWE4MGEzYWQ0N2Q0N2M2OTExNTkzYi4uNzRjZDBjMDY3YzA5
YjRhMTUwZjQ3N2NmYWMxNDA2NGIwYWZhYzI2MiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kZXNpcmVkX2Nh
cGFiaWxpdGllcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Rlc2lyZWRfY2FwYWJpbGl0aWVzLnB5CkBAIC00OSw3
ICs0OSw2IEBAIGNsYXNzIERlc2lyZWRDYXBhYmlsaXRpZXMob2JqZWN0KToKIAogICAgIEZJUkVG
T1ggPSB7CiAgICAgICAgICJicm93c2VyTmFtZSI6ICJmaXJlZm94IiwKLSAgICAgICAgIm1hcmlv
bmV0dGUiOiBUcnVlLAogICAgICAgICAiYWNjZXB0SW5zZWN1cmVDZXJ0cyI6IFRydWUsCiAgICAg
fQogCkBAIC02Miw3ICs2MSw3IEBAIGNsYXNzIERlc2lyZWRDYXBhYmlsaXRpZXMob2JqZWN0KToK
ICAgICBFREdFID0gewogICAgICAgICAiYnJvd3Nlck5hbWUiOiAiTWljcm9zb2Z0RWRnZSIsCiAg
ICAgICAgICJ2ZXJzaW9uIjogIiIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJXSU5ET1dTIgorICAg
ICAgICAicGxhdGZvcm0iOiAiQU5ZIgogICAgIH0KIAogICAgIENIUk9NRSA9IHsKQEAgLTEyNiwz
ICsxMjUsOSBAQCBjbGFzcyBEZXNpcmVkQ2FwYWJpbGl0aWVzKG9iamVjdCk6CiAgICAgICAgICJ2
ZXJzaW9uIjogIiIsCiAgICAgICAgICJwbGF0Zm9ybSI6ICJBTlkiLAogICAgIH0KKworICAgIFdQ
RVdFQktJVCA9IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogIk1pbmlCcm93c2VyIiwKKyAgICAg
ICAgInZlcnNpb24iOiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjogIkFOWSIsCisgICAgfQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9odG1sNS9hcHBsaWNhdGlvbl9jYWNoZS5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vaHRtbDUvYXBw
bGljYXRpb25fY2FjaGUucHkKaW5kZXggZWNmZTVlMTBkNTFhYjJlMzFlZjEwMmYwZmQ3YjQwZmNm
ZTJiNGQzZi4uNzQ4NzI3NDE0ZWYwYmRmMTU3OTMwYzJjM2I2NTFlODJiNzYyY2VjMSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9odG1sNS9hcHBsaWNhdGlvbl9jYWNoZS5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2h0bWw1L2Fw
cGxpY2F0aW9uX2NhY2hlLnB5CkBAIC0xNiw3ICsxNiw3IEBACiAjIHVuZGVyIHRoZSBMaWNlbnNl
LgogCiAiIiIKLVRoZSBBcHBsaWNhdGlvbkNhY2hlIGltcGxlbWVudGFpb24uCitUaGUgQXBwbGlj
YXRpb25DYWNoZSBpbXBsZW1lbnRhdGlvbi4KICIiIgogCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZl
ci5yZW1vdGUuY29tbWFuZCBpbXBvcnQgQ29tbWFuZApAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBB
cHBsaWNhdGlvbkNhY2hlKG9iamVjdCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZHJpdmVy
KToKICAgICAgICAgIiIiCi0gICAgICAgIENyZWF0ZXMgYSBuZXcgQXBsaWNhdGlvbiBDYWNoZS4K
KyAgICAgICAgQ3JlYXRlcyBhIG5ldyBBcHBsaWNhdGlvbiBDYWNoZS4KIAogICAgICAgICA6QXJn
czoKICAgICAgICAgIC0gZHJpdmVyOiBUaGUgV2ViRHJpdmVyIGluc3RhbmNlIHdoaWNoIHBlcmZv
cm1zIHVzZXIgYWN0aW9ucy4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vb3B0aW9ucy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vb3B0
aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYWIzZjA4MDNjZjAyNzMxNDE4MmM1NWYwNGQ4ZDc1NGQ5YTE5
MGJjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5CkBAIC0wLDAgKzEsNzUgQEAK
KyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5k
ZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRo
ZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25h
bCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMg
bGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZl
cnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBl
eGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4g
YSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp
Y2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh
dyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9V
VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNz
IG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNl
bnNlLgorCitmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKKworCitjbGFz
cyBCYXNlT3B0aW9ucyhvYmplY3QpOgorICAgICIiIgorICAgIEJhc2UgY2xhc3MgZm9yIGluZGl2
aWR1YWwgYnJvd3NlciBvcHRpb25zCisgICAgIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01l
dGEKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fY2FwcyA9IHNlbGYu
ZGVmYXVsdF9jYXBhYmlsaXRpZXMKKyAgICAgICAgc2VsZi5zZXRfY2FwYWJpbGl0eSgicGFnZUxv
YWRTdHJhdGVneSIsICJub3JtYWwiKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNhcGFiaWxp
dGllcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHMKKworICAgIGRlZiBzZXRfY2Fw
YWJpbGl0eShzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICIiIiBTZXRzIGEgY2FwYWJpbGl0
eSAiIiIKKyAgICAgICAgc2VsZi5fY2Fwc1tuYW1lXSA9IHZhbHVlCisKKyAgICBAYWJzdHJhY3Rt
ZXRob2QKKyAgICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgorICAgICAgICByZXR1cm4KKwor
ICAgIEBwcm9wZXJ0eQorICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBkZWZhdWx0X2NhcGFi
aWxpdGllcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHt9CisKKworY2xhc3MgQXJnT3B0aW9ucyhC
YXNlT3B0aW9ucyk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKEFy
Z09wdGlvbnMsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5fYXJndW1lbnRzID0gW10K
KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhcmd1bWVudHMoc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICA6UmV0dXJuczogQSBsaXN0IG9mIGFyZ3VtZW50cyBuZWVkZWQgZm9yIHRoZSBicm93
c2VyCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fYXJndW1lbnRzCisKKyAgICBk
ZWYgYWRkX2FyZ3VtZW50KHNlbGYsIGFyZ3VtZW50KToKKyAgICAgICAgIiIiCisgICAgICAgIEFk
ZHMgYW4gYXJndW1lbnQgdG8gdGhlIGxpc3QKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0g
U2V0cyB0aGUgYXJndW1lbnRzCisgICAgICAgICIiIgorICAgICAgICBpZiBhcmd1bWVudDoKKyAg
ICAgICAgICAgIHNlbGYuX2FyZ3VtZW50cy5hcHBlbmQoYXJndW1lbnQpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdhcmd1bWVudCBjYW4gbm90IGJlIG51bGwn
KQorCisgICAgZGVmIHRvX2NhcGFiaWxpdGllcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2NhcHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vcHJveHkucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Byb3h5LnB5CmluZGV4IGNj
ZDM2MmFmNjI3MzMwNTczMWRiMTk0NGY4YmUxZTI1ZjdhMmEyZTYuLjJkZDExYTdiMTYyYWQ4N2Jj
ZWRjOGIyOTMyZDMxNmI4MmI0YmI0N2EgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcHJveHkucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9wcm94eS5weQpAQCAtNzcsNiArNzcsNyBAQCBjbGFzcyBQcm94eShvYmplY3QpOgogICAg
IHNvY2tzUHJveHkgPSAnJwogICAgIHNvY2tzVXNlcm5hbWUgPSAnJwogICAgIHNvY2tzUGFzc3dv
cmQgPSAnJworICAgIHNvY2tzVmVyc2lvbiA9IE5vbmUKIAogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByYXc9Tm9uZSk6CiAgICAgICAgICIiIgpAQCAtMTA2LDYgKzEwNyw4IEBAIGNsYXNzIFByb3h5
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5zb2Nrc191c2VybmFtZSA9IHJhd1snc29j
a3NVc2VybmFtZSddCiAgICAgICAgICAgICBpZiAnc29ja3NQYXNzd29yZCcgaW4gcmF3IGFuZCBy
YXdbJ3NvY2tzUGFzc3dvcmQnXSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBzZWxmLnNv
Y2tzX3Bhc3N3b3JkID0gcmF3Wydzb2Nrc1Bhc3N3b3JkJ10KKyAgICAgICAgICAgIGlmICdzb2Nr
c1ZlcnNpb24nIGluIHJhdyBhbmQgcmF3Wydzb2Nrc1ZlcnNpb24nXSBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgICAgICBzZWxmLnNvY2tzX3ZlcnNpb24gPSByYXdbJ3NvY2tzVmVyc2lvbiddCiAK
ICAgICBAcHJvcGVydHkKICAgICBkZWYgcHJveHlfdHlwZShzZWxmKToKQEAgLTMwMCw2ICszMDMs
MjUgQEAgY2xhc3MgUHJveHkob2JqZWN0KToKICAgICAgICAgc2VsZi5wcm94eVR5cGUgPSBQcm94
eVR5cGUuTUFOVUFMCiAgICAgICAgIHNlbGYuc29ja3NQYXNzd29yZCA9IHZhbHVlCiAKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgc29ja3NfdmVyc2lvbihzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFJldHVybnMgc29ja3MgcHJveHkgdmVyc2lvbiBzZXR0aW5nLgorICAgICAgICAiIiIKKyAg
ICAgICAgcmV0dXJuIHNlbGYuc29ja3NWZXJzaW9uCisKKyAgICBAc29ja3NfdmVyc2lvbi5zZXR0
ZXIKKyAgICBkZWYgc29ja3NfdmVyc2lvbihzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAg
ICAgICBTZXRzIHNvY2tzIHByb3h5IHZlcnNpb24gc2V0dGluZy4KKworICAgICAgICA6QXJnczoK
KyAgICAgICAgIC0gdmFsdWU6IFRoZSBzb2NrcyBwcm94eSB2ZXJzaW9uIHZhbHVlLgorICAgICAg
ICAiIiIKKyAgICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5X3R5cGVfY29tcGF0aWJpbGl0eShQcm94
eVR5cGUuTUFOVUFMKQorICAgICAgICBzZWxmLnByb3h5VHlwZSA9IFByb3h5VHlwZS5NQU5VQUwK
KyAgICAgICAgc2VsZi5zb2Nrc1ZlcnNpb24gPSB2YWx1ZQorCiAgICAgZGVmIF92ZXJpZnlfcHJv
eHlfdHlwZV9jb21wYXRpYmlsaXR5KHNlbGYsIGNvbXBhdGlibGVQcm94eSk6CiAgICAgICAgIGlm
IHNlbGYucHJveHlUeXBlICE9IFByb3h5VHlwZS5VTlNQRUNJRklFRCBhbmQgc2VsZi5wcm94eVR5
cGUgIT0gY29tcGF0aWJsZVByb3h5OgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCIgU3Bl
Y2lmaWVkIHByb3h5IHR5cGUgKCVzKSBub3QgY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2V0dGlu
ZyAoJXMpIiAlIChjb21wYXRpYmxlUHJveHksIHNlbGYucHJveHlUeXBlKSkKQEAgLTMzMSw0ICsz
NTMsNiBAQCBjbGFzcyBQcm94eShvYmplY3QpOgogICAgICAgICAgICAgcHJveHlfY2Fwc1snc29j
a3NVc2VybmFtZSddID0gc2VsZi5zb2Nrc1VzZXJuYW1lCiAgICAgICAgIGlmIHNlbGYuc29ja3NQ
YXNzd29yZDoKICAgICAgICAgICAgIHByb3h5X2NhcHNbJ3NvY2tzUGFzc3dvcmQnXSA9IHNlbGYu
c29ja3NQYXNzd29yZAorICAgICAgICBpZiBzZWxmLnNvY2tzVmVyc2lvbjoKKyAgICAgICAgICAg
IHByb3h5X2NhcHNbJ3NvY2tzVmVyc2lvbiddID0gc2VsZi5zb2Nrc1ZlcnNpb24KICAgICAgICAg
Y2FwYWJpbGl0aWVzWydwcm94eSddID0gcHJveHlfY2FwcwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90aW1l
b3V0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vdGltZW91dHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ0MGIwZjAzNWFkZDJkZjRj
YWEwNWY2MmVmZTMwM2Y3YjMxYjkxNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdGltZW91dHMu
cHkKQEAgLTAsMCArMSw5NCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBD
b25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhp
cyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vu
c2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVp
cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2Fy
ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAi
QVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
CisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlv
bnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2NsYXNzIFRpbWVvdXRzKG9iamVjdCk6CisgICAg
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGltcGxpY2l0X3dhaXQ9Tm9uZSwgcGFnZV9sb2FkPU5v
bmUsIHNjcmlwdD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZSBhIG5ldyBUaW1l
b3V0IG9iamVjdC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gaW1wbGljaXRfd2FpdCAt
IEVpdGhlciBhbiBpbnQgb3IgYSBmbG9hdC4gVGhlIG51bWJlciBwYXNzZWQgaW4gbmVlZHMgdG8g
aG93IG1hbnkgCisgICAgICAgICAgICBzZWNvbmRzIHRoZSBkcml2ZXIgd2lsbCB3YWl0LgorICAg
ICAgICAgLSBwYWdlX2xvYWQgLSBFaXRoZXIgYW4gaW50IG9yIGEgZmxvYXQuIFRoZSBudW1iZXIg
cGFzc2VkIGluIG5lZWRzIHRvIGhvdyBtYW55IAorICAgICAgICAgICAgc2Vjb25kcyB0aGUgZHJp
dmVyIHdpbGwgd2FpdC4KKyAgICAgICAgIC0gc2NyaXB0IC0gRWl0aGVyIGFuIGludCBvciBhIGZs
b2F0LiBUaGUgbnVtYmVyIHBhc3NlZCBpbiBuZWVkcyB0byBob3cgbWFueSAKKyAgICAgICAgICAg
IHNlY29uZHMgdGhlIGRyaXZlciB3aWxsIHdhaXQuCisgICAgICAgICIiIgorICAgICAgICBzZWxm
Ll9pbXBsaWNpdF93YWl0ID0gc2VsZi5fY29udmVydChpbXBsaWNpdF93YWl0KQorICAgICAgICBz
ZWxmLl9wYWdlX2xvYWQgPSBzZWxmLl9jb252ZXJ0KHBhZ2VfbG9hZCkKKyAgICAgICAgc2VsZi5f
c2NyaXB0ID0gc2VsZi5fY29udmVydChzY3JpcHQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
aW1wbGljaXRfd2FpdChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0aGUgdmFs
dWUgZm9yIHRoZSBpbXBsaWNpdCB3YWl0LiBUaGlzIGRvZXMgbm90IHJldHVybiB0aGUgdmFsdWUg
b24gdGhlIHJlbW90ZSBlbmQKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9pbXBs
aWNpdF93YWl0IC8gMTAwMAorCisgICAgQGltcGxpY2l0X3dhaXQuc2V0dGVyCisgICAgZGVmIGlt
cGxpY2l0X3dhaXQoc2VsZiwgX2ltcGxpY2l0X3dhaXQpOgorICAgICAgICAiIiIKKyAgICAgICAg
U2V0cyB0aGUgdmFsdWUgZm9yIHRoZSBpbXBsaWNpdCB3YWl0LiBUaGlzIGRvZXMgbm90IHNldCB0
aGUgdmFsdWUgb24gdGhlIHJlbW90ZSBlbmQKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2lt
cGxpY2l0X3dhaXQgPSBzZWxmLl9jb252ZXJ0KF9pbXBsaWNpdF93YWl0KQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHBhZ2VfbG9hZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVy
biB0aGUgdmFsdWUgZm9yIHRoZSBwYWdlIGxvYWQgd2FpdC4gVGhpcyBkb2VzIG5vdCByZXR1cm4g
dGhlIHZhbHVlIG9uIHRoZSByZW1vdGUgZW5kCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5fcGFnZV9sb2FkIC8gMTAwMAorCisgICAgQHBhZ2VfbG9hZC5zZXR0ZXIKKyAgICBkZWYg
cGFnZV9sb2FkKHNlbGYsIF9wYWdlX2xvYWQpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyB0
aGUgdmFsdWUgZm9yIHRoZSBwYWdlIGxvYWQgd2FpdC4gVGhpcyBkb2VzIG5vdCBzZXQgdGhlIHZh
bHVlIG9uIHRoZSByZW1vdGUgZW5kCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9wYWdlX2xv
YWQgPSBzZWxmLl9jb252ZXJ0KF9wYWdlX2xvYWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
c2NyaXB0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBmb3Ig
dGhlIHNjcmlwdCB3YWl0LiBUaGlzIGRvZXMgbm90IHJldHVybiB0aGUgdmFsdWUgb24gdGhlIHJl
bW90ZSBlbmQKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9zY3JpcHQgLyAxMDAw
CisKKyAgICBAc2NyaXB0LnNldHRlcgorICAgIGRlZiBzY3JpcHQoc2VsZiwgX3NjcmlwdCk6Cisg
ICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSB2YWx1ZSBmb3IgdGhlIHNjcmlwdCB3YWl0LiBU
aGlzIGRvZXMgbm90IHNldCB0aGUgdmFsdWUgb24gdGhlIHJlbW90ZSBlbmQKKyAgICAgICAgIiIi
CisgICAgICAgIHNlbGYuX3NjcmlwdCA9IHNlbGYuX2NvbnZlcnQoX3NjcmlwdCkKKworICAgIGRl
ZiBfY29udmVydChzZWxmLCB0aW1lb3V0KToKKyAgICAgICAgaWYgdGltZW91dCBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodGltZW91dCwgKGludCwgZmxvYXQpKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gaW50KGZsb2F0KHRpbWVvdXQpICogMTAwMCkKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJUaW1lb3V0cyBjYW4g
b25seSBiZSBhbiBpbnQgb3IgYSBmbG9hdCIpCisKKyAgICBkZWYgX3RvX2pzb24oc2VsZik6Cisg
ICAgICAgIHRpbWVvdXRzID0ge30KKyAgICAgICAgaWYgc2VsZi5faW1wbGljaXRfd2FpdCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHRpbWVvdXRzWyJpbXBsaWNpdCJdID0gc2VsZi5faW1wbGlj
aXRfd2FpdAorICAgICAgICBpZiBzZWxmLl9wYWdlX2xvYWQgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICB0aW1lb3V0c1sicGFnZUxvYWQiXSA9IHNlbGYuX3BhZ2VfbG9hZAorICAgICAgICBpZiBz
ZWxmLl9zY3JpcHQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0aW1lb3V0c1sic2NyaXB0Il0g
PSBzZWxmLl9zY3JpcHQKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0aW1lb3V0cwpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi91dGlscy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkKaW5kZXggM2I0NDNkYTJhNWFjYmJj
NmRmY2E1YjQzZjRhZGMzZGVlMzk4NDg3Yi4uOTU3ZjJmZDI2Njk5ODEwOTY2ZmEwMzBhZGYxZmMx
ZWE2YjUwMTdiZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi91dGlscy5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5
CkBAIC0yMiwxMCArMjIsMTMgQEAgaW1wb3J0IHNvY2tldAogZnJvbSBzZWxlbml1bS53ZWJkcml2
ZXIuY29tbW9uLmtleXMgaW1wb3J0IEtleXMKIAogdHJ5OgorICAgICMgUHl0aG9uIDIKICAgICBi
YXNlc3RyaW5nCisgICAgX2lzX2Nvbm5lY3RhYmxlX2V4Y2VwdGlvbnMgPSAoc29ja2V0LmVycm9y
LCkKIGV4Y2VwdCBOYW1lRXJyb3I6CiAgICAgIyBQeXRob24gMwogICAgIGJhc2VzdHJpbmcgPSBz
dHIKKyAgICBfaXNfY29ubmVjdGFibGVfZXhjZXB0aW9ucyA9IChzb2NrZXQuZXJyb3IsIENvbm5l
Y3Rpb25SZXNldEVycm9yKQogCiAKIGRlZiBmcmVlX3BvcnQoKToKQEAgLTEwNSw3ICsxMDgsNyBA
QCBkZWYgaXNfY29ubmVjdGFibGUocG9ydCwgaG9zdD0ibG9jYWxob3N0Iik6CiAgICAgdHJ5Ogog
ICAgICAgICBzb2NrZXRfID0gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKChob3N0LCBwb3J0KSwg
MSkKICAgICAgICAgcmVzdWx0ID0gVHJ1ZQotICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAg
ZXhjZXB0IF9pc19jb25uZWN0YWJsZV9leGNlcHRpb25zOgogICAgICAgICByZXN1bHQgPSBGYWxz
ZQogICAgIGZpbmFsbHk6CiAgICAgICAgIGlmIHNvY2tldF86CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dp
bmRvdy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vd2luZG93LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczZjU5OThjZDg1M2NhMmFhZTUx
NWJiYjQxNTY1ZmY5YTI3NmU3MDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvdy5weQpA
QCAtMCwwICsxLDI5IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNl
cnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdy
ZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdv
cmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25l
cnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90
IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4g
IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJ
UyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwor
IyB1bmRlciB0aGUgTGljZW5zZS4KKworIiIiCitUaGUgV2luZG93VHlwZXMgaW1wbGVtZW50YXRp
b24uCisiIiIKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisKKwor
Y2xhc3MgV2luZG93VHlwZXMob2JqZWN0KToKKyAgICAiIiJTZXQgb2Ygc3VwcG9ydGVkIHdpbmRv
dyB0eXBlcy4iIiIKKworICAgIFRBQiA9ICd0YWInCisgICAgV0lORE9XID0gJ3dpbmRvdycKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9yZW1vdGUvY29tbWFuZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvY29tbWFuZC5weQppbmRleCBlMmY3ZWRi
ZGJjNGUzMTdjNzM0Nzk5OGFkZmJlOTMzODQ2ODA1ODAwLi4xYTUzZThhMjgzOTZhNWFkNjZhNzVi
OGIxOWIxODgzOWU2ZTQ5NTE2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2NvbW1hbmQucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90
ZS9jb21tYW5kLnB5CkBAIC0zNCw2ICszNCw3IEBAIGNsYXNzIENvbW1hbmQob2JqZWN0KToKICAg
ICBORVdfU0VTU0lPTiA9ICJuZXdTZXNzaW9uIgogICAgIEdFVF9BTExfU0VTU0lPTlMgPSAiZ2V0
QWxsU2Vzc2lvbnMiCiAgICAgREVMRVRFX1NFU1NJT04gPSAiZGVsZXRlU2Vzc2lvbiIKKyAgICBO
RVdfV0lORE9XID0gIm5ld1dpbmRvdyIKICAgICBDTE9TRSA9ICJjbG9zZSIKICAgICBRVUlUID0g
InF1aXQiCiAgICAgR0VUID0gImdldCIKQEAgLTk0LDEzICs5NSwxMyBAQCBjbGFzcyBDb21tYW5k
KG9iamVjdCk6CiAgICAgR0VUX0VMRU1FTlRfQVRUUklCVVRFID0gImdldEVsZW1lbnRBdHRyaWJ1
dGUiCiAgICAgR0VUX0VMRU1FTlRfUFJPUEVSVFkgPSAiZ2V0RWxlbWVudFByb3BlcnR5IgogICAg
IEdFVF9FTEVNRU5UX1ZBTFVFX09GX0NTU19QUk9QRVJUWSA9ICJnZXRFbGVtZW50VmFsdWVPZkNz
c1Byb3BlcnR5IgotICAgIEVMRU1FTlRfRVFVQUxTID0gImVsZW1lbnRFcXVhbHMiCiAgICAgU0NS
RUVOU0hPVCA9ICJzY3JlZW5zaG90IgogICAgIEVMRU1FTlRfU0NSRUVOU0hPVCA9ICJlbGVtZW50
U2NyZWVuc2hvdCIKICAgICBJTVBMSUNJVF9XQUlUID0gImltcGxpY2l0bHlXYWl0IgogICAgIEVY
RUNVVEVfQVNZTkNfU0NSSVBUID0gImV4ZWN1dGVBc3luY1NjcmlwdCIKICAgICBTRVRfU0NSSVBU
X1RJTUVPVVQgPSAic2V0U2NyaXB0VGltZW91dCIKICAgICBTRVRfVElNRU9VVFMgPSAic2V0VGlt
ZW91dHMiCisgICAgR0VUX1RJTUVPVVRTID0gImdldFRpbWVvdXRzIgogICAgIE1BWElNSVpFX1dJ
TkRPVyA9ICJ3aW5kb3dNYXhpbWl6ZSIKICAgICBXM0NfTUFYSU1JWkVfV0lORE9XID0gInczY01h
eGltaXplV2luZG93IgogICAgIEdFVF9MT0cgPSAiZ2V0TG9nIgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9l
cnJvcmhhbmRsZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvcmVtb3RlL2Vycm9yaGFuZGxlci5weQppbmRleCBlMTg0Yzk0Y2Y2ZjYw
Y2QyYzdhZWZjNzI0Njc5NWQ3MzlhZWY3M2E0Li40ZDBhMmJkNzU1Y2NiOWMwMGE2YmEwNzg0Yzhl
MTczM2RlNGQwY2ZmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2Vycm9yaGFuZGxlci5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3Rl
L2Vycm9yaGFuZGxlci5weQpAQCAtMTksNyArMTksNiBAQCBmcm9tIHNlbGVuaXVtLmNvbW1vbi5l
eGNlcHRpb25zIGltcG9ydCAoRWxlbWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxlbWVudE5vdEludGVyYWN0YWJs
ZUV4Y2VwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbGVt
ZW50Tm90U2VsZWN0YWJsZUV4Y2VwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFbGVtZW50Tm90VmlzaWJsZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFcnJvckluUmVzcG9uc2VFeGNlcHRpb24sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zZWN1cmVDZXJ0aWZpY2F0ZUV4Y2Vw
dGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZhbGlkQ29v
cmRpbmF0ZXNFeGNlcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbiwKQEAgLTEzNyw3ICsxMzYsNiBAQCBjbGFz
cyBFcnJvckhhbmRsZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJv
cjoKICAgICAgICAgICAgICAgICAgICAgcGFzcwogCi0gICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9
IEVycm9ySW5SZXNwb25zZUV4Y2VwdGlvbgogICAgICAgICBpZiBzdGF0dXMgaW4gRXJyb3JDb2Rl
Lk5PX1NVQ0hfRUxFTUVOVDoKICAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24KICAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLk5PX1NVQ0hf
RlJBTUU6CkBAIC0yMDMsOCArMjAxLDYgQEAgY2xhc3MgRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAg
ICAgICAgIGlmIHZhbHVlID09ICcnIG9yIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgICB2YWx1
ZSA9IHJlc3BvbnNlWyd2YWx1ZSddCiAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGJhc2Vz
dHJpbmcpOgotICAgICAgICAgICAgaWYgZXhjZXB0aW9uX2NsYXNzID09IEVycm9ySW5SZXNwb25z
ZUV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICByYWlzZSBleGNlcHRpb25fY2xhc3MocmVzcG9u
c2UsIHZhbHVlKQogICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9uX2NsYXNzKHZhbHVlKQogICAg
ICAgICBpZiBtZXNzYWdlID09ICIiIGFuZCAnbWVzc2FnZScgaW4gdmFsdWU6CiAgICAgICAgICAg
ICBtZXNzYWdlID0gdmFsdWVbJ21lc3NhZ2UnXQpAQCAtMjE0LDI1ICsyMTAsMjcgQEAgY2xhc3Mg
RXJyb3JIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICBzY3JlZW4gPSB2YWx1ZVsnc2NyZWVu
J10KIAogICAgICAgICBzdGFja3RyYWNlID0gTm9uZQotICAgICAgICBpZiAnc3RhY2tUcmFjZScg
aW4gdmFsdWUgYW5kIHZhbHVlWydzdGFja1RyYWNlJ106Ci0gICAgICAgICAgICBzdGFja3RyYWNl
ID0gW10KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBmb3IgZnJhbWUgaW4gdmFs
dWVbJ3N0YWNrVHJhY2UnXToKLSAgICAgICAgICAgICAgICAgICAgbGluZSA9IHNlbGYuX3ZhbHVl
X29yX2RlZmF1bHQoZnJhbWUsICdsaW5lTnVtYmVyJywgJycpCi0gICAgICAgICAgICAgICAgICAg
IGZpbGUgPSBzZWxmLl92YWx1ZV9vcl9kZWZhdWx0KGZyYW1lLCAnZmlsZU5hbWUnLCAnPGFub255
bW91cz4nKQotICAgICAgICAgICAgICAgICAgICBpZiBsaW5lOgotICAgICAgICAgICAgICAgICAg
ICAgICAgZmlsZSA9ICIlczolcyIgJSAoZmlsZSwgbGluZSkKLSAgICAgICAgICAgICAgICAgICAg
bWV0aCA9IHNlbGYuX3ZhbHVlX29yX2RlZmF1bHQoZnJhbWUsICdtZXRob2ROYW1lJywgJzxhbm9u
eW1vdXM+JykKLSAgICAgICAgICAgICAgICAgICAgaWYgJ2NsYXNzTmFtZScgaW4gZnJhbWU6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBtZXRoID0gIiVzLiVzIiAlIChmcmFtZVsnY2xhc3NOYW1l
J10sIG1ldGgpCi0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICIgICAgYXQgJXMgKCVzKSIKLSAg
ICAgICAgICAgICAgICAgICAgbXNnID0gbXNnICUgKG1ldGgsIGZpbGUpCi0gICAgICAgICAgICAg
ICAgICAgIHN0YWNrdHJhY2UuYXBwZW5kKG1zZykKLSAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJy
b3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICBpZiBleGNlcHRpb25fY2xhc3MgPT0g
RXJyb3JJblJlc3BvbnNlRXhjZXB0aW9uOgotICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9uX2Ns
YXNzKHJlc3BvbnNlLCBtZXNzYWdlKQotICAgICAgICBlbGlmIGV4Y2VwdGlvbl9jbGFzcyA9PSBV
bmV4cGVjdGVkQWxlcnRQcmVzZW50RXhjZXB0aW9uOgorICAgICAgICBzdF92YWx1ZSA9IHZhbHVl
LmdldCgnc3RhY2tUcmFjZScpIG9yIHZhbHVlLmdldCgnc3RhY2t0cmFjZScpCisgICAgICAgIGlm
IHN0X3ZhbHVlOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzdF92YWx1ZSwgYmFzZXN0cmlu
Zyk6CisgICAgICAgICAgICAgICAgc3RhY2t0cmFjZSA9IHN0X3ZhbHVlLnNwbGl0KCdcbicpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHN0YWNrdHJhY2UgPSBbXQorICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZm9yIGZyYW1lIGluIHN0X3ZhbHVl
OgorICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IHNlbGYuX3ZhbHVlX29yX2RlZmF1bHQo
ZnJhbWUsICdsaW5lTnVtYmVyJywgJycpCisgICAgICAgICAgICAgICAgICAgICAgICBmaWxlID0g
c2VsZi5fdmFsdWVfb3JfZGVmYXVsdChmcmFtZSwgJ2ZpbGVOYW1lJywgJzxhbm9ueW1vdXM+JykK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxpbmU6CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmlsZSA9ICIlczolcyIgJSAoZmlsZSwgbGluZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1ldGggPSBzZWxmLl92YWx1ZV9vcl9kZWZhdWx0KGZyYW1lLCAnbWV0aG9kTmFtZScsICc8
YW5vbnltb3VzPicpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAnY2xhc3NOYW1lJyBpbiBm
cmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRoID0gIiVzLiVzIiAlIChmcmFt
ZVsnY2xhc3NOYW1lJ10sIG1ldGgpCisgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSAiICAg
IGF0ICVzICglcykiCisgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBtc2cgJSAobWV0aCwg
ZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrdHJhY2UuYXBwZW5kKG1zZykKKyAg
ICAgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgIGlmIGV4Y2VwdGlvbl9jbGFzcyA9PSBVbmV4cGVjdGVkQWxlcnRQcmVzZW50RXhj
ZXB0aW9uOgogICAgICAgICAgICAgYWxlcnRfdGV4dCA9IE5vbmUKICAgICAgICAgICAgIGlmICdk
YXRhJyBpbiB2YWx1ZToKICAgICAgICAgICAgICAgICBhbGVydF90ZXh0ID0gdmFsdWVbJ2RhdGEn
XS5nZXQoJ3RleHQnKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVfY29ubmVjdGlvbi5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1v
dGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkKaW5kZXggM2QyMmUyN2MxZWNjZWUzOTMxMWIzYTZiOTk0
MGNiZTE3YWNlNjAxOC4uOTA5NTFjNjgyMTgxYjVlNjFlY2UwMDU3NGI0YWZmNTg4MjEzZWM2NCAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVfY29ubmVjdGlvbi5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9j
b25uZWN0aW9uLnB5CkBAIC0xNSwyMSArMTUsMTkgQEAKICMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogIyB1bmRlciB0aGUgTGljZW5zZS4K
IAoraW1wb3J0IGJhc2U2NAogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBwbGF0Zm9ybQogaW1wb3J0
IHNvY2tldAogaW1wb3J0IHN0cmluZwotaW1wb3J0IGJhc2U2NAorCitpbXBvcnQgdXJsbGliMwog
CiB0cnk6Ci0gICAgaW1wb3J0IGh0dHAuY2xpZW50IGFzIGh0dHBsaWIKLSAgICBmcm9tIHVybGxp
YiBpbXBvcnQgcmVxdWVzdCBhcyB1cmxfcmVxdWVzdAogICAgIGZyb20gdXJsbGliIGltcG9ydCBw
YXJzZQogZXhjZXB0IEltcG9ydEVycm9yOiAgIyBhYm92ZSBpcyBhdmFpbGFibGUgaW4gcHkzKywg
YmVsb3cgaXMgcHkyLjcKLSAgICBpbXBvcnQgaHR0cGxpYiBhcyBodHRwbGliCi0gICAgaW1wb3J0
IHVybGxpYjIgYXMgdXJsX3JlcXVlc3QKICAgICBpbXBvcnQgdXJscGFyc2UgYXMgcGFyc2UKLQot
ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uIGltcG9ydCB1dGlscyBhcyBjb21tb25fdXRp
bHMKK2Zyb20gc2VsZW5pdW0gaW1wb3J0IF9fdmVyc2lvbl9fCiBmcm9tIC5jb21tYW5kIGltcG9y
dCBDb21tYW5kCiBmcm9tIC5lcnJvcmhhbmRsZXIgaW1wb3J0IEVycm9yQ29kZQogZnJvbSAuIGlt
cG9ydCB1dGlscwpAQCAtMzcsMTA0ICszNSwxMyBAQCBmcm9tIC4gaW1wb3J0IHV0aWxzCiBMT0dH
RVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCi1jbGFzcyBSZXF1ZXN0KHVybF9y
ZXF1ZXN0LlJlcXVlc3QpOgotICAgICIiIgotICAgIEV4dGVuZHMgdGhlIHVybF9yZXF1ZXN0LlJl
cXVlc3QgdG8gc3VwcG9ydCBhbGwgSFRUUCByZXF1ZXN0IHR5cGVzLgotICAgICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHVybCwgZGF0YT1Ob25lLCBtZXRob2Q9Tm9uZSk6Ci0gICAgICAg
ICIiIgotICAgICAgICBJbml0aWFsaXNlIGEgbmV3IEhUVFAgcmVxdWVzdC4KLQotICAgICAgICA6
QXJnczoKLSAgICAgICAgICAgIC0gdXJsIC0gU3RyaW5nIGZvciB0aGUgVVJMIHRvIHNlbmQgdGhl
IHJlcXVlc3QgdG8uCi0gICAgICAgICAgICAtIGRhdGEgLSBEYXRhIHRvIHNlbmQgd2l0aCB0aGUg
cmVxdWVzdC4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIG1ldGhvZCBpcyBOb25lOgotICAgICAg
ICAgICAgbWV0aG9kID0gZGF0YSBpcyBub3QgTm9uZSBhbmQgJ1BPU1QnIG9yICdHRVQnCi0gICAg
ICAgIGVsaWYgbWV0aG9kICE9ICdQT1NUJyBhbmQgbWV0aG9kICE9ICdQVVQnOgotICAgICAgICAg
ICAgZGF0YSA9IE5vbmUKLSAgICAgICAgc2VsZi5fbWV0aG9kID0gbWV0aG9kCi0gICAgICAgIHVy
bF9yZXF1ZXN0LlJlcXVlc3QuX19pbml0X18oc2VsZiwgdXJsLCBkYXRhPWRhdGEpCi0KLSAgICBk
ZWYgZ2V0X21ldGhvZChzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFJldHVybnMgdGhlIEhU
VFAgbWV0aG9kIHVzZWQgYnkgdGhpcyByZXF1ZXN0LgotICAgICAgICAiIiIKLSAgICAgICAgcmV0
dXJuIHNlbGYuX21ldGhvZAotCi0KLWNsYXNzIFJlc3BvbnNlKG9iamVjdCk6Ci0gICAgIiIiCi0g
ICAgUmVwcmVzZW50cyBhbiBIVFRQIHJlc3BvbnNlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGZwLCBjb2RlLCBoZWFkZXJzLCB1cmwpOgotICAgICAgICAiIiIKLSAgICAgICAg
SW5pdGlhbGlzZSBhIG5ldyBSZXNwb25zZS4KLQotICAgICAgICA6QXJnczoKLSAgICAgICAgICAg
IC0gZnAgLSBUaGUgcmVzcG9uc2UgYm9keSBmaWxlIG9iamVjdC4KLSAgICAgICAgICAgIC0gY29k
ZSAtIFRoZSBIVFRQIHN0YXR1cyBjb2RlIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIuCi0gICAgICAg
ICAgICAtIGhlYWRlcnMgLSBBIGRpY3Rpb25hcnkgb2YgaGVhZGVycyByZXR1cm5lZCBieSB0aGUg
c2VydmVyLgotICAgICAgICAgICAgLSB1cmwgLSBVUkwgb2YgdGhlIHJldHJpZXZlZCByZXNvdXJj
ZSByZXByZXNlbnRlZCBieSB0aGlzIFJlc3BvbnNlLgotICAgICAgICAiIiIKLSAgICAgICAgc2Vs
Zi5mcCA9IGZwCi0gICAgICAgIHNlbGYucmVhZCA9IGZwLnJlYWQKLSAgICAgICAgc2VsZi5jb2Rl
ID0gY29kZQotICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzCi0gICAgICAgIHNlbGYudXJs
ID0gdXJsCi0KLSAgICBkZWYgY2xvc2Uoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBDbG9z
ZSB0aGUgcmVzcG9uc2UgYm9keSBmaWxlIG9iamVjdC4KLSAgICAgICAgIiIiCi0gICAgICAgIHNl
bGYucmVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5mcCA9IE5vbmUKLQotICAgIGRlZiBpbmZvKHNl
bGYpOgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJucyB0aGUgcmVzcG9uc2UgaGVhZGVycy4K
LSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmhlYWRlcnMKLQotICAgIGRlZiBnZXR1
cmwoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm5zIHRoZSBVUkwgZm9yIHRoZSBy
ZXNvdXJjZSByZXR1cm5lZCBpbiB0aGlzIHJlc3BvbnNlLgotICAgICAgICAiIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYudXJsCi0KLQotY2xhc3MgSHR0cEVycm9ySGFuZGxlcih1cmxfcmVxdWVzdC5I
VFRQRGVmYXVsdEVycm9ySGFuZGxlcik6Ci0gICAgIiIiCi0gICAgQSBjdXN0b20gSFRUUCBlcnJv
ciBoYW5kbGVyLgotCi0gICAgVXNlZCB0byByZXR1cm4gUmVzcG9uc2Ugb2JqZWN0cyBpbnN0ZWFk
IG9mIHJhaXNpbmcgYW4gSFRUUEVycm9yIGV4Y2VwdGlvbi4KLSAgICAiIiIKLQotICAgIGRlZiBo
dHRwX2Vycm9yX2RlZmF1bHQoc2VsZiwgcmVxLCBmcCwgY29kZSwgbXNnLCBoZWFkZXJzKToKLSAg
ICAgICAgIiIiCi0gICAgICAgIERlZmF1bHQgSFRUUCBlcnJvciBoYW5kbGVyLgotCi0gICAgICAg
IDpBcmdzOgotICAgICAgICAgICAgLSByZXEgLSBUaGUgb3JpZ2luYWwgUmVxdWVzdCBvYmplY3Qu
Ci0gICAgICAgICAgICAtIGZwIC0gVGhlIHJlc3BvbnNlIGJvZHkgZmlsZSBvYmplY3QuCi0gICAg
ICAgICAgICAtIGNvZGUgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSByZXR1cm5lZCBieSB0aGUgc2Vy
dmVyLgotICAgICAgICAgICAgLSBtc2cgLSBUaGUgSFRUUCBzdGF0dXMgbWVzc2FnZSByZXR1cm5l
ZCBieSB0aGUgc2VydmVyLgotICAgICAgICAgICAgLSBoZWFkZXJzIC0gVGhlIHJlc3BvbnNlIGhl
YWRlcnMuCi0KLSAgICAgICAgOlJldHVybnM6Ci0gICAgICAgICAgICBBIG5ldyBSZXNwb25zZSBv
YmplY3QuCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gUmVzcG9uc2UoZnAsIGNvZGUsIGhl
YWRlcnMsIHJlcS5nZXRfZnVsbF91cmwoKSkKLQotCiBjbGFzcyBSZW1vdGVDb25uZWN0aW9uKG9i
amVjdCk6CiAgICAgIiIiQSBjb25uZWN0aW9uIHdpdGggdGhlIFJlbW90ZSBXZWJEcml2ZXIgc2Vy
dmVyLgogCiAgICAgQ29tbXVuaWNhdGVzIHdpdGggdGhlIHNlcnZlciB1c2luZyB0aGUgV2ViRHJp
dmVyIHdpcmUgcHJvdG9jb2w6CiAgICAgaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtSFEvc2Vs
ZW5pdW0vd2lraS9Kc29uV2lyZVByb3RvY29sIiIiCiAKKyAgICBicm93c2VyX25hbWUgPSBOb25l
CiAgICAgX3RpbWVvdXQgPSBzb2NrZXQuX0dMT0JBTF9ERUZBVUxUX1RJTUVPVVQKIAogICAgIEBj
bGFzc21ldGhvZApAQCAtMTcyLDEwICs3OSwxNCBAQCBjbGFzcyBSZW1vdGVDb25uZWN0aW9uKG9i
amVjdCk6CiAgICAgICAgICAtIGtlZXBfYWxpdmUgKEJvb2xlYW4pIC0gSXMgdGhpcyBhIGtlZXAt
YWxpdmUgY29ubmVjdGlvbiAoZGVmYXVsdDogRmFsc2UpCiAgICAgICAgICIiIgogCisgICAgICAg
IHN5c3RlbSA9IHBsYXRmb3JtLnN5c3RlbSgpLmxvd2VyKCkKKyAgICAgICAgaWYgc3lzdGVtID09
ICJkYXJ3aW4iOgorICAgICAgICAgICAgc3lzdGVtID0gIm1hYyIKKwogICAgICAgICBoZWFkZXJz
ID0gewogICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICAg
ICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04JywKLSAg
ICAgICAgICAgICdVc2VyLUFnZW50JzogJ1B5dGhvbiBodHRwIGF1dGgnCisgICAgICAgICAgICAn
VXNlci1BZ2VudCc6ICdzZWxlbml1bS97fSAocHl0aG9uIHt9KScuZm9ybWF0KF9fdmVyc2lvbl9f
LCBzeXN0ZW0pCiAgICAgICAgIH0KIAogICAgICAgICBpZiBwYXJzZWRfdXJsLnVzZXJuYW1lOgpA
QCAtMTkxLDQ1ICsxMDIsMTYgQEAgY2xhc3MgUmVtb3RlQ29ubmVjdGlvbihvYmplY3QpOgogCiAg
ICAgICAgIHJldHVybiBoZWFkZXJzCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVtb3RlX3Nl
cnZlcl9hZGRyLCBrZWVwX2FsaXZlPUZhbHNlLCByZXNvbHZlX2lwPVRydWUpOgotICAgICAgICAj
IEF0dGVtcHQgdG8gcmVzb2x2ZSB0aGUgaG9zdG5hbWUgYW5kIGdldCBhbiBJUCBhZGRyZXNzLgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmU9RmFs
c2UsIHJlc29sdmVfaXA9Tm9uZSk6CisgICAgICAgIGlmIHJlc29sdmVfaXAgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
CisgICAgICAgICAgICAgICAgIidyZXNvbHZlX2lwJyBvcHRpb24gcmVtb3ZlZDsgaXAgYWRkcmVz
c2VzIGFyZSBub3cgYWx3YXlzIHJlc29sdmVkIGJ5IHVybGxpYjMuIiwKKyAgICAgICAgICAgICAg
ICBEZXByZWNhdGlvbldhcm5pbmcpCiAgICAgICAgIHNlbGYua2VlcF9hbGl2ZSA9IGtlZXBfYWxp
dmUKLSAgICAgICAgcGFyc2VkX3VybCA9IHBhcnNlLnVybHBhcnNlKHJlbW90ZV9zZXJ2ZXJfYWRk
cikKLSAgICAgICAgYWRkciA9IHBhcnNlZF91cmwuaG9zdG5hbWUKLSAgICAgICAgaWYgcGFyc2Vk
X3VybC5ob3N0bmFtZSBhbmQgcmVzb2x2ZV9pcDoKLSAgICAgICAgICAgIHBvcnQgPSBwYXJzZWRf
dXJsLnBvcnQgb3IgTm9uZQotICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5zY2hlbWUgPT0gImh0
dHBzIjoKLSAgICAgICAgICAgICAgICBpcCA9IHBhcnNlZF91cmwuaG9zdG5hbWUKLSAgICAgICAg
ICAgIGVsaWYgcG9ydCBhbmQgbm90IGNvbW1vbl91dGlscy5pc19jb25uZWN0YWJsZShwb3J0LCBw
YXJzZWRfdXJsLmhvc3RuYW1lKToKLSAgICAgICAgICAgICAgICBpcCA9IE5vbmUKLSAgICAgICAg
ICAgICAgICBMT0dHRVIuaW5mbygnQ291bGQgbm90IGNvbm5lY3QgdG8gcG9ydCB7fSBvbiBob3N0
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAne30nLmZvcm1hdChwb3J0LCBwYXJzZWRf
dXJsLmhvc3RuYW1lKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaXAgPSBj
b21tb25fdXRpbHMuZmluZF9jb25uZWN0YWJsZV9pcChwYXJzZWRfdXJsLmhvc3RuYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1w
b3J0KQotICAgICAgICAgICAgaWYgaXA6Ci0gICAgICAgICAgICAgICAgbmV0bG9jID0gaXAKLSAg
ICAgICAgICAgICAgICBhZGRyID0gbmV0bG9jCi0gICAgICAgICAgICAgICAgaWYgcGFyc2VkX3Vy
bC5wb3J0OgotICAgICAgICAgICAgICAgICAgICBuZXRsb2MgPSBjb21tb25fdXRpbHMuam9pbl9o
b3N0X3BvcnQobmV0bG9jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFyc2VkX3VybC5wb3J0KQotICAgICAgICAgICAgICAgIGlmIHBh
cnNlZF91cmwudXNlcm5hbWU6Ci0gICAgICAgICAgICAgICAgICAgIGF1dGggPSBwYXJzZWRfdXJs
LnVzZXJuYW1lCi0gICAgICAgICAgICAgICAgICAgIGlmIHBhcnNlZF91cmwucGFzc3dvcmQ6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhdXRoICs9ICc6JXMnICUgcGFyc2VkX3VybC5wYXNzd29y
ZAotICAgICAgICAgICAgICAgICAgICBuZXRsb2MgPSAnJXNAJXMnICUgKGF1dGgsIG5ldGxvYykK
LSAgICAgICAgICAgICAgICByZW1vdGVfc2VydmVyX2FkZHIgPSBwYXJzZS51cmx1bnBhcnNlKAot
ICAgICAgICAgICAgICAgICAgICAocGFyc2VkX3VybC5zY2hlbWUsIG5ldGxvYywgcGFyc2VkX3Vy
bC5wYXRoLAotICAgICAgICAgICAgICAgICAgICAgcGFyc2VkX3VybC5wYXJhbXMsIHBhcnNlZF91
cmwucXVlcnksIHBhcnNlZF91cmwuZnJhZ21lbnQpKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBMT0dHRVIuaW5mbygnQ291bGQgbm90IGdldCBJUCBhZGRyZXNzIGZvciBob3N0
OiAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZF91cmwuaG9zdG5hbWUp
Ci0KICAgICAgICAgc2VsZi5fdXJsID0gcmVtb3RlX3NlcnZlcl9hZGRyCiAgICAgICAgIGlmIGtl
ZXBfYWxpdmU6Ci0gICAgICAgICAgICBzZWxmLl9jb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlv
bigKLSAgICAgICAgICAgICAgICBzdHIoYWRkciksIHN0cihwYXJzZWRfdXJsLnBvcnQpLCB0aW1l
b3V0PXNlbGYuX3RpbWVvdXQpCi0KKyAgICAgICAgICAgIHNlbGYuX2Nvbm4gPSB1cmxsaWIzLlBv
b2xNYW5hZ2VyKHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKICAgICAgICAgc2VsZi5fY29tbWFuZHMg
PSB7CiAgICAgICAgICAgICBDb21tYW5kLlNUQVRVUzogKCdHRVQnLCAnL3N0YXR1cycpLAogICAg
ICAgICAgICAgQ29tbWFuZC5ORVdfU0VTU0lPTjogKCdQT1NUJywgJy9zZXNzaW9uJyksCkBAIC0y
OTksMTAgKzE4MSw5IEBAIGNsYXNzIFJlbW90ZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAg
ICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL2F0dHJpYnV0
ZS8kbmFtZScpLAogICAgICAgICAgICAgQ29tbWFuZC5HRVRfRUxFTUVOVF9QUk9QRVJUWToKICAg
ICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL3By
b3BlcnR5LyRuYW1lJyksCi0gICAgICAgICAgICBDb21tYW5kLkVMRU1FTlRfRVFVQUxTOgotICAg
ICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kaWQvZXF1
YWxzLyRvdGhlcicpLAogICAgICAgICAgICAgQ29tbWFuZC5HRVRfQUxMX0NPT0tJRVM6ICgnR0VU
JywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvY29va2llJyksCiAgICAgICAgICAgICBDb21tYW5kLkFE
RF9DT09LSUU6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Nvb2tpZScpLAorICAgICAg
ICAgICAgQ29tbWFuZC5HRVRfQ09PS0lFOiAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Nv
b2tpZS8kbmFtZScpLAogICAgICAgICAgICAgQ29tbWFuZC5ERUxFVEVfQUxMX0NPT0tJRVM6CiAg
ICAgICAgICAgICAgICAgKCdERUxFVEUnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9jb29raWUnKSwK
ICAgICAgICAgICAgIENvbW1hbmQuREVMRVRFX0NPT0tJRToKQEAgLTMxMCw2ICsxOTEsNyBAQCBj
bGFzcyBSZW1vdGVDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICBDb21tYW5kLlNXSVRD
SF9UT19GUkFNRTogKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZnJhbWUnKSwKICAgICAg
ICAgICAgIENvbW1hbmQuU1dJVENIX1RPX1BBUkVOVF9GUkFNRTogKCdQT1NUJywgJy9zZXNzaW9u
LyRzZXNzaW9uSWQvZnJhbWUvcGFyZW50JyksCiAgICAgICAgICAgICBDb21tYW5kLlNXSVRDSF9U
T19XSU5ET1c6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3dpbmRvdycpLAorICAgICAg
ICAgICAgQ29tbWFuZC5ORVdfV0lORE9XOiAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93
aW5kb3cvbmV3JyksCiAgICAgICAgICAgICBDb21tYW5kLkNMT1NFOiAoJ0RFTEVURScsICcvc2Vz
c2lvbi8kc2Vzc2lvbklkL3dpbmRvdycpLAogICAgICAgICAgICAgQ29tbWFuZC5HRVRfRUxFTUVO
VF9WQUxVRV9PRl9DU1NfUFJPUEVSVFk6CiAgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Np
b24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9jc3MvJHByb3BlcnR5TmFtZScpLApAQCAtMzIwLDYg
KzIwMiw4IEBAIGNsYXNzIFJlbW90ZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgICAgICAg
ICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC90aW1lb3V0cy9hc3luY19zY3JpcHQnKSwK
ICAgICAgICAgICAgIENvbW1hbmQuU0VUX1RJTUVPVVRTOgogICAgICAgICAgICAgICAgICgnUE9T
VCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3RpbWVvdXRzJyksCisgICAgICAgICAgICBDb21tYW5k
LkdFVF9USU1FT1VUUzoKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lv
bklkL3RpbWVvdXRzJyksCiAgICAgICAgICAgICBDb21tYW5kLkRJU01JU1NfQUxFUlQ6CiAgICAg
ICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZGlzbWlzc19hbGVydCcp
LAogICAgICAgICAgICAgQ29tbWFuZC5XM0NfRElTTUlTU19BTEVSVDoKQEAgLTQyOSw5ICszMTMs
OSBAQCBjbGFzcyBSZW1vdGVDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICBDb21tYW5k
LkdFVF9TRVNTSU9OX1NUT1JBR0VfU0laRToKICAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vz
c2lvbi8kc2Vzc2lvbklkL3Nlc3Npb25fc3RvcmFnZS9zaXplJyksCiAgICAgICAgICAgICBDb21t
YW5kLkdFVF9MT0c6Ci0gICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9u
SWQvbG9nJyksCisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQv
c2UvbG9nJyksCiAgICAgICAgICAgICBDb21tYW5kLkdFVF9BVkFJTEFCTEVfTE9HX1RZUEVTOgot
ICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvbG9nL3R5cGVzJyks
CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9zZS9sb2cvdHlw
ZXMnKSwKICAgICAgICAgICAgIENvbW1hbmQuQ1VSUkVOVF9DT05URVhUX0hBTkRMRToKICAgICAg
ICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2NvbnRleHQnKSwKICAgICAg
ICAgICAgIENvbW1hbmQuQ09OVEVYVF9IQU5ETEVTOgpAQCAtNDQ4LDcgKzMzMiw3IEBAIGNsYXNz
IFJlbW90ZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIFNlbmQgYSBj
b21tYW5kIHRvIHRoZSByZW1vdGUgc2VydmVyLgogCi0gICAgICAgIEFueSBwYXRoIHN1YnRpdHV0
aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVSTCBtYXBwZWQgdG8gdGhlIGNvbW1hbmQgc2hvdWxkIGJl
CisgICAgICAgIEFueSBwYXRoIHN1YnN0aXR1dGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVUkwgbWFw
cGVkIHRvIHRoZSBjb21tYW5kIHNob3VsZCBiZQogICAgICAgICBpbmNsdWRlZCBpbiB0aGUgY29t
bWFuZCBwYXJhbWV0ZXJzLgogCiAgICAgICAgIDpBcmdzOgpAQCAtNDgxLDg4ICszNjUsNjAgQEAg
Y2xhc3MgUmVtb3RlQ29ubmVjdGlvbihvYmplY3QpOgogCiAgICAgICAgIHBhcnNlZF91cmwgPSBw
YXJzZS51cmxwYXJzZSh1cmwpCiAgICAgICAgIGhlYWRlcnMgPSBzZWxmLmdldF9yZW1vdGVfY29u
bmVjdGlvbl9oZWFkZXJzKHBhcnNlZF91cmwsIHNlbGYua2VlcF9hbGl2ZSkKKyAgICAgICAgcmVz
cCA9IE5vbmUKKyAgICAgICAgaWYgYm9keSBhbmQgbWV0aG9kICE9ICdQT1NUJyBhbmQgbWV0aG9k
ICE9ICdQVVQnOgorICAgICAgICAgICAgYm9keSA9IE5vbmUKIAogICAgICAgICBpZiBzZWxmLmtl
ZXBfYWxpdmU6Ci0gICAgICAgICAgICBpZiBib2R5IGFuZCBtZXRob2QgIT0gJ1BPU1QnIGFuZCBt
ZXRob2QgIT0gJ1BVVCc6Ci0gICAgICAgICAgICAgICAgYm9keSA9IE5vbmUKLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9jb25uLnJlcXVlc3QobWV0aG9kLCBwYXJzZWRf
dXJsLnBhdGgsIGJvZHksIGhlYWRlcnMpCi0gICAgICAgICAgICAgICAgcmVzcCA9IHNlbGYuX2Nv
bm4uZ2V0cmVzcG9uc2UoKQotICAgICAgICAgICAgZXhjZXB0IChodHRwbGliLkhUVFBFeGNlcHRp
b24sIHNvY2tldC5lcnJvcik6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29ubi5jbG9zZSgpCi0g
ICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHJlc3AgPSBzZWxmLl9jb25uLnJlcXVl
c3QobWV0aG9kLCB1cmwsIGJvZHk9Ym9keSwgaGVhZGVycz1oZWFkZXJzKQogCiAgICAgICAgICAg
ICBzdGF0dXNjb2RlID0gcmVzcC5zdGF0dXMKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBh
c3N3b3JkX21hbmFnZXIgPSBOb25lCi0gICAgICAgICAgICBpZiBwYXJzZWRfdXJsLnVzZXJuYW1l
OgotICAgICAgICAgICAgICAgIG5ldGxvYyA9IHBhcnNlZF91cmwuaG9zdG5hbWUKLSAgICAgICAg
ICAgICAgICBpZiBwYXJzZWRfdXJsLnBvcnQ6Ci0gICAgICAgICAgICAgICAgICAgIG5ldGxvYyAr
PSAiOiVzIiAlIHBhcnNlZF91cmwucG9ydAotICAgICAgICAgICAgICAgIGNsZWFuZWRfdXJsID0g
cGFyc2UudXJsdW5wYXJzZSgoCi0gICAgICAgICAgICAgICAgICAgIHBhcnNlZF91cmwuc2NoZW1l
LAotICAgICAgICAgICAgICAgICAgICBuZXRsb2MsCi0gICAgICAgICAgICAgICAgICAgIHBhcnNl
ZF91cmwucGF0aCwKLSAgICAgICAgICAgICAgICAgICAgcGFyc2VkX3VybC5wYXJhbXMsCi0gICAg
ICAgICAgICAgICAgICAgIHBhcnNlZF91cmwucXVlcnksCi0gICAgICAgICAgICAgICAgICAgIHBh
cnNlZF91cmwuZnJhZ21lbnQpKQotICAgICAgICAgICAgICAgIHBhc3N3b3JkX21hbmFnZXIgPSB1
cmxfcmVxdWVzdC5IVFRQUGFzc3dvcmRNZ3JXaXRoRGVmYXVsdFJlYWxtKCkKLSAgICAgICAgICAg
ICAgICBwYXNzd29yZF9tYW5hZ2VyLmFkZF9wYXNzd29yZChOb25lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlczovLyVzIiAlIChwYXJzZWRfdXJsLnNj
aGVtZSwgbmV0bG9jKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXJzZWRfdXJsLnVzZXJuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcnNlZF91cmwucGFzc3dvcmQpCi0gICAgICAgICAgICAgICAgcmVx
dWVzdCA9IFJlcXVlc3QoY2xlYW5lZF91cmwsIGRhdGE9Ym9keS5lbmNvZGUoJ3V0Zi04JyksIG1l
dGhvZD1tZXRob2QpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJlcXVlc3Qg
PSBSZXF1ZXN0KHVybCwgZGF0YT1ib2R5LmVuY29kZSgndXRmLTgnKSwgbWV0aG9kPW1ldGhvZCkK
LQotICAgICAgICAgICAgZm9yIGtleSwgdmFsIGluIGhlYWRlcnMuaXRlbXMoKToKLSAgICAgICAg
ICAgICAgICByZXF1ZXN0LmFkZF9oZWFkZXIoa2V5LCB2YWwpCisgICAgICAgICAgICB3aXRoIHVy
bGxpYjMuUG9vbE1hbmFnZXIodGltZW91dD1zZWxmLl90aW1lb3V0KSBhcyBodHRwOgorICAgICAg
ICAgICAgICAgIHJlc3AgPSBodHRwLnJlcXVlc3QobWV0aG9kLCB1cmwsIGJvZHk9Ym9keSwgaGVh
ZGVycz1oZWFkZXJzKQogCi0gICAgICAgICAgICBpZiBwYXNzd29yZF9tYW5hZ2VyOgotICAgICAg
ICAgICAgICAgIG9wZW5lciA9IHVybF9yZXF1ZXN0LmJ1aWxkX29wZW5lcih1cmxfcmVxdWVzdC5I
VFRQUmVkaXJlY3RIYW5kbGVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEh0dHBFcnJvckhhbmRsZXIoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX3JlcXVlc3QuSFRUUEJhc2ljQXV0aEhh
bmRsZXIocGFzc3dvcmRfbWFuYWdlcikpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIG9wZW5lciA9IHVybF9yZXF1ZXN0LmJ1aWxkX29wZW5lcih1cmxfcmVxdWVzdC5IVFRQUmVk
aXJlY3RIYW5kbGVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEh0dHBFcnJvckhhbmRsZXIoKSkKLSAgICAgICAgICAgIHJlc3AgPSBvcGVuZXIu
b3BlbihyZXF1ZXN0LCB0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgICAgICBzdGF0dXNj
b2RlID0gcmVzcC5jb2RlCisgICAgICAgICAgICBzdGF0dXNjb2RlID0gcmVzcC5zdGF0dXMKICAg
ICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHJlc3AsICdnZXRoZWFkZXInKToKICAgICAgICAgICAg
ICAgICBpZiBoYXNhdHRyKHJlc3AuaGVhZGVycywgJ2dldGhlYWRlcicpOgogICAgICAgICAgICAg
ICAgICAgICByZXNwLmdldGhlYWRlciA9IGxhbWJkYSB4OiByZXNwLmhlYWRlcnMuZ2V0aGVhZGVy
KHgpCiAgICAgICAgICAgICAgICAgZWxpZiBoYXNhdHRyKHJlc3AuaGVhZGVycywgJ2dldCcpOgog
ICAgICAgICAgICAgICAgICAgICByZXNwLmdldGhlYWRlciA9IGxhbWJkYSB4OiByZXNwLmhlYWRl
cnMuZ2V0KHgpCiAKLSAgICAgICAgZGF0YSA9IHJlc3AucmVhZCgpCisgICAgICAgIGRhdGEgPSBy
ZXNwLmRhdGEuZGVjb2RlKCdVVEYtOCcpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIDMw
MCA8PSBzdGF0dXNjb2RlIDwgMzA0OgogICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZXF1
ZXN0KCdHRVQnLCByZXNwLmdldGhlYWRlcignbG9jYXRpb24nKSkKLSAgICAgICAgICAgIGJvZHkg
PSBkYXRhLmRlY29kZSgndXRmLTgnKS5yZXBsYWNlKCdceDAwJywgJycpLnN0cmlwKCkKICAgICAg
ICAgICAgIGlmIDM5OSA8IHN0YXR1c2NvZGUgPD0gNTAwOgotICAgICAgICAgICAgICAgIHJldHVy
biB7J3N0YXR1cyc6IHN0YXR1c2NvZGUsICd2YWx1ZSc6IGJvZHl9CisgICAgICAgICAgICAgICAg
cmV0dXJuIHsnc3RhdHVzJzogc3RhdHVzY29kZSwgJ3ZhbHVlJzogZGF0YX0KICAgICAgICAgICAg
IGNvbnRlbnRfdHlwZSA9IFtdCiAgICAgICAgICAgICBpZiByZXNwLmdldGhlYWRlcignQ29udGVu
dC1UeXBlJykgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgY29udGVudF90eXBlID0gcmVz
cC5nZXRoZWFkZXIoJ0NvbnRlbnQtVHlwZScpLnNwbGl0KCc7JykKICAgICAgICAgICAgIGlmIG5v
dCBhbnkoW3guc3RhcnRzd2l0aCgnaW1hZ2UvcG5nJykgZm9yIHggaW4gY29udGVudF90eXBlXSk6
CisKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGRhdGEgPSB1dGls
cy5sb2FkX2pzb24oYm9keS5zdHJpcCgpKQorICAgICAgICAgICAgICAgICAgICBkYXRhID0gdXRp
bHMubG9hZF9qc29uKGRhdGEuc3RyaXAoKSkKICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVF
cnJvcjoKICAgICAgICAgICAgICAgICAgICAgaWYgMTk5IDwgc3RhdHVzY29kZSA8IDMwMDoKICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IEVycm9yQ29kZS5TVUNDRVNTCiAgICAgICAg
ICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBFcnJv
ckNvZGUuVU5LTk9XTl9FUlJPUgotICAgICAgICAgICAgICAgICAgICByZXR1cm4geydzdGF0dXMn
OiBzdGF0dXMsICd2YWx1ZSc6IGJvZHkuc3RyaXAoKX0KKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHsnc3RhdHVzJzogc3RhdHVzLCAndmFsdWUnOiBkYXRhLnN0cmlwKCl9CiAKLSAgICAgICAg
ICAgICAgICBhc3NlcnQgdHlwZShkYXRhKSBpcyBkaWN0LCAoCi0gICAgICAgICAgICAgICAgICAg
ICdJbnZhbGlkIHNlcnZlciByZXNwb25zZSBib2R5OiAlcycgJSBib2R5KQogICAgICAgICAgICAg
ICAgICMgU29tZSBvZiB0aGUgZHJpdmVycyBpbmNvcnJlY3RseSByZXR1cm4gYSByZXNwb25zZQog
ICAgICAgICAgICAgICAgICMgd2l0aCBubyAndmFsdWUnIGZpZWxkIHdoZW4gdGhleSBzaG91bGQg
cmV0dXJuIG51bGwuCiAgICAgICAgICAgICAgICAgaWYgJ3ZhbHVlJyBub3QgaW4gZGF0YToKICAg
ICAgICAgICAgICAgICAgICAgZGF0YVsndmFsdWUnXSA9IE5vbmUKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZGF0YQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBkYXRhID0geydz
dGF0dXMnOiAwLCAndmFsdWUnOiBib2R5LnN0cmlwKCl9CisgICAgICAgICAgICAgICAgZGF0YSA9
IHsnc3RhdHVzJzogMCwgJ3ZhbHVlJzogZGF0YX0KICAgICAgICAgICAgICAgICByZXR1cm4gZGF0
YQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgTE9HR0VSLmRlYnVnKCJGaW5pc2hlZCBS
ZXF1ZXN0IikKICAgICAgICAgICAgIHJlc3AuY2xvc2UoKQorCisgICAgZGVmIGNsb3NlKHNlbGYp
OgorICAgICAgICAiIiIKKyAgICAgICAgQ2xlYW4gdXAgcmVzb3VyY2VzIHdoZW4gZmluaXNoZWQg
d2l0aCB0aGUgcmVtb3RlX2Nvbm5lY3Rpb24KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZiwgJ19jb25uJyk6CisgICAgICAgICAgICBzZWxmLl9jb25uLmNsZWFyKCkKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRy
aXZlci9yZW1vdGUvc3dpdGNoX3RvLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9zd2l0Y2hfdG8ucHkKaW5kZXggM2Y1N2U3
YWYzMGUwZDY1OGE0M2JlMzY0ZGY4NzUzMDk3NTBhMGQzMi4uYTFhYWFjYmIyMmU5MGVhNjNkYTdm
MjRlNzAzZWQ5OGU3OGRjNmQxZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9zd2l0Y2hfdG8ucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Jl
bW90ZS9zd2l0Y2hfdG8ucHkKQEAgLTM2LDcgKzM2LDkgQEAgY2xhc3MgU3dpdGNoVG86CiAgICAg
ICAgIFJldHVybnMgdGhlIGVsZW1lbnQgd2l0aCBmb2N1cywgb3IgQk9EWSBpZiBub3RoaW5nIGhh
cyBmb2N1cy4KIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50ID0gZHJpdmVy
LnN3aXRjaF90by5hY3RpdmVfZWxlbWVudAorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAg
ICAgIGVsZW1lbnQgPSBkcml2ZXIuc3dpdGNoX3RvLmFjdGl2ZV9lbGVtZW50CiAgICAgICAgICIi
IgogICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYu
X2RyaXZlci5leGVjdXRlKENvbW1hbmQuVzNDX0dFVF9BQ1RJVkVfRUxFTUVOVClbJ3ZhbHVlJ10K
QEAgLTQ5LDcgKzUxLDkgQEAgY2xhc3MgU3dpdGNoVG86CiAgICAgICAgIFN3aXRjaGVzIGZvY3Vz
IHRvIGFuIGFsZXJ0IG9uIHRoZSBwYWdlLgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAg
IGFsZXJ0ID0gZHJpdmVyLnN3aXRjaF90by5hbGVydAorICAgICAgICAgICAgOjoKKworICAgICAg
ICAgICAgICAgIGFsZXJ0ID0gZHJpdmVyLnN3aXRjaF90by5hbGVydAogICAgICAgICAiIiIKICAg
ICAgICAgYWxlcnQgPSBBbGVydChzZWxmLl9kcml2ZXIpCiAgICAgICAgIGFsZXJ0LnRleHQKQEAg
LTYwLDcgKzY0LDkgQEAgY2xhc3MgU3dpdGNoVG86CiAgICAgICAgIFN3aXRjaCBmb2N1cyB0byB0
aGUgZGVmYXVsdCBmcmFtZS4KIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBkcml2ZXIu
c3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisgICAgICAgICAgICA6OgorCisgICAgICAgICAg
ICAgICAgZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQogICAgICAgICAiIiIKICAg
ICAgICAgc2VsZi5fZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5TV0lUQ0hfVE9fRlJBTUUsIHsnaWQn
OiBOb25lfSkKIApAQCAtNzMsOSArNzksMTEgQEAgY2xhc3MgU3dpdGNoVG86CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3IgYSB3ZWJlbGVtZW50IHRoYXQgaXMgYW4gKGkpZnJhbWUgdG8g
c3dpdGNoIHRvLgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5zd2l0Y2hf
dG8uZnJhbWUoJ2ZyYW1lX25hbWUnKQotICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFt
ZSgxKQotICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVt
ZW50c19ieV90YWdfbmFtZSgiaWZyYW1lIilbMF0pCisgICAgICAgICAgICA6OgorCisgICAgICAg
ICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgnZnJhbWVfbmFtZScpCisgICAgICAgICAg
ICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgxKQorICAgICAgICAgICAgICAgIGRyaXZlci5z
d2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoImlmcmFtZSIp
WzBdKQogICAgICAgICAiIiIKICAgICAgICAgaWYgaXNpbnN0YW5jZShmcmFtZV9yZWZlcmVuY2Us
IGJhc2VzdHJpbmcpIGFuZCBzZWxmLl9kcml2ZXIudzNjOgogICAgICAgICAgICAgdHJ5OgpAQCAt
ODgsMTMgKzk2LDI5IEBAIGNsYXNzIFN3aXRjaFRvOgogCiAgICAgICAgIHNlbGYuX2RyaXZlci5l
eGVjdXRlKENvbW1hbmQuU1dJVENIX1RPX0ZSQU1FLCB7J2lkJzogZnJhbWVfcmVmZXJlbmNlfSkK
IAorICAgIGRlZiBuZXdfd2luZG93KHNlbGYsIHR5cGVfaGludD1Ob25lKToKKyAgICAgICAgIiIi
U3dpdGNoZXMgdG8gYSBuZXcgdG9wLWxldmVsIGJyb3dzaW5nIGNvbnRleHQuCisKKyAgICAgICAg
VGhlIHR5cGUgaGludCBjYW4gYmUgb25lIG9mICJ0YWIiIG9yICJ3aW5kb3ciLiBJZiBub3Qgc3Bl
Y2lmaWVkIHRoZQorICAgICAgICBicm93c2VyIHdpbGwgYXV0b21hdGljYWxseSBzZWxlY3QgaXQu
CisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGRy
aXZlci5zd2l0Y2hfdG8ubmV3X3dpbmRvdygndGFiJykKKyAgICAgICAgIiIiCisgICAgICAgIHZh
bHVlID0gc2VsZi5fZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5ORVdfV0lORE9XLCB7J3R5cGUnOiB0
eXBlX2hpbnR9KVsndmFsdWUnXQorICAgICAgICBzZWxmLl93M2Nfd2luZG93KHZhbHVlWydoYW5k
bGUnXSkKKwogICAgIGRlZiBwYXJlbnRfZnJhbWUoc2VsZik6CiAgICAgICAgICIiIgogICAgICAg
ICBTd2l0Y2hlcyBmb2N1cyB0byB0aGUgcGFyZW50IGNvbnRleHQuIElmIHRoZSBjdXJyZW50IGNv
bnRleHQgaXMgdGhlIHRvcAogICAgICAgICBsZXZlbCBicm93c2luZyBjb250ZXh0LCB0aGUgY29u
dGV4dCByZW1haW5zIHVuY2hhbmdlZC4KIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBk
cml2ZXIuc3dpdGNoX3RvLnBhcmVudF9mcmFtZSgpCisgICAgICAgICAgICA6OgorCisgICAgICAg
ICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5wYXJlbnRfZnJhbWUoKQogICAgICAgICAiIiIKICAg
ICAgICAgc2VsZi5fZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5TV0lUQ0hfVE9fUEFSRU5UX0ZSQU1F
KQogCkBAIC0xMDYsNyArMTMwLDkgQEAgY2xhc3MgU3dpdGNoVG86CiAgICAgICAgICAtIHdpbmRv
d19uYW1lOiBUaGUgbmFtZSBvciB3aW5kb3cgaGFuZGxlIG9mIHRoZSB3aW5kb3cgdG8gc3dpdGNo
IHRvLgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8ud2lu
ZG93KCdtYWluJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBkcml2ZXIuc3dp
dGNoX3RvLndpbmRvdygnbWFpbicpCiAgICAgICAgICIiIgogICAgICAgICBpZiBzZWxmLl9kcml2
ZXIudzNjOgogICAgICAgICAgICAgc2VsZi5fdzNjX3dpbmRvdyh3aW5kb3dfbmFtZSkKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRy
aXZlci9yZW1vdGUvdXRpbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3V0aWxzLnB5CmluZGV4IDU1MDdlYTVhNGM3YTZl
YjU5ZTk5MjM5MmIwMTMzYmRkMWVjM2NhYzUuLjkwNTViOGFiMjQwYzlmZGEyYTcwNDhkYzYxNmM4
YzY4ODQ2OGI3YTcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvdXRpbHMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS91dGlscy5w
eQpAQCAtMjEsNyArMjEsNiBAQCBpbXBvcnQgb3MKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHpp
cGZpbGUKIAotZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgTm9TdWNoRWxl
bWVudEV4Y2VwdGlvbgogCiBMT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIApA
QCAtMzgsMjggKzM3LDYgQEAgZGVmIGxvYWRfanNvbihzKToKICAgICByZXR1cm4ganNvbi5sb2Fk
cyhzKQogCiAKLWRlZiBoYW5kbGVfZmluZF9lbGVtZW50X2V4Y2VwdGlvbihlKToKLSAgICBpZiAo
IlVuYWJsZSB0byBmaW5kIiBpbiBlLnJlc3BvbnNlWyJ2YWx1ZSJdWyJtZXNzYWdlIl0gb3IgIlVu
YWJsZSB0byBsb2NhdGUiIGluIGUucmVzcG9uc2VbInZhbHVlIl1bIm1lc3NhZ2UiXSk6Ci0gICAg
ICAgIHJhaXNlIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oIlVuYWJsZSB0byBsb2NhdGUgZWxlbWVu
dDoiKQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIGUKLQotCi1kZWYgcmV0dXJuX3ZhbHVlX2lm
X2V4aXN0cyhyZXNwKToKLSAgICBpZiByZXNwIGFuZCAidmFsdWUiIGluIHJlc3A6Ci0gICAgICAg
IHJldHVybiByZXNwWyJ2YWx1ZSJdCi0KLQotZGVmIGdldF9yb290X3BhcmVudChlbGVtKToKLSAg
ICBwYXJlbnQgPSBlbGVtLnBhcmVudAotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHBhcmVudC5wYXJlbnQKLSAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJl
bnQKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuIHBh
cmVudAotCi0KIGRlZiB1bnppcF90b190ZW1wX2Rpcih6aXBfZmlsZV9uYW1lKToKICAgICAiIiJV
bnppcCB6aXBmaWxlIHRvIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KIApAQCAtODIsNyArNTksNyBA
QCBkZWYgdW56aXBfdG9fdGVtcF9kaXIoemlwX2ZpbGVfbmFtZSk6CiAgICAgICAgIGZvciB6aXBf
bmFtZSBpbiB6Zi5uYW1lbGlzdCgpOgogICAgICAgICAgICAgIyBXZSBoYXZlIG5vIGtub3dsZWRn
ZSBvbiB0aGUgb3Mgd2hlcmUgdGhlIHppcHBlZCBmaWxlIHdhcwogICAgICAgICAgICAgIyBjcmVh
dGVkLCBzbyB3ZSByZXN0cmljdCB0byB6aXAgZmlsZXMgd2l0aCBwYXRocyB3aXRob3V0Ci0gICAg
ICAgICAgICAjIGNoYXJhY3RvciAiXCIgYW5kICIvIi4KKyAgICAgICAgICAgICMgY2hhcmFjdGVy
ICJcIiBhbmQgIi8iLgogICAgICAgICAgICAgbmFtZSA9ICh6aXBfbmFtZS5yZXBsYWNlKCJcXCIs
IG9zLnBhdGguc2VwKS4KICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZSgiLyIsIG9zLnBhdGgu
c2VwKSkKICAgICAgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4odGVtcGRpciwgbmFtZSkKQEAg
LTk0LDcgKzcxLDcgQEAgZGVmIHVuemlwX3RvX3RlbXBfZGlyKHppcF9maWxlX25hbWUpOgogICAg
ICAgICBmb3IgemlwX25hbWUgaW4gemYubmFtZWxpc3QoKToKICAgICAgICAgICAgICMgV2UgaGF2
ZSBubyBrbm93bGVkZ2Ugb24gdGhlIG9zIHdoZXJlIHRoZSB6aXBwZWQgZmlsZSB3YXMKICAgICAg
ICAgICAgICMgY3JlYXRlZCwgc28gd2UgcmVzdHJpY3QgdG8gemlwIGZpbGVzIHdpdGggcGF0aHMg
d2l0aG91dAotICAgICAgICAgICAgIyBjaGFyYWN0b3IgIlwiIGFuZCAiLyIuCisgICAgICAgICAg
ICAjIGNoYXJhY3RlciAiXCIgYW5kICIvIi4KICAgICAgICAgICAgIG5hbWUgPSAoemlwX25hbWUu
cmVwbGFjZSgiXFwiLCBvcy5wYXRoLnNlcCkuCiAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2Uo
Ii8iLCBvcy5wYXRoLnNlcCkpCiAgICAgICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKHRlbXBk
aXIsIG5hbWUpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZHJpdmVy
LnB5CmluZGV4IGE0YjE1OTJiMzIwOGZkMGYzYmQyZDgyNDAwYzM3Y2I4NDNhNjFiZTAuLmM2MTA2
MjkzNDE5MWI1OTI4MmQ3ZGQ4MTk0NDBiYjkxMWJjYjViYmIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2Vi
ZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZHJpdmVyLnB5CkBAIC0xOSwyMSArMTksMjkgQEAKIAog
aW1wb3J0IGJhc2U2NAogaW1wb3J0IGNvcHkKLWltcG9ydCB3YXJuaW5ncwogZnJvbSBjb250ZXh0
bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgoraW1wb3J0IHBrZ3V0aWwKK2ltcG9ydCB3YXJuaW5n
cwogCiBmcm9tIC5jb21tYW5kIGltcG9ydCBDb21tYW5kCi1mcm9tIC53ZWJlbGVtZW50IGltcG9y
dCBXZWJFbGVtZW50Ci1mcm9tIC5yZW1vdGVfY29ubmVjdGlvbiBpbXBvcnQgUmVtb3RlQ29ubmVj
dGlvbgogZnJvbSAuZXJyb3JoYW5kbGVyIGltcG9ydCBFcnJvckhhbmRsZXIKLWZyb20gLnN3aXRj
aF90byBpbXBvcnQgU3dpdGNoVG8KLWZyb20gLm1vYmlsZSBpbXBvcnQgTW9iaWxlCiBmcm9tIC5m
aWxlX2RldGVjdG9yIGltcG9ydCBGaWxlRGV0ZWN0b3IsIExvY2FsRmlsZURldGVjdG9yCitmcm9t
IC5tb2JpbGUgaW1wb3J0IE1vYmlsZQorZnJvbSAucmVtb3RlX2Nvbm5lY3Rpb24gaW1wb3J0IFJl
bW90ZUNvbm5lY3Rpb24KK2Zyb20gLnN3aXRjaF90byBpbXBvcnQgU3dpdGNoVG8KK2Zyb20gLndl
YmVsZW1lbnQgaW1wb3J0IFdlYkVsZW1lbnQKKwogZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0
aW9ucyBpbXBvcnQgKEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJFeGNlcHRpb24pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vU3VjaENvb2tpZUV4Y2VwdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmtub3duTWV0aG9kRXhjZXB0
aW9uKQogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQogZnJvbSBz
ZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmh0bWw1LmFwcGxpY2F0aW9uX2NhY2hlIGltcG9ydCBB
cHBsaWNhdGlvbkNhY2hlCiAKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi50aW1lb3V0
cyBpbXBvcnQgVGltZW91dHMKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5yZWxh
dGl2ZV9sb2NhdG9yIGltcG9ydCBSZWxhdGl2ZUJ5CisKIHRyeToKICAgICBzdHIgPSBiYXNlc3Ry
aW5nCiBleGNlcHQgTmFtZUVycm9yOgpAQCAtNTAsNiArNTgsNyBAQCBfVzNDX0NBUEFCSUxJVFlf
TkFNRVMgPSBmcm96ZW5zZXQoWwogICAgICdzZXRXaW5kb3dSZWN0JywKICAgICAndGltZW91dHMn
LAogICAgICd1bmhhbmRsZWRQcm9tcHRCZWhhdmlvcicsCisgICAgJ3N0cmljdEZpbGVJbnRlcmFj
dGFiaWxpdHknCiBdKQogCiBfT1NTX1czQ19DT05WRVJTSU9OID0gewpAQCAtOTIsNiArMTAxLDE4
IEBAIGRlZiBfbWFrZV93M2NfY2FwcyhjYXBzKToKICAgICByZXR1cm4geyJmaXJzdE1hdGNoIjog
W3t9XSwgImFsd2F5c01hdGNoIjogYWx3YXlzX21hdGNofQogCiAKK2RlZiBnZXRfcmVtb3RlX2Nv
bm5lY3Rpb24oY2FwYWJpbGl0aWVzLCBjb21tYW5kX2V4ZWN1dG9yLCBrZWVwX2FsaXZlKToKKyAg
ICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zYWZhcmkucmVtb3RlX2Nvbm5lY3Rpb24gaW1wb3J0
IFNhZmFyaVJlbW90ZUNvbm5lY3Rpb24KKworICAgIGNhbmRpZGF0ZXMgPSBbUmVtb3RlQ29ubmVj
dGlvbl0gKyBbU2FmYXJpUmVtb3RlQ29ubmVjdGlvbl0KKyAgICBoYW5kbGVyID0gbmV4dCgKKyAg
ICAgICAgKGMgZm9yIGMgaW4gY2FuZGlkYXRlcyBpZiBjLmJyb3dzZXJfbmFtZSA9PSBjYXBhYmls
aXRpZXMuZ2V0KCdicm93c2VyTmFtZScpKSwKKyAgICAgICAgUmVtb3RlQ29ubmVjdGlvbgorICAg
ICkKKworICAgIHJldHVybiBoYW5kbGVyKGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmU9a2Vl
cF9hbGl2ZSkKKworCiBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAiIiIKICAgICBDb250
cm9scyBhIGJyb3dzZXIgYnkgc2VuZGluZyBjb21tYW5kcyB0byBhIHJlbW90ZSBzZXJ2ZXIuCkBA
IC0xMDEsNyArMTIyLDcgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAKICAgICA6QXR0cmli
dXRlczoKICAgICAgLSBzZXNzaW9uX2lkIC0gU3RyaW5nIElEIG9mIHRoZSBicm93c2VyIHNlc3Np
b24gc3RhcnRlZCBhbmQgY29udHJvbGxlZCBieSB0aGlzIFdlYkRyaXZlci4KLSAgICAgLSBjYXBh
YmlsaXRpZXMgLSBEaWN0aW9uYXR5IG9mIGVmZmVjdGl2ZSBjYXBhYmlsaXRpZXMgb2YgdGhpcyBi
cm93c2VyIHNlc3Npb24gYXMgcmV0dXJuZWQKKyAgICAgLSBjYXBhYmlsaXRpZXMgLSBEaWN0aW9u
YXJ5IG9mIGVmZmVjdGl2ZSBjYXBhYmlsaXRpZXMgb2YgdGhpcyBicm93c2VyIHNlc3Npb24gYXMg
cmV0dXJuZWQKICAgICAgICAgIGJ5IHRoZSByZW1vdGUgc2VydmVyLiBTZWUgaHR0cHM6Ly9naXRo
dWIuY29tL1NlbGVuaXVtSFEvc2VsZW5pdW0vd2lraS9EZXNpcmVkQ2FwYWJpbGl0aWVzCiAgICAg
IC0gY29tbWFuZF9leGVjdXRvciAtIHJlbW90ZV9jb25uZWN0aW9uLlJlbW90ZUNvbm5lY3Rpb24g
b2JqZWN0IHVzZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4KICAgICAgLSBlcnJvcl9oYW5kbGVyIC0g
ZXJyb3JoYW5kbGVyLkVycm9ySGFuZGxlciBvYmplY3QgdXNlZCB0byBoYW5kbGUgZXJyb3JzLgpA
QCAtMTA5LDkgKzEzMCw5IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgogCiAgICAgX3dlYl9l
bGVtZW50X2NscyA9IFdlYkVsZW1lbnQKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21tYW5k
X2V4ZWN1dG9yPSdodHRwOi8vMTI3LjAuMC4xOjQ0NDQvd2QvaHViJywKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgY29tbWFuZF9leGVjdXRvcj0naHR0cDovLzEyNy4wLjAuMTo0NDQ0JywKICAgICAg
ICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9Tm9uZSwgYnJvd3Nlcl9wcm9maWxlPU5v
bmUsIHByb3h5PU5vbmUsCi0gICAgICAgICAgICAgICAgIGtlZXBfYWxpdmU9RmFsc2UsIGZpbGVf
ZGV0ZWN0b3I9Tm9uZSwgb3B0aW9ucz1Ob25lKToKKyAgICAgICAgICAgICAgICAga2VlcF9hbGl2
ZT1UcnVlLCBmaWxlX2RldGVjdG9yPU5vbmUsIG9wdGlvbnM9Tm9uZSk6CiAgICAgICAgICIiIgog
ICAgICAgICBDcmVhdGUgYSBuZXcgZHJpdmVyIHRoYXQgd2lsbCBpc3N1ZSBjb21tYW5kcyB1c2lu
ZyB0aGUgd2lyZSBwcm90b2NvbC4KIApAQCAtMTI1LDMzICsxNDYsMjggQEAgY2xhc3MgV2ViRHJp
dmVyKG9iamVjdCk6CiAgICAgICAgICAtIHByb3h5IC0gQSBzZWxlbml1bS53ZWJkcml2ZXIuY29t
bW9uLnByb3h5LlByb3h5IG9iamVjdC4gVGhlIGJyb3dzZXIgc2Vzc2lvbiB3aWxsCiAgICAgICAg
ICAgICAgYmUgc3RhcnRlZCB3aXRoIGdpdmVuIHByb3h5IHNldHRpbmdzLCBpZiBwb3NzaWJsZS4g
T3B0aW9uYWwuCiAgICAgICAgICAtIGtlZXBfYWxpdmUgLSBXaGV0aGVyIHRvIGNvbmZpZ3VyZSBy
ZW1vdGVfY29ubmVjdGlvbi5SZW1vdGVDb25uZWN0aW9uIHRvIHVzZQotICAgICAgICAgICAgIEhU
VFAga2VlcC1hbGl2ZS4gRGVmYXVsdHMgdG8gRmFsc2UuCisgICAgICAgICAgICAgSFRUUCBrZWVw
LWFsaXZlLiBEZWZhdWx0cyB0byBUcnVlLgogICAgICAgICAgLSBmaWxlX2RldGVjdG9yIC0gUGFz
cyBjdXN0b20gZmlsZSBkZXRlY3RvciBvYmplY3QgZHVyaW5nIGluc3RhbnRpYXRpb24uIElmIE5v
bmUsCiAgICAgICAgICAgICAgdGhlbiBkZWZhdWx0IExvY2FsRmlsZURldGVjdG9yKCkgd2lsbCBi
ZSB1c2VkLgogICAgICAgICAgLSBvcHRpb25zIC0gaW5zdGFuY2Ugb2YgYSBkcml2ZXIgb3B0aW9u
cy5PcHRpb25zIGNsYXNzCiAgICAgICAgICIiIgotICAgICAgICBpZiBkZXNpcmVkX2NhcGFiaWxp
dGllcyBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgV2ViRHJpdmVyRXhjZXB0aW9uKCJEZXNp
cmVkIENhcGFiaWxpdGllcyBjYW4ndCBiZSBOb25lIikKLSAgICAgICAgaWYgbm90IGlzaW5zdGFu
Y2UoZGVzaXJlZF9jYXBhYmlsaXRpZXMsIGRpY3QpOgotICAgICAgICAgICAgcmFpc2UgV2ViRHJp
dmVyRXhjZXB0aW9uKCJEZXNpcmVkIENhcGFiaWxpdGllcyBtdXN0IGJlIGEgZGljdGlvbmFyeSIp
Ci0gICAgICAgIGlmIHByb3h5IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgd2FybmluZ3Mud2Fy
bigiUGxlYXNlIHVzZSBGaXJlZm94T3B0aW9ucyB0byBzZXQgcHJveHkiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgICAgICBwcm94eS5hZGRf
dG9fY2FwYWJpbGl0aWVzKGRlc2lyZWRfY2FwYWJpbGl0aWVzKQorICAgICAgICBjYXBhYmlsaXRp
ZXMgPSB7fQogICAgICAgICBpZiBvcHRpb25zIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZGVz
aXJlZF9jYXBhYmlsaXRpZXMudXBkYXRlKG9wdGlvbnMudG9fY2FwYWJpbGl0aWVzKCkpCisgICAg
ICAgICAgICBjYXBhYmlsaXRpZXMgPSBvcHRpb25zLnRvX2NhcGFiaWxpdGllcygpCisgICAgICAg
IGlmIGRlc2lyZWRfY2FwYWJpbGl0aWVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2UoZGVzaXJlZF9jYXBhYmlsaXRpZXMsIGRpY3QpOgorICAgICAgICAgICAgICAg
IHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiRGVzaXJlZCBDYXBhYmlsaXRpZXMgbXVzdCBiZSBh
IGRpY3Rpb25hcnkiKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjYXBhYmls
aXRpZXMudXBkYXRlKGRlc2lyZWRfY2FwYWJpbGl0aWVzKQogICAgICAgICBzZWxmLmNvbW1hbmRf
ZXhlY3V0b3IgPSBjb21tYW5kX2V4ZWN1dG9yCiAgICAgICAgIGlmIHR5cGUoc2VsZi5jb21tYW5k
X2V4ZWN1dG9yKSBpcyBieXRlcyBvciBpc2luc3RhbmNlKHNlbGYuY29tbWFuZF9leGVjdXRvciwg
c3RyKToKLSAgICAgICAgICAgIHNlbGYuY29tbWFuZF9leGVjdXRvciA9IFJlbW90ZUNvbm5lY3Rp
b24oY29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZT1rZWVwX2FsaXZlKQorICAgICAgICAgICAg
c2VsZi5jb21tYW5kX2V4ZWN1dG9yID0gZ2V0X3JlbW90ZV9jb25uZWN0aW9uKGNhcGFiaWxpdGll
cywgY29tbWFuZF9leGVjdXRvcj1jb21tYW5kX2V4ZWN1dG9yLCBrZWVwX2FsaXZlPWtlZXBfYWxp
dmUpCiAgICAgICAgIHNlbGYuX2lzX3JlbW90ZSA9IFRydWUKICAgICAgICAgc2VsZi5zZXNzaW9u
X2lkID0gTm9uZQogICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IHt9CiAgICAgICAgIHNlbGYu
ZXJyb3JfaGFuZGxlciA9IEVycm9ySGFuZGxlcigpCiAgICAgICAgIHNlbGYuc3RhcnRfY2xpZW50
KCkKLSAgICAgICAgaWYgYnJvd3Nlcl9wcm9maWxlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
d2FybmluZ3Mud2FybigiUGxlYXNlIHVzZSBGaXJlZm94T3B0aW9ucyB0byBzZXQgYnJvd3NlciBw
cm9maWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nKQot
ICAgICAgICBzZWxmLnN0YXJ0X3Nlc3Npb24oZGVzaXJlZF9jYXBhYmlsaXRpZXMsIGJyb3dzZXJf
cHJvZmlsZSkKKyAgICAgICAgc2VsZi5zdGFydF9zZXNzaW9uKGNhcGFiaWxpdGllcywgYnJvd3Nl
cl9wcm9maWxlKQogICAgICAgICBzZWxmLl9zd2l0Y2hfdG8gPSBTd2l0Y2hUbyhzZWxmKQogICAg
ICAgICBzZWxmLl9tb2JpbGUgPSBNb2JpbGUoc2VsZikKICAgICAgICAgc2VsZi5maWxlX2RldGVj
dG9yID0gZmlsZV9kZXRlY3RvciBvciBMb2NhbEZpbGVEZXRlY3RvcigpCkBAIC0xNjAsNiArMTc2
LDEyIEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gJzx7MC5fX21v
ZHVsZV9ffS57MC5fX25hbWVfX30gKHNlc3Npb249InsxfSIpPicuZm9ybWF0KAogICAgICAgICAg
ICAgdHlwZShzZWxmKSwgc2VsZi5zZXNzaW9uX2lkKQogCisgICAgZGVmIF9fZW50ZXJfXyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncyk6
CisgICAgICAgIHNlbGYucXVpdCgpCisKICAgICBAY29udGV4dG1hbmFnZXIKICAgICBkZWYgZmls
ZV9kZXRlY3Rvcl9jb250ZXh0KHNlbGYsIGZpbGVfZGV0ZWN0b3JfY2xhc3MsICphcmdzLCAqKmt3
YXJncyk6CiAgICAgICAgICIiIgpAQCAtMTk4LDcgKzIyMCw5IEBAIGNsYXNzIFdlYkRyaXZlcihv
YmplY3QpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSB1bmRlcmx5aW5nIGJy
b3dzZXIgZm9yIHRoaXMgaW5zdGFuY2UuCiAKICAgICAgICAgOlVzYWdlOgotICAgICAgICAgICAg
bmFtZSA9IGRyaXZlci5uYW1lCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgbmFt
ZSA9IGRyaXZlci5uYW1lCiAgICAgICAgICIiIgogICAgICAgICBpZiAnYnJvd3Nlck5hbWUnIGlu
IHNlbGYuY2FwYWJpbGl0aWVzOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2FwYWJpbGl0aWVz
Wydicm93c2VyTmFtZSddCkBAIC0zMjgsNyArMzUyLDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVj
dCk6CiAgICAgICAgICIiIlJldHVybnMgdGhlIHRpdGxlIG9mIHRoZSBjdXJyZW50IHBhZ2UuCiAK
ICAgICAgICAgOlVzYWdlOgotICAgICAgICAgICAgdGl0bGUgPSBkcml2ZXIudGl0bGUKKyAgICAg
ICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICB0aXRsZSA9IGRyaXZlci50aXRsZQogICAgICAg
ICAiIiIKICAgICAgICAgcmVzcCA9IHNlbGYuZXhlY3V0ZShDb21tYW5kLkdFVF9USVRMRSkKICAg
ICAgICAgcmV0dXJuIHJlc3BbJ3ZhbHVlJ10gaWYgcmVzcFsndmFsdWUnXSBpcyBub3QgTm9uZSBl
bHNlICIiCkBAIC0zMzcsNyArMzYzLDcgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAg
ICAgICIiIkZpbmRzIGFuIGVsZW1lbnQgYnkgaWQuCiAKICAgICAgICAgOkFyZ3M6Ci0gICAgICAg
ICAtIGlkXF8gLSBUaGUgaWQgb2YgdGhlIGVsZW1lbnQgdG8gYmUgZm91bmQuCisgICAgICAgICAt
IGlkXFxfIC0gVGhlIGlkIG9mIHRoZSBlbGVtZW50IHRvIGJlIGZvdW5kLgogCiAgICAgICAgIDpS
ZXR1cm5zOgogICAgICAgICAgLSBXZWJFbGVtZW50IC0gdGhlIGVsZW1lbnQgaWYgaXQgd2FzIGZv
dW5kCkBAIC0zNDYsNyArMzcyLDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAg
ICAtIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gLSBpZiB0aGUgZWxlbWVudCB3YXNuJ3QgZm91bmQK
IAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxl
bWVudF9ieV9pZCgnZm9vJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBlbGVt
ZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgnZm9vJykKICAgICAgICAgIiIiCiAgICAg
ICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9aWRfKQogCkBAIC0z
NTUsMTQgKzM4MywxNiBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgRmluZHMg
bXVsdGlwbGUgZWxlbWVudHMgYnkgaWQuCiAKICAgICAgICAgOkFyZ3M6Ci0gICAgICAgICAtIGlk
XF8gLSBUaGUgaWQgb2YgdGhlIGVsZW1lbnRzIHRvIGJlIGZvdW5kLgorICAgICAgICAgLSBpZFxc
XyAtIFRoZSBpZCBvZiB0aGUgZWxlbWVudHMgdG8gYmUgZm91bmQuCiAKICAgICAgICAgOlJldHVy
bnM6CiAgICAgICAgICAtIGxpc3Qgb2YgV2ViRWxlbWVudCAtIGEgbGlzdCB3aXRoIGVsZW1lbnRz
IGlmIGFueSB3YXMgZm91bmQuICBBbgogICAgICAgICAgICBlbXB0eSBsaXN0IGlmIG5vdAogCiAg
ICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVu
dHNfYnlfaWQoJ2ZvbycpCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZWxlbWVu
dHMgPSBkcml2ZXIuZmluZF9lbGVtZW50c19ieV9pZCgnZm9vJykKICAgICAgICAgIiIiCiAgICAg
ICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuSUQsIHZhbHVlPWlkXykKIApAQCAt
MzgwLDcgKzQxMCw5IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICAgLSBOb1N1
Y2hFbGVtZW50RXhjZXB0aW9uIC0gaWYgdGhlIGVsZW1lbnQgd2Fzbid0IGZvdW5kCiAKICAgICAg
ICAgOlVzYWdlOgotICAgICAgICAgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
eHBhdGgoJy8vZGl2L3RkWzFdJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBl
bGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgnLy9kaXYvdGRbMV0nKQogICAg
ICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LlhQQVRILCB2
YWx1ZT14cGF0aCkKIApAQCAtMzk2LDcgKzQyOCw5IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3Qp
OgogICAgICAgICAgICBlbXB0eSBsaXN0IGlmIG5vdAogCiAgICAgICAgIDpVc2FnZToKLSAgICAg
ICAgICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoIi8vZGl2W2Nv
bnRhaW5zKEBjbGFzcywgJ2ZvbycpXSIpCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAg
ICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50c19ieV94cGF0aCgiLy9kaXZbY29udGFp
bnMoQGNsYXNzLCAnZm9vJyldIikKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmZp
bmRfZWxlbWVudHMoYnk9QnkuWFBBVEgsIHZhbHVlPXhwYXRoKQogCkBAIC00MTQsNyArNDQ4LDkg
QEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAgICAtIE5vU3VjaEVsZW1lbnRFeGNl
cHRpb24gLSBpZiB0aGUgZWxlbWVudCB3YXNuJ3QgZm91bmQKIAogICAgICAgICA6VXNhZ2U6Ci0g
ICAgICAgICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoJ1Np
Z24gSW4nKQorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dCgnU2lnbiBJbicpCiAgICAgICAgICIiIgogICAg
ICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuTElOS19URVhULCB2YWx1ZT1saW5r
X3RleHQpCiAKQEAgLTQzMCw3ICs0NjYsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAg
ICAgICAgICAgZW1wdHkgbGlzdCBpZiBub3QKIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAg
ICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X2xpbmtfdGV4dCgnU2lnbiBJbicp
CisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50c19ieV9saW5rX3RleHQoJ1NpZ24gSW4nKQogICAgICAgICAiIiIKICAgICAgICAg
cmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5MSU5LX1RFWFQsIHZhbHVlPXRleHQpCiAK
QEAgLTQ0OCw3ICs0ODYsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgIC0g
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiAtIGlmIHRoZSBlbGVtZW50IHdhc24ndCBmb3VuZAogCiAg
ICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X3BhcnRpYWxfbGlua190ZXh0KCdTaWduJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAg
ICAgICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9wYXJ0aWFsX2xpbmtfdGV4
dCgnU2lnbicpCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQo
Ynk9QnkuUEFSVElBTF9MSU5LX1RFWFQsIHZhbHVlPWxpbmtfdGV4dCkKIApAQCAtNDY0LDcgKzUw
NCw5IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICAgICBlbXB0eSBsaXN0IGlm
IG5vdAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1lbnRzID0gZHJpdmVyLmZp
bmRfZWxlbWVudHNfYnlfcGFydGlhbF9saW5rX3RleHQoJ1NpZ24nKQorICAgICAgICAgICAgOjoK
KworICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfcGFy
dGlhbF9saW5rX3RleHQoJ1NpZ24nKQogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYu
ZmluZF9lbGVtZW50cyhieT1CeS5QQVJUSUFMX0xJTktfVEVYVCwgdmFsdWU9bGlua190ZXh0KQog
CkBAIC00ODIsNyArNTI0LDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAgICAt
IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gLSBpZiB0aGUgZWxlbWVudCB3YXNuJ3QgZm91bmQKIAog
ICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9uYW1lKCdmb28nKQorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGVsZW1l
bnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoJ2ZvbycpCiAgICAgICAgICIiIgogICAg
ICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuTkFNRSwgdmFsdWU9bmFtZSkKIApA
QCAtNDk4LDcgKzU0Miw5IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICAgICBl
bXB0eSBsaXN0IGlmIG5vdAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1lbnRz
ID0gZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfbmFtZSgnZm9vJykKKyAgICAgICAgICAgIDo6CisK
KyAgICAgICAgICAgICAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X25hbWUo
J2ZvbycpCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5
PUJ5Lk5BTUUsIHZhbHVlPW5hbWUpCiAKQEAgLTUxNiw3ICs1NjIsOSBAQCBjbGFzcyBXZWJEcml2
ZXIob2JqZWN0KToKICAgICAgICAgIC0gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiAtIGlmIHRoZSBl
bGVtZW50IHdhc24ndCBmb3VuZAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1l
bnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCdoMScpCisgICAgICAgICAgICA6
OgorCisgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFn
X25hbWUoJ2gxJykKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVu
dChieT1CeS5UQUdfTkFNRSwgdmFsdWU9bmFtZSkKIApAQCAtNTMyLDcgKzU4MCw5IEBAIGNsYXNz
IFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICAgICBlbXB0eSBsaXN0IGlmIG5vdAogCiAgICAg
ICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHNf
YnlfdGFnX25hbWUoJ2gxJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBlbGVt
ZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCdoMScpCiAgICAgICAgICIi
IgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LlRBR19OQU1FLCB2YWx1
ZT1uYW1lKQogCkBAIC01NTAsNyArNjAwLDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAg
ICAgICAgICAtIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gLSBpZiB0aGUgZWxlbWVudCB3YXNuJ3Qg
Zm91bmQKIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50ID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9jbGFzc19uYW1lKCdmb28nKQorICAgICAgICAgICAgOjoKKworICAgICAg
ICAgICAgICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoJ2Zv
bycpCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9Qnku
Q0xBU1NfTkFNRSwgdmFsdWU9bmFtZSkKIApAQCAtNTY2LDcgKzYxOCw5IEBAIGNsYXNzIFdlYkRy
aXZlcihvYmplY3QpOgogICAgICAgICAgICBlbXB0eSBsaXN0IGlmIG5vdAogCiAgICAgICAgIDpV
c2FnZToKLSAgICAgICAgICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfY2xh
c3NfbmFtZSgnZm9vJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBlbGVtZW50
cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X2NsYXNzX25hbWUoJ2ZvbycpCiAgICAgICAgICIi
IgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkNMQVNTX05BTUUsIHZh
bHVlPW5hbWUpCiAKQEAgLTU4NCw3ICs2MzgsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToK
ICAgICAgICAgIC0gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiAtIGlmIHRoZSBlbGVtZW50IHdhc24n
dCBmb3VuZAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcignI2ZvbycpCisgICAgICAgICAgICA6OgorCisg
ICAgICAgICAgICAgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVj
dG9yKCcjZm9vJykKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVu
dChieT1CeS5DU1NfU0VMRUNUT1IsIHZhbHVlPWNzc19zZWxlY3RvcikKIApAQCAtNjAwLDcgKzY1
Niw5IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICAgICBlbXB0eSBsaXN0IGlm
IG5vdAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1lbnRzID0gZHJpdmVyLmZp
bmRfZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKCcuZm9vJykKKyAgICAgICAgICAgIDo6CisKKyAg
ICAgICAgICAgICAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X2Nzc19zZWxl
Y3RvcignLmZvbycpCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1l
bnRzKGJ5PUJ5LkNTU19TRUxFQ1RPUiwgdmFsdWU9Y3NzX3NlbGVjdG9yKQogCkBAIC02MTAsMTAg
KzY2OCwxMiBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKIAogICAgICAgICA6QXJnczoKICAg
ICAgICAgIC0gc2NyaXB0OiBUaGUgSmF2YVNjcmlwdCB0byBleGVjdXRlLgotICAgICAgICAgLSBc
KmFyZ3M6IEFueSBhcHBsaWNhYmxlIGFyZ3VtZW50cyBmb3IgeW91ciBKYXZhU2NyaXB0LgorICAg
ICAgICAgLSBcXCphcmdzOiBBbnkgYXBwbGljYWJsZSBhcmd1bWVudHMgZm9yIHlvdXIgSmF2YVNj
cmlwdC4KIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoJ3JldHVybiBkb2N1bWVudC50aXRsZTsnKQorICAgICAgICAgICAgOjoKKworICAgICAgICAg
ICAgICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIGRvY3VtZW50LnRpdGxlOycpCiAg
ICAgICAgICIiIgogICAgICAgICBjb252ZXJ0ZWRfYXJncyA9IGxpc3QoYXJncykKICAgICAgICAg
Y29tbWFuZCA9IE5vbmUKQEAgLTYzMiwxMiArNjkyLDE0IEBAIGNsYXNzIFdlYkRyaXZlcihvYmpl
Y3QpOgogCiAgICAgICAgIDpBcmdzOgogICAgICAgICAgLSBzY3JpcHQ6IFRoZSBKYXZhU2NyaXB0
IHRvIGV4ZWN1dGUuCi0gICAgICAgICAtIFwqYXJnczogQW55IGFwcGxpY2FibGUgYXJndW1lbnRz
IGZvciB5b3VyIEphdmFTY3JpcHQuCisgICAgICAgICAtIFxcKmFyZ3M6IEFueSBhcHBsaWNhYmxl
IGFyZ3VtZW50cyBmb3IgeW91ciBKYXZhU2NyaXB0LgogCiAgICAgICAgIDpVc2FnZToKLSAgICAg
ICAgICAgIHNjcmlwdCA9ICJ2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0
aCAtIDFdOyAiIFwKLSAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpeyBjYWxsYmFjaygndGltZW91dCcpIH0sIDMwMDApOyIKLSAgICAgICAgICAgIGRyaXZl
ci5leGVjdXRlX2FzeW5jX3NjcmlwdChzY3JpcHQpCisgICAgICAgICAgICA6OgorCisgICAgICAg
ICAgICAgICAgc2NyaXB0ID0gInZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVu
Z3RoIC0gMV07ICIgXFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAid2luZG93LnNldFRpbWVv
dXQoZnVuY3Rpb24oKXsgY2FsbGJhY2soJ3RpbWVvdXQnKSB9LCAzMDAwKTsiCisgICAgICAgICAg
ICAgICAgZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNjcmlwdCkKICAgICAgICAgIiIiCiAg
ICAgICAgIGNvbnZlcnRlZF9hcmdzID0gbGlzdChhcmdzKQogICAgICAgICBpZiBzZWxmLnczYzoK
QEAgLTY1NSw3ICs3MTcsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgR2V0
cyB0aGUgVVJMIG9mIHRoZSBjdXJyZW50IHBhZ2UuCiAKICAgICAgICAgOlVzYWdlOgotICAgICAg
ICAgICAgZHJpdmVyLmN1cnJlbnRfdXJsCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAg
ICAgZHJpdmVyLmN1cnJlbnRfdXJsCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5l
eGVjdXRlKENvbW1hbmQuR0VUX0NVUlJFTlRfVVJMKVsndmFsdWUnXQogCkBAIC02NjUsNyArNzI5
LDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIEdldHMgdGhlIHNvdXJjZSBv
ZiB0aGUgY3VycmVudCBwYWdlLgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZl
ci5wYWdlX3NvdXJjZQorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGRyaXZlci5w
YWdlX3NvdXJjZQogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShDb21t
YW5kLkdFVF9QQUdFX1NPVVJDRSlbJ3ZhbHVlJ10KIApAQCAtNjc0LDcgKzc0MCw5IEBAIGNsYXNz
IFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICBDbG9zZXMgdGhlIGN1cnJlbnQgd2luZG93Lgog
CiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5jbG9zZSgpCisgICAgICAgICAg
ICA6OgorCisgICAgICAgICAgICAgICAgZHJpdmVyLmNsb3NlKCkKICAgICAgICAgIiIiCiAgICAg
ICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLkNMT1NFKQogCkBAIC02ODMsMTIgKzc1MSwxNSBAQCBj
bGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgUXVpdHMgdGhlIGRyaXZlciBhbmQgY2xv
c2VzIGV2ZXJ5IGFzc29jaWF0ZWQgd2luZG93LgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAg
ICAgIGRyaXZlci5xdWl0KCkKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBkcml2
ZXIucXVpdCgpCiAgICAgICAgICIiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmV4
ZWN1dGUoQ29tbWFuZC5RVUlUKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgc2VsZi5z
dG9wX2NsaWVudCgpCisgICAgICAgICAgICBzZWxmLmNvbW1hbmRfZXhlY3V0b3IuY2xvc2UoKQog
CiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGN1cnJlbnRfd2luZG93X2hhbmRsZShzZWxmKToKQEAg
LTY5Niw3ICs3NjcsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgUmV0dXJu
cyB0aGUgaGFuZGxlIG9mIHRoZSBjdXJyZW50IHdpbmRvdy4KIAogICAgICAgICA6VXNhZ2U6Ci0g
ICAgICAgICAgICBkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgICAgICAgICA6Ogor
CisgICAgICAgICAgICAgICAgZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQogICAgICAgICAi
IiIKICAgICAgICAgaWYgc2VsZi53M2M6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRl
KENvbW1hbmQuVzNDX0dFVF9DVVJSRU5UX1dJTkRPV19IQU5ETEUpWyd2YWx1ZSddCkBAIC03MDks
NyArNzgyLDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIFJldHVybnMgdGhl
IGhhbmRsZXMgb2YgYWxsIHdpbmRvd3Mgd2l0aGluIHRoZSBjdXJyZW50IHNlc3Npb24uCiAKICAg
ICAgICAgOlVzYWdlOgotICAgICAgICAgICAgZHJpdmVyLndpbmRvd19oYW5kbGVzCisgICAgICAg
ICAgICA6OgorCisgICAgICAgICAgICAgICAgZHJpdmVyLndpbmRvd19oYW5kbGVzCiAgICAgICAg
ICIiIgogICAgICAgICBpZiBzZWxmLnczYzoKICAgICAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1
dGUoQ29tbWFuZC5XM0NfR0VUX1dJTkRPV19IQU5ETEVTKVsndmFsdWUnXQpAQCAtNzIwLDEwICs3
OTUsMTIgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICBN
YXhpbWl6ZXMgdGhlIGN1cnJlbnQgd2luZG93IHRoYXQgd2ViZHJpdmVyIGlzIHVzaW5nCiAgICAg
ICAgICIiIgotICAgICAgICBjb21tYW5kID0gQ29tbWFuZC5NQVhJTUlaRV9XSU5ET1cKLSAgICAg
ICAgaWYgc2VsZi53M2M6Ci0gICAgICAgICAgICBjb21tYW5kID0gQ29tbWFuZC5XM0NfTUFYSU1J
WkVfV0lORE9XCi0gICAgICAgIHNlbGYuZXhlY3V0ZShjb21tYW5kLCB7IndpbmRvd0hhbmRsZSI6
ICJjdXJyZW50In0pCisgICAgICAgIHBhcmFtcyA9IE5vbmUKKyAgICAgICAgY29tbWFuZCA9IENv
bW1hbmQuVzNDX01BWElNSVpFX1dJTkRPVworICAgICAgICBpZiBub3Qgc2VsZi53M2M6CisgICAg
ICAgICAgICBjb21tYW5kID0gQ29tbWFuZC5NQVhJTUlaRV9XSU5ET1cKKyAgICAgICAgICAgIHBh
cmFtcyA9IHsnd2luZG93SGFuZGxlJzogJ2N1cnJlbnQnfQorICAgICAgICBzZWxmLmV4ZWN1dGUo
Y29tbWFuZCwgcGFyYW1zKQogCiAgICAgZGVmIGZ1bGxzY3JlZW5fd2luZG93KHNlbGYpOgogICAg
ICAgICAiIiIKQEAgLTc0NCw0NyArODIxLDE4IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgog
ICAgICAgICAgICAgLSBTd2l0Y2hUbzogYW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIG9wdGlvbnMg
dG8gc3dpdGNoIGZvY3VzIGludG8KIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVt
ZW50ID0gZHJpdmVyLnN3aXRjaF90by5hY3RpdmVfZWxlbWVudAotICAgICAgICAgICAgYWxlcnQg
PSBkcml2ZXIuc3dpdGNoX3RvLmFsZXJ0Ci0gICAgICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmRl
ZmF1bHRfY29udGVudCgpCi0gICAgICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKCdmcmFt
ZV9uYW1lJykKLSAgICAgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoMSkKLSAgICAgICAg
ICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfdGFnX25h
bWUoImlmcmFtZSIpWzBdKQotICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5wYXJlbnRfZnJh
bWUoKQotICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coJ21haW4nKQotICAgICAg
ICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3N3aXRjaF90bwotCi0gICAgIyBUYXJnZXQgTG9j
YXRvcnMKLSAgICBkZWYgc3dpdGNoX3RvX2FjdGl2ZV9lbGVtZW50KHNlbGYpOgotICAgICAgICAi
IiIgRGVwcmVjYXRlZCB1c2UgZHJpdmVyLnN3aXRjaF90by5hY3RpdmVfZWxlbWVudAotICAgICAg
ICAiIiIKLSAgICAgICAgd2FybmluZ3Mud2FybigidXNlIGRyaXZlci5zd2l0Y2hfdG8uYWN0aXZl
X2VsZW1lbnQgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3N3aXRjaF90by5hY3RpdmVfZWxlbWVudAotCi0gICAgZGVmIHN3aXRjaF90b193aW5kb3co
c2VsZiwgd2luZG93X25hbWUpOgotICAgICAgICAiIiIgRGVwcmVjYXRlZCB1c2UgZHJpdmVyLnN3
aXRjaF90by53aW5kb3cKLSAgICAgICAgIiIiCi0gICAgICAgIHdhcm5pbmdzLndhcm4oInVzZSBk
cml2ZXIuc3dpdGNoX3RvLndpbmRvdyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nKQotICAg
ICAgICBzZWxmLl9zd2l0Y2hfdG8ud2luZG93KHdpbmRvd19uYW1lKQotCi0gICAgZGVmIHN3aXRj
aF90b19mcmFtZShzZWxmLCBmcmFtZV9yZWZlcmVuY2UpOgotICAgICAgICAiIiIgRGVwcmVjYXRl
ZCB1c2UgZHJpdmVyLnN3aXRjaF90by5mcmFtZQotICAgICAgICAiIiIKLSAgICAgICAgd2Fybmlu
Z3Mud2FybigidXNlIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUgaW5zdGVhZCIsIERlcHJlY2F0aW9u
V2FybmluZykKLSAgICAgICAgc2VsZi5fc3dpdGNoX3RvLmZyYW1lKGZyYW1lX3JlZmVyZW5jZSkK
LQotICAgIGRlZiBzd2l0Y2hfdG9fZGVmYXVsdF9jb250ZW50KHNlbGYpOgotICAgICAgICAiIiIg
RGVwcmVjYXRlZCB1c2UgZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQKLSAgICAgICAg
IiIiCi0gICAgICAgIHdhcm5pbmdzLndhcm4oInVzZSBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRf
Y29udGVudCBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICBzZWxmLl9zd2l0
Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKKyAgICAgICAgICAgIDo6CiAKLSAgICBkZWYgc3dpdGNo
X3RvX2FsZXJ0KHNlbGYpOgotICAgICAgICAiIiIgRGVwcmVjYXRlZCB1c2UgZHJpdmVyLnN3aXRj
aF90by5hbGVydAorICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkcml2ZXIuc3dpdGNoX3RvLmFj
dGl2ZV9lbGVtZW50CisgICAgICAgICAgICAgICAgYWxlcnQgPSBkcml2ZXIuc3dpdGNoX3RvLmFs
ZXJ0CisgICAgICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQor
ICAgICAgICAgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoJ2ZyYW1lX25hbWUnKQorICAg
ICAgICAgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoMSkKKyAgICAgICAgICAgICAgICBk
cml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCJp
ZnJhbWUiKVswXSkKKyAgICAgICAgICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLnBhcmVudF9mcmFt
ZSgpCisgICAgICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coJ21haW4nKQogICAg
ICAgICAiIiIKLSAgICAgICAgd2FybmluZ3Mud2FybigidXNlIGRyaXZlci5zd2l0Y2hfdG8uYWxl
cnQgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgcmV0dXJuIHNlbGYuX3N3
aXRjaF90by5hbGVydAorICAgICAgICByZXR1cm4gc2VsZi5fc3dpdGNoX3RvCiAKICAgICAjIE5h
dmlnYXRpb24KICAgICBkZWYgYmFjayhzZWxmKToKQEAgLTc5Miw3ICs4NDAsOSBAQCBjbGFzcyBX
ZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgR29lcyBvbmUgc3RlcCBiYWNrd2FyZCBpbiB0aGUg
YnJvd3NlciBoaXN0b3J5LgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5i
YWNrKCkKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBkcml2ZXIuYmFjaygpCiAg
ICAgICAgICIiIgogICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HT19CQUNLKQogCkBAIC04
MDEsNyArODUxLDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIEdvZXMgb25l
IHN0ZXAgZm9yd2FyZCBpbiB0aGUgYnJvd3NlciBoaXN0b3J5LgogCiAgICAgICAgIDpVc2FnZToK
LSAgICAgICAgICAgIGRyaXZlci5mb3J3YXJkKCkKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAg
ICAgICAgICBkcml2ZXIuZm9yd2FyZCgpCiAgICAgICAgICIiIgogICAgICAgICBzZWxmLmV4ZWN1
dGUoQ29tbWFuZC5HT19GT1JXQVJEKQogCkBAIC04MTAsNyArODYyLDkgQEAgY2xhc3MgV2ViRHJp
dmVyKG9iamVjdCk6CiAgICAgICAgIFJlZnJlc2hlcyB0aGUgY3VycmVudCBwYWdlLgogCiAgICAg
ICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5yZWZyZXNoKCkKKyAgICAgICAgICAgIDo6
CisKKyAgICAgICAgICAgICAgICBkcml2ZXIucmVmcmVzaCgpCiAgICAgICAgICIiIgogICAgICAg
ICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5SRUZSRVNIKQogCkBAIC04MjAsNyArODc0LDkgQEAgY2xh
c3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIFJldHVybnMgYSBzZXQgb2YgZGljdGlvbmFy
aWVzLCBjb3JyZXNwb25kaW5nIHRvIGNvb2tpZXMgdmlzaWJsZSBpbiB0aGUgY3VycmVudCBzZXNz
aW9uLgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5nZXRfY29va2llcygp
CisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZHJpdmVyLmdldF9jb29raWVzKCkK
ICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfQUxM
X0NPT0tJRVMpWyd2YWx1ZSddCiAKQEAgLTgyOSwyMCArODg1LDMwIEBAIGNsYXNzIFdlYkRyaXZl
cihvYmplY3QpOgogICAgICAgICBHZXQgYSBzaW5nbGUgY29va2llIGJ5IG5hbWUuIFJldHVybnMg
dGhlIGNvb2tpZSBpZiBmb3VuZCwgTm9uZSBpZiBub3QuCiAKICAgICAgICAgOlVzYWdlOgotICAg
ICAgICAgICAgZHJpdmVyLmdldF9jb29raWUoJ215X2Nvb2tpZScpCisgICAgICAgICAgICA6Ogor
CisgICAgICAgICAgICAgICAgZHJpdmVyLmdldF9jb29raWUoJ215X2Nvb2tpZScpCiAgICAgICAg
ICIiIgotICAgICAgICBjb29raWVzID0gc2VsZi5nZXRfY29va2llcygpCi0gICAgICAgIGZvciBj
b29raWUgaW4gY29va2llczoKLSAgICAgICAgICAgIGlmIGNvb2tpZVsnbmFtZSddID09IG5hbWU6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvb2tpZQotICAgICAgICByZXR1cm4gTm9uZQorICAg
ICAgICBpZiBzZWxmLnczYzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuR0VUX0NPT0tJRSwgeyduYW1lJzogbmFtZX0pWyd2YWx1
ZSddCisgICAgICAgICAgICBleGNlcHQgTm9TdWNoQ29va2llRXhjZXB0aW9uOgorICAgICAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb29raWVzID0g
c2VsZi5nZXRfY29va2llcygpCisgICAgICAgICAgICBmb3IgY29va2llIGluIGNvb2tpZXM6Cisg
ICAgICAgICAgICAgICAgaWYgY29va2llWyduYW1lJ10gPT0gbmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGNvb2tpZQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGRlZiBk
ZWxldGVfY29va2llKHNlbGYsIG5hbWUpOgogICAgICAgICAiIiIKICAgICAgICAgRGVsZXRlcyBh
IHNpbmdsZSBjb29raWUgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KIAogICAgICAgICA6VXNhZ2U6Ci0g
ICAgICAgICAgICBkcml2ZXIuZGVsZXRlX2Nvb2tpZSgnbXlfY29va2llJykKKyAgICAgICAgICAg
IDo6CisKKyAgICAgICAgICAgICAgICBkcml2ZXIuZGVsZXRlX2Nvb2tpZSgnbXlfY29va2llJykK
ICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLkRFTEVURV9DT09LSUUs
IHsnbmFtZSc6IG5hbWV9KQogCkBAIC04NTEsNyArOTE3LDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9i
amVjdCk6CiAgICAgICAgIERlbGV0ZSBhbGwgY29va2llcyBpbiB0aGUgc2NvcGUgb2YgdGhlIHNl
c3Npb24uCiAKICAgICAgICAgOlVzYWdlOgotICAgICAgICAgICAgZHJpdmVyLmRlbGV0ZV9hbGxf
Y29va2llcygpCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZHJpdmVyLmRlbGV0
ZV9hbGxfY29va2llcygpCiAgICAgICAgICIiIgogICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFu
ZC5ERUxFVEVfQUxMX0NPT0tJRVMpCiAKQEAgLTg4Myw3ICs5NTEsOSBAQCBjbGFzcyBXZWJEcml2
ZXIob2JqZWN0KToKICAgICAgICAgIC0gdGltZV90b193YWl0OiBBbW91bnQgb2YgdGltZSB0byB3
YWl0IChpbiBzZWNvbmRzKQogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5p
bXBsaWNpdGx5X3dhaXQoMzApCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZHJp
dmVyLmltcGxpY2l0bHlfd2FpdCgzMCkKICAgICAgICAgIiIiCiAgICAgICAgIGlmIHNlbGYudzNj
OgogICAgICAgICAgICAgc2VsZi5leGVjdXRlKENvbW1hbmQuU0VUX1RJTUVPVVRTLCB7CkBAIC05
MDEsNyArOTcxLDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgICAgICAtIHRpbWVf
dG9fd2FpdDogVGhlIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgKGluIHNlY29uZHMpCiAKICAgICAg
ICAgOlVzYWdlOgotICAgICAgICAgICAgZHJpdmVyLnNldF9zY3JpcHRfdGltZW91dCgzMCkKKyAg
ICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBkcml2ZXIuc2V0X3NjcmlwdF90aW1lb3V0
KDMwKQogICAgICAgICAiIiIKICAgICAgICAgaWYgc2VsZi53M2M6CiAgICAgICAgICAgICBzZWxm
LmV4ZWN1dGUoQ29tbWFuZC5TRVRfVElNRU9VVFMsIHsKQEAgLTkxOSw3ICs5OTEsOSBAQCBjbGFz
cyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgIC0gdGltZV90b193YWl0OiBUaGUgYW1vdW50
IG9mIHRpbWUgdG8gd2FpdAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5z
ZXRfcGFnZV9sb2FkX3RpbWVvdXQoMzApCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAg
ICAgZHJpdmVyLnNldF9wYWdlX2xvYWRfdGltZW91dCgzMCkKICAgICAgICAgIiIiCiAgICAgICAg
IHRyeToKICAgICAgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLlNFVF9USU1FT1VUUywgewpA
QCAtOTI5LDEyICsxMDAzLDQ1IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICAg
ICAgICAgICdtcyc6IGZsb2F0KHRpbWVfdG9fd2FpdCkgKiAxMDAwLAogICAgICAgICAgICAgICAg
ICd0eXBlJzogJ3BhZ2UgbG9hZCd9KQogCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRpbWVvdXRz
KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0IGFsbCB0aGUgdGltZW91dHMgdGhhdCBo
YXZlIGJlZW4gc2V0IG9uIHRoZSBjdXJyZW50IHNlc3Npb24KKworICAgICAgICA6VXNhZ2U6Cisg
ICAgICAgICAgICA6OgorICAgICAgICAgICAgICAgIGRyaXZlci50aW1lb3V0cworICAgICAgICA6
cnR5cGU6IFRpbWVvdXQKKyAgICAgICAgIiIiCisgICAgICAgIHRpbWVvdXRzID0gc2VsZi5leGVj
dXRlKENvbW1hbmQuR0VUX1RJTUVPVVRTKVsndmFsdWUnXQorICAgICAgICB0aW1lb3V0c1siaW1w
bGljaXRfd2FpdCJdID0gdGltZW91dHMucG9wKCJpbXBsaWNpdCIpIC8gMTAwMAorICAgICAgICB0
aW1lb3V0c1sicGFnZV9sb2FkIl0gPSB0aW1lb3V0cy5wb3AoInBhZ2VMb2FkIikgLyAxMDAwCisg
ICAgICAgIHRpbWVvdXRzWyJzY3JpcHQiXSA9IHRpbWVvdXRzLnBvcCgic2NyaXB0IikgLyAxMDAw
CisgICAgICAgIHJldHVybiBUaW1lb3V0cygqKnRpbWVvdXRzKQorCisgICAgQHRpbWVvdXRzLnNl
dHRlcgorICAgIGRlZiB0aW1lb3V0cyhzZWxmLCB0aW1lb3V0cyk6CisgICAgICAgICIiIgorICAg
ICAgICBTZXQgYWxsIHRpbWVvdXRzIGZvciB0aGUgc2Vzc2lvbi4gVGhpcyB3aWxsIG92ZXJyaWRl
IGFueSBwcmV2aW91c2x5IAorICAgICAgICBzZXQgdGltZW91dHMuCisKKyAgICAgICAgOlVzYWdl
OgorICAgICAgICAgICAgOjoKKyAgICAgICAgICAgICAgICBteV90aW1lb3V0cyA9IFRpbWVvdXRz
KCkKKyAgICAgICAgICAgICAgICBteV90aW1lb3V0cy5pbXBsaWNpdF93YWl0ID0gMTAKKyAgICAg
ICAgICAgICAgICBkcml2ZXIudGltZW91dHMgPSBteV90aW1lb3V0cworICAgICAgICAiIiIKKyAg
ICAgICAgc2VsZi5leGVjdXRlKENvbW1hbmQuU0VUX1RJTUVPVVRTLCB0aW1lb3V0cy5fdG9fanNv
bigpKVsndmFsdWUnXQorCiAgICAgZGVmIGZpbmRfZWxlbWVudChzZWxmLCBieT1CeS5JRCwgdmFs
dWU9Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICAnUHJpdmF0ZScgbWV0aG9kIHVzZWQgYnkg
dGhlIGZpbmRfZWxlbWVudF9ieV8qIG1ldGhvZHMuCisgICAgICAgIEZpbmQgYW4gZWxlbWVudCBn
aXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLiBQcmVmZXIgdGhlIGZpbmRfZWxlbWVudF9i
eV8qIG1ldGhvZHMgd2hlbgorICAgICAgICBwb3NzaWJsZS4KIAogICAgICAgICA6VXNhZ2U6Ci0g
ICAgICAgICAgICBVc2UgdGhlIGNvcnJlc3BvbmRpbmcgZmluZF9lbGVtZW50X2J5XyogaW5zdGVh
ZCBvZiB0aGlzLgorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAnZm9vJykKIAogICAgICAgICA6cnR5cGU6IFdlYkVs
ZW1lbnQKICAgICAgICAgIiIiCkBAIC05NTYsMTMgKzEwNjMsMjIgQEAgY2xhc3MgV2ViRHJpdmVy
KG9iamVjdCk6CiAKICAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1CeS5JRCwgdmFsdWU9
Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICAnUHJpdmF0ZScgbWV0aG9kIHVzZWQgYnkgdGhl
IGZpbmRfZWxlbWVudHNfYnlfKiBtZXRob2RzLgorICAgICAgICBGaW5kIGVsZW1lbnRzIGdpdmVu
IGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0b3IuIFByZWZlciB0aGUgZmluZF9lbGVtZW50c19ieV8q
IG1ldGhvZHMgd2hlbgorICAgICAgICBwb3NzaWJsZS4KIAogICAgICAgICA6VXNhZ2U6Ci0gICAg
ICAgICAgICBVc2UgdGhlIGNvcnJlc3BvbmRpbmcgZmluZF9lbGVtZW50c19ieV8qIGluc3RlYWQg
b2YgdGhpcy4KKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBlbGVtZW50cyA9IGRy
aXZlci5maW5kX2VsZW1lbnRzKEJ5LkNMQVNTX05BTUUsICdmb28nKQogCiAgICAgICAgIDpydHlw
ZTogbGlzdCBvZiBXZWJFbGVtZW50CiAgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3RhbmNl
KGJ5LCBSZWxhdGl2ZUJ5KToKKyAgICAgICAgICAgIF9wa2cgPSAnLicuam9pbihfX25hbWVfXy5z
cGxpdCgnLicpWzotMV0pCisgICAgICAgICAgICByYXdfZnVuY3Rpb24gPSBwa2d1dGlsLmdldF9k
YXRhKF9wa2csICdmaW5kRWxlbWVudHMuanMnKS5kZWNvZGUoJ3V0ZjgnKQorICAgICAgICAgICAg
ZmluZF9lbGVtZW50X2pzID0gInJldHVybiAoJXMpLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7IiAl
IHJhd19mdW5jdGlvbgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZV9zY3JpcHQoZmlu
ZF9lbGVtZW50X2pzLCBieS50b19kaWN0KCkpCisKICAgICAgICAgaWYgc2VsZi53M2M6CiAgICAg
ICAgICAgICBpZiBieSA9PSBCeS5JRDoKICAgICAgICAgICAgICAgICBieSA9IEJ5LkNTU19TRUxF
Q1RPUgpAQCAtMTAwMCw3ICsxMTE2LDkgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAg
ICAgICAgIHNob3VsZCBlbmQgd2l0aCBhIGAucG5nYCBleHRlbnNpb24uCiAKICAgICAgICAgOlVz
YWdlOgotICAgICAgICAgICAgZHJpdmVyLmdldF9zY3JlZW5zaG90X2FzX2ZpbGUoJy9TY3JlZW5z
aG90cy9mb28ucG5nJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBkcml2ZXIu
Z2V0X3NjcmVlbnNob3RfYXNfZmlsZSgnL1NjcmVlbnNob3RzL2Zvby5wbmcnKQogICAgICAgICAi
IiIKICAgICAgICAgaWYgbm90IGZpbGVuYW1lLmxvd2VyKCkuZW5kc3dpdGgoJy5wbmcnKToKICAg
ICAgICAgICAgIHdhcm5pbmdzLndhcm4oIm5hbWUgdXNlZCBmb3Igc2F2ZWQgc2NyZWVuc2hvdCBk
b2VzIG5vdCBtYXRjaCBmaWxlICIKQEAgLTEwMjYsNyArMTE0NCw5IEBAIGNsYXNzIFdlYkRyaXZl
cihvYmplY3QpOgogICAgICAgICAgICBzaG91bGQgZW5kIHdpdGggYSBgLnBuZ2AgZXh0ZW5zaW9u
LgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5zYXZlX3NjcmVlbnNob3Qo
Jy9TY3JlZW5zaG90cy9mb28ucG5nJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAg
ICBkcml2ZXIuc2F2ZV9zY3JlZW5zaG90KCcvU2NyZWVuc2hvdHMvZm9vLnBuZycpCiAgICAgICAg
ICIiIgogICAgICAgICByZXR1cm4gc2VsZi5nZXRfc2NyZWVuc2hvdF9hc19maWxlKGZpbGVuYW1l
KQogCkBAIC0xMDM1LDcgKzExNTUsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAg
ICAgR2V0cyB0aGUgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCB3aW5kb3cgYXMgYSBiaW5hcnkg
ZGF0YS4KIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBkcml2ZXIuZ2V0X3NjcmVlbnNo
b3RfYXNfcG5nKCkKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBkcml2ZXIuZ2V0
X3NjcmVlbnNob3RfYXNfcG5nKCkKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBiYXNlNjQu
YjY0ZGVjb2RlKHNlbGYuZ2V0X3NjcmVlbnNob3RfYXNfYmFzZTY0KCkuZW5jb2RlKCdhc2NpaScp
KQogCkBAIC0xMDQ1LDcgKzExNjcsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAg
ICAgICAgd2hpY2ggaXMgdXNlZnVsIGluIGVtYmVkZGVkIGltYWdlcyBpbiBIVE1MLgogCiAgICAg
ICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5nZXRfc2NyZWVuc2hvdF9hc19iYXNlNjQo
KQorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGRyaXZlci5nZXRfc2NyZWVuc2hv
dF9hc19iYXNlNjQoKQogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShD
b21tYW5kLlNDUkVFTlNIT1QpWyd2YWx1ZSddCiAKQEAgLTEwNTgsNyArMTE4Miw5IEBAIGNsYXNz
IFdlYkRyaXZlcihvYmplY3QpOgogICAgICAgICAgLSBoZWlnaHQ6IHRoZSBoZWlnaHQgaW4gcGl4
ZWxzIHRvIHNldCB0aGUgd2luZG93IHRvCiAKICAgICAgICAgOlVzYWdlOgotICAgICAgICAgICAg
ZHJpdmVyLnNldF93aW5kb3dfc2l6ZSg4MDAsNjAwKQorICAgICAgICAgICAgOjoKKworICAgICAg
ICAgICAgICAgIGRyaXZlci5zZXRfd2luZG93X3NpemUoODAwLDYwMCkKICAgICAgICAgIiIiCiAg
ICAgICAgIGlmIHNlbGYudzNjOgogICAgICAgICAgICAgaWYgd2luZG93SGFuZGxlICE9ICdjdXJy
ZW50JzoKQEAgLTEwNzUsNyArMTIwMSw5IEBAIGNsYXNzIFdlYkRyaXZlcihvYmplY3QpOgogICAg
ICAgICBHZXRzIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBjdXJyZW50IHdpbmRvdy4KIAog
ICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyAg
ICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkK
ICAgICAgICAgIiIiCiAgICAgICAgIGNvbW1hbmQgPSBDb21tYW5kLkdFVF9XSU5ET1dfU0laRQog
ICAgICAgICBpZiBzZWxmLnczYzoKQEAgLTEwOTksNyArMTIyNyw5IEBAIGNsYXNzIFdlYkRyaXZl
cihvYmplY3QpOgogICAgICAgICAgLSB5OiB0aGUgeS1jb29yZGluYXRlIGluIHBpeGVscyB0byBz
ZXQgdGhlIHdpbmRvdyBwb3NpdGlvbgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRy
aXZlci5zZXRfd2luZG93X3Bvc2l0aW9uKDAsMCkKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAg
ICAgICAgICBkcml2ZXIuc2V0X3dpbmRvd19wb3NpdGlvbigwLDApCiAgICAgICAgICIiIgogICAg
ICAgICBpZiBzZWxmLnczYzoKICAgICAgICAgICAgIGlmIHdpbmRvd0hhbmRsZSAhPSAnY3VycmVu
dCc6CkBAIC0xMTE4LDcgKzEyNDgsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAg
ICAgR2V0cyB0aGUgeCx5IHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHdpbmRvdy4KIAogICAgICAg
ICA6VXNhZ2U6Ci0gICAgICAgICAgICBkcml2ZXIuZ2V0X3dpbmRvd19wb3NpdGlvbigpCisgICAg
ICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZHJpdmVyLmdldF93aW5kb3dfcG9zaXRpb24o
KQogICAgICAgICAiIiIKICAgICAgICAgaWYgc2VsZi53M2M6CiAgICAgICAgICAgICBpZiB3aW5k
b3dIYW5kbGUgIT0gJ2N1cnJlbnQnOgpAQCAtMTEzNiwyMCArMTI2OCwyOSBAQCBjbGFzcyBXZWJE
cml2ZXIob2JqZWN0KToKICAgICAgICAgdGhlIGN1cnJlbnQgd2luZG93LgogCiAgICAgICAgIDpV
c2FnZToKLSAgICAgICAgICAgIGRyaXZlci5nZXRfd2luZG93X3JlY3QoKQorICAgICAgICAgICAg
OjoKKworICAgICAgICAgICAgICAgIGRyaXZlci5nZXRfd2luZG93X3JlY3QoKQogICAgICAgICAi
IiIKICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLkdFVF9XSU5ET1dfUkVDVClb
J3ZhbHVlJ10KIAogICAgIGRlZiBzZXRfd2luZG93X3JlY3Qoc2VsZiwgeD1Ob25lLCB5PU5vbmUs
IHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lKToKICAgICAgICAgIiIiCiAgICAgICAgIFNldHMgdGhl
IHgsIHkgY29vcmRpbmF0ZXMgb2YgdGhlIHdpbmRvdyBhcyB3ZWxsIGFzIGhlaWdodCBhbmQgd2lk
dGggb2YKLSAgICAgICAgdGhlIGN1cnJlbnQgd2luZG93LgorICAgICAgICB0aGUgY3VycmVudCB3
aW5kb3cuIFRoaXMgbWV0aG9kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBXM0MgY29tcGF0aWJsZQor
ICAgICAgICBicm93c2Vyczsgb3RoZXIgYnJvd3NlcnMgc2hvdWxkIHVzZSBgc2V0X3dpbmRvd19w
b3NpdGlvbmAgYW5kCisgICAgICAgIGBzZXRfd2luZG93X3NpemVgLgogCiAgICAgICAgIDpVc2Fn
ZToKLSAgICAgICAgICAgIGRyaXZlci5zZXRfd2luZG93X3JlY3QoeD0xMCwgeT0xMCkKLSAgICAg
ICAgICAgIGRyaXZlci5zZXRfd2luZG93X3JlY3Qod2lkdGg9MTAwLCBoZWlnaHQ9MjAwKQotICAg
ICAgICAgICAgZHJpdmVyLnNldF93aW5kb3dfcmVjdCh4PTEwLCB5PTEwLCB3aWR0aD0xMDAsIGhl
aWdodD0yMDApCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZHJpdmVyLnNldF93
aW5kb3dfcmVjdCh4PTEwLCB5PTEwKQorICAgICAgICAgICAgICAgIGRyaXZlci5zZXRfd2luZG93
X3JlY3Qod2lkdGg9MTAwLCBoZWlnaHQ9MjAwKQorICAgICAgICAgICAgICAgIGRyaXZlci5zZXRf
d2luZG93X3JlY3QoeD0xMCwgeT0xMCwgd2lkdGg9MTAwLCBoZWlnaHQ9MjAwKQogICAgICAgICAi
IiIKKyAgICAgICAgaWYgbm90IHNlbGYudzNjOgorICAgICAgICAgICAgcmFpc2UgVW5rbm93bk1l
dGhvZEV4Y2VwdGlvbigic2V0X3dpbmRvd19yZWN0IGlzIG9ubHkgc3VwcG9ydGVkIGZvciBXM0Mg
Y29tcGF0aWJsZSBicm93c2VycyIpCisKICAgICAgICAgaWYgKHggaXMgTm9uZSBhbmQgeSBpcyBO
b25lKSBhbmQgKGhlaWdodCBpcyBOb25lIGFuZCB3aWR0aCBpcyBOb25lKToKICAgICAgICAgICAg
IHJhaXNlIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigieCBhbmQgeSBvciBoZWlnaHQgYW5kIHdp
ZHRoIG5lZWQgdmFsdWVzIikKIApAQCAtMTE4Niw3ICsxMzI3LDkgQEAgY2xhc3MgV2ViRHJpdmVy
KG9iamVjdCk6CiAgICAgICAgIEdldHMgdGhlIGN1cnJlbnQgb3JpZW50YXRpb24gb2YgdGhlIGRl
dmljZQogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIG9yaWVudGF0aW9uID0gZHJpdmVy
Lm9yaWVudGF0aW9uCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgb3JpZW50YXRp
b24gPSBkcml2ZXIub3JpZW50YXRpb24KICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxm
LmV4ZWN1dGUoQ29tbWFuZC5HRVRfU0NSRUVOX09SSUVOVEFUSU9OKVsndmFsdWUnXQogCkBAIC0x
MTk5LDcgKzEzNDIsOSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgIC0gdmFs
dWU6IG9yaWVudGF0aW9uIHRvIHNldCBpdCB0by4KIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAg
ICAgICBkcml2ZXIub3JpZW50YXRpb24gPSAnbGFuZHNjYXBlJworICAgICAgICAgICAgOjoKKwor
ICAgICAgICAgICAgICAgIGRyaXZlci5vcmllbnRhdGlvbiA9ICdsYW5kc2NhcGUnCiAgICAgICAg
ICIiIgogICAgICAgICBhbGxvd2VkX3ZhbHVlcyA9IFsnTEFORFNDQVBFJywgJ1BPUlRSQUlUJ10K
ICAgICAgICAgaWYgdmFsdWUudXBwZXIoKSBpbiBhbGxvd2VkX3ZhbHVlczoKQEAgLTEyMTUsMTIg
KzEzNjAsMTQgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgQHByb3BlcnR5CiAgICAg
ZGVmIGxvZ190eXBlcyhzZWxmKToKICAgICAgICAgIiIiCi0gICAgICAgIEdldHMgYSBsaXN0IG9m
IHRoZSBhdmFpbGFibGUgbG9nIHR5cGVzCisgICAgICAgIEdldHMgYSBsaXN0IG9mIHRoZSBhdmFp
bGFibGUgbG9nIHR5cGVzLiBUaGlzIG9ubHkgd29ya3Mgd2l0aCB3M2MgY29tcGxpYW50IGJyb3dz
ZXJzLgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGRyaXZlci5sb2dfdHlwZXMKKyAg
ICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBkcml2ZXIubG9nX3R5cGVzCiAgICAgICAg
ICIiIgotICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuR0VUX0FWQUlMQUJMRV9M
T0dfVFlQRVMpWyd2YWx1ZSddCisgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5H
RVRfQVZBSUxBQkxFX0xPR19UWVBFUylbJ3ZhbHVlJ10gaWYgc2VsZi53M2MgZWxzZSBbXQogCiAg
ICAgZGVmIGdldF9sb2coc2VsZiwgbG9nX3R5cGUpOgogICAgICAgICAiIiIKQEAgLTEyMzAsOSAr
MTM3NywxMSBAQCBjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKICAgICAgICAgIC0gbG9nX3R5cGU6
IHR5cGUgb2YgbG9nIHRoYXQgd2hpY2ggd2lsbCBiZSByZXR1cm5lZAogCiAgICAgICAgIDpVc2Fn
ZToKLSAgICAgICAgICAgIGRyaXZlci5nZXRfbG9nKCdicm93c2VyJykKLSAgICAgICAgICAgIGRy
aXZlci5nZXRfbG9nKCdkcml2ZXInKQotICAgICAgICAgICAgZHJpdmVyLmdldF9sb2coJ2NsaWVu
dCcpCi0gICAgICAgICAgICBkcml2ZXIuZ2V0X2xvZygnc2VydmVyJykKKyAgICAgICAgICAgIDo6
CisKKyAgICAgICAgICAgICAgICBkcml2ZXIuZ2V0X2xvZygnYnJvd3NlcicpCisgICAgICAgICAg
ICAgICAgZHJpdmVyLmdldF9sb2coJ2RyaXZlcicpCisgICAgICAgICAgICAgICAgZHJpdmVyLmdl
dF9sb2coJ2NsaWVudCcpCisgICAgICAgICAgICAgICAgZHJpdmVyLmdldF9sb2coJ3NlcnZlcicp
CiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuR0VUX0xP
Rywgeyd0eXBlJzogbG9nX3R5cGV9KVsndmFsdWUnXQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJlbGVt
ZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3JlbW90ZS93ZWJlbGVtZW50LnB5CmluZGV4IDczMGRjZjRkYWU5NjZkNTQzZTVhMzQ2
ZGQ5YzI1ZWVhM2QwZDJlZGIuLjZmYmRlOTM1MzJkZGQyMTg1OTY2Mzg4MzcyODVhZTFjOWM2ZjY1
ZjUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmVsZW1lbnQu
cHkKQEAgLTMzLDYgKzMzLDExIEBAIHRyeToKIGV4Y2VwdCBOYW1lRXJyb3I6CiAgICAgcGFzcwog
Cit0cnk6CisgICAgZnJvbSBiYXNlNjQgaW1wb3J0IGVuY29kZWJ5dGVzCitleGNlcHQgSW1wb3J0
RXJyb3I6ICAjIDMrCisgICAgZnJvbSBiYXNlNjQgaW1wb3J0IGVuY29kZXN0cmluZyBhcyBlbmNv
ZGVieXRlcworCiB0cnk6CiAgICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8gYXMgSU9T
dHJlYW0KIGV4Y2VwdCBJbXBvcnRFcnJvcjogICMgMysKQEAgLTEwMSw5ICsxMDYsMTAgQEAgY2xh
c3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgICAgICA6QXJnczoKICAgICAgICAgICAgIC0gbmFt
ZSAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHJldHJpZXZlLgogCi0gICAgICAgIEV4YW1wbGU6
OgorICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICA6OgogCi0gICAgICAgICAgICB0ZXh0X2xl
bmd0aCA9IHRhcmdldF9lbGVtZW50LmdldF9wcm9wZXJ0eSgidGV4dF9sZW5ndGgiKQorICAgICAg
ICAgICAgICAgIHRleHRfbGVuZ3RoID0gdGFyZ2V0X2VsZW1lbnQuZ2V0X3Byb3BlcnR5KCJ0ZXh0
X2xlbmd0aCIpCiAgICAgICAgICIiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXR1cm4g
c2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5UX1BST1BFUlRZLCB7Im5hbWUiOiBuYW1l
fSlbInZhbHVlIl0KQEAgLTE2Miw3ICsxNjgsNyBAQCBjbGFzcyBXZWJFbGVtZW50KG9iamVjdCk6
CiAgICAgICAgICIiIkZpbmRzIGVsZW1lbnQgd2l0aGluIHRoaXMgZWxlbWVudCdzIGNoaWxkcmVu
IGJ5IElELgogCiAgICAgICAgIDpBcmdzOgotICAgICAgICAgLSBpZFxfIC0gSUQgb2YgY2hpbGQg
ZWxlbWVudCB0byBsb2NhdGUuCisgICAgICAgICAtIGlkXFxfIC0gSUQgb2YgY2hpbGQgZWxlbWVu
dCB0byBsb2NhdGUuCiAKICAgICAgICAgOlJldHVybnM6CiAgICAgICAgICAtIFdlYkVsZW1lbnQg
LSB0aGUgZWxlbWVudCBpZiBpdCB3YXMgZm91bmQKQEAgLTE3MSw3ICsxNzcsOSBAQCBjbGFzcyBX
ZWJFbGVtZW50KG9iamVjdCk6CiAgICAgICAgICAtIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gLSBp
ZiB0aGUgZWxlbWVudCB3YXNuJ3QgZm91bmQKIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAg
ICBmb29fZWxlbWVudCA9IGVsZW1lbnQuZmluZF9lbGVtZW50X2J5X2lkKCdmb28nKQorICAgICAg
ICAgICAgOjoKKworICAgICAgICAgICAgICAgIGZvb19lbGVtZW50ID0gZWxlbWVudC5maW5kX2Vs
ZW1lbnRfYnlfaWQoJ2ZvbycpCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5k
X2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPWlkXykKIApAQCAtMTgwLDE0ICsxODgsMTYgQEAgY2xh
c3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgICAgICBXaWxsIHJldHVybiBhIGxpc3Qgb2Ygd2Vi
ZWxlbWVudHMgaWYgZm91bmQsIG9yIGFuIGVtcHR5IGxpc3QgaWYgbm90LgogCiAgICAgICAgIDpB
cmdzOgotICAgICAgICAgLSBpZFxfIC0gSWQgb2YgY2hpbGQgZWxlbWVudCB0byBmaW5kLgorICAg
ICAgICAgLSBpZFxcXyAtIElkIG9mIGNoaWxkIGVsZW1lbnQgdG8gZmluZC4KIAogICAgICAgICA6
UmV0dXJuczoKICAgICAgICAgIC0gbGlzdCBvZiBXZWJFbGVtZW50IC0gYSBsaXN0IHdpdGggZWxl
bWVudHMgaWYgYW55IHdhcyBmb3VuZC4gIEFuCiAgICAgICAgICAgIGVtcHR5IGxpc3QgaWYgbm90
CiAKICAgICAgICAgOlVzYWdlOgotICAgICAgICAgICAgZWxlbWVudHMgPSBlbGVtZW50LmZpbmRf
ZWxlbWVudHNfYnlfaWQoJ2ZvbycpCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAg
ZWxlbWVudHMgPSBlbGVtZW50LmZpbmRfZWxlbWVudHNfYnlfaWQoJ2ZvbycpCiAgICAgICAgICIi
IgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LklELCB2YWx1ZT1pZF8p
CiAKQEAgLTIwNCw3ICsyMTQsOSBAQCBjbGFzcyBXZWJFbGVtZW50KG9iamVjdCk6CiAgICAgICAg
ICAtIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gLSBpZiB0aGUgZWxlbWVudCB3YXNuJ3QgZm91bmQK
IAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5maW5kX2Vs
ZW1lbnRfYnlfbmFtZSgnZm9vJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBl
bGVtZW50ID0gZWxlbWVudC5maW5kX2VsZW1lbnRfYnlfbmFtZSgnZm9vJykKICAgICAgICAgIiIi
CiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT1uYW1l
KQogCkBAIC0yMTksNyArMjMxLDkgQEAgY2xhc3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgICAg
ICAgICBlbXB0eSBsaXN0IGlmIG5vdAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVs
ZW1lbnRzID0gZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5X25hbWUoJ2ZvbycpCisgICAgICAgICAg
ICA6OgorCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSBlbGVtZW50LmZpbmRfZWxlbWVudHNf
YnlfbmFtZSgnZm9vJykKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxl
bWVudHMoYnk9QnkuTkFNRSwgdmFsdWU9bmFtZSkKIApAQCAtMjM2LDcgKzI1MCw5IEBAIGNsYXNz
IFdlYkVsZW1lbnQob2JqZWN0KToKICAgICAgICAgIC0gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiAt
IGlmIHRoZSBlbGVtZW50IHdhc24ndCBmb3VuZAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAg
ICAgIGVsZW1lbnQgPSBlbGVtZW50LmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoJ1NpZ24gSW4n
KQorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LmZp
bmRfZWxlbWVudF9ieV9saW5rX3RleHQoJ1NpZ24gSW4nKQogICAgICAgICAiIiIKICAgICAgICAg
cmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LkxJTktfVEVYVCwgdmFsdWU9bGlua190ZXh0
KQogCkBAIC0yNTEsNyArMjY3LDkgQEAgY2xhc3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgICAg
ICAgICBlbXB0eSBsaXN0IGlmIG5vdAogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVs
ZW1lbnRzID0gZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5X2xpbmtfdGV4dCgnU2lnbiBJbicpCisg
ICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSBlbGVtZW50LmZpbmRf
ZWxlbWVudHNfYnlfbGlua190ZXh0KCdTaWduIEluJykKICAgICAgICAgIiIiCiAgICAgICAgIHJl
dHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuTElOS19URVhULCB2YWx1ZT1saW5rX3RleHQp
CiAKQEAgLTI2OCw3ICsyODYsOSBAQCBjbGFzcyBXZWJFbGVtZW50KG9iamVjdCk6CiAgICAgICAg
ICAtIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gLSBpZiB0aGUgZWxlbWVudCB3YXNuJ3QgZm91bmQK
IAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5maW5kX2Vs
ZW1lbnRfYnlfcGFydGlhbF9saW5rX3RleHQoJ1NpZ24nKQorICAgICAgICAgICAgOjoKKworICAg
ICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LmZpbmRfZWxlbWVudF9ieV9wYXJ0aWFsX2xp
bmtfdGV4dCgnU2lnbicpCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2Vs
ZW1lbnQoYnk9QnkuUEFSVElBTF9MSU5LX1RFWFQsIHZhbHVlPWxpbmtfdGV4dCkKIApAQCAtMjgz
LDcgKzMwMyw5IEBAIGNsYXNzIFdlYkVsZW1lbnQob2JqZWN0KToKICAgICAgICAgICAgZW1wdHkg
bGlzdCBpZiBub3QKIAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50cyA9IGVs
ZW1lbnQuZmluZF9lbGVtZW50c19ieV9wYXJ0aWFsX2xpbmtfdGV4dCgnU2lnbicpCisgICAgICAg
ICAgICA6OgorCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSBlbGVtZW50LmZpbmRfZWxlbWVu
dHNfYnlfcGFydGlhbF9saW5rX3RleHQoJ1NpZ24nKQogICAgICAgICAiIiIKICAgICAgICAgcmV0
dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5QQVJUSUFMX0xJTktfVEVYVCwgdmFsdWU9bGlu
a190ZXh0KQogCkBAIC0zMDAsNyArMzIyLDkgQEAgY2xhc3MgV2ViRWxlbWVudChvYmplY3QpOgog
ICAgICAgICAgLSBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIC0gaWYgdGhlIGVsZW1lbnQgd2Fzbid0
IGZvdW5kCiAKICAgICAgICAgOlVzYWdlOgotICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQu
ZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCdoMScpCisgICAgICAgICAgICA6OgorCisgICAgICAg
ICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCdoMScp
CiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuVEFH
X05BTUUsIHZhbHVlPW5hbWUpCiAKQEAgLTMxNSw3ICszMzksOSBAQCBjbGFzcyBXZWJFbGVtZW50
KG9iamVjdCk6CiAgICAgICAgICAgIGVtcHR5IGxpc3QgaWYgbm90CiAKICAgICAgICAgOlVzYWdl
OgotICAgICAgICAgICAgZWxlbWVudHMgPSBlbGVtZW50LmZpbmRfZWxlbWVudHNfYnlfdGFnX25h
bWUoJ2gxJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBlbGVtZW50cyA9IGVs
ZW1lbnQuZmluZF9lbGVtZW50c19ieV90YWdfbmFtZSgnaDEnKQogICAgICAgICAiIiIKICAgICAg
ICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5UQUdfTkFNRSwgdmFsdWU9bmFtZSkK
IApAQCAtMzQ2LDcgKzM3Miw5IEBAIGNsYXNzIFdlYkVsZW1lbnQob2JqZWN0KToKICAgICAgICAg
IC0gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiAtIGlmIHRoZSBlbGVtZW50IHdhc24ndCBmb3VuZAog
CiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LmZpbmRfZWxl
bWVudF9ieV94cGF0aCgnLy9kaXYvdGRbMV0nKQorICAgICAgICAgICAgOjoKKworICAgICAgICAg
ICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LmZpbmRfZWxlbWVudF9ieV94cGF0aCgnLy9kaXYvdGRb
MV0nKQogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5
LlhQQVRILCB2YWx1ZT14cGF0aCkKIApAQCAtMzc1LDcgKzQwMyw5IEBAIGNsYXNzIFdlYkVsZW1l
bnQob2JqZWN0KToKICAgICAgICAgICAgZW1wdHkgbGlzdCBpZiBub3QKIAogICAgICAgICA6VXNh
Z2U6Ci0gICAgICAgICAgICBlbGVtZW50cyA9IGVsZW1lbnQuZmluZF9lbGVtZW50c19ieV94cGF0
aCgiLy9kaXZbY29udGFpbnMoQGNsYXNzLCAnZm9vJyldIikKKyAgICAgICAgICAgIDo6CisKKyAg
ICAgICAgICAgICAgICBlbGVtZW50cyA9IGVsZW1lbnQuZmluZF9lbGVtZW50c19ieV94cGF0aCgi
Ly9kaXZbY29udGFpbnMoQGNsYXNzLCAnZm9vJyldIikKIAogICAgICAgICAiIiIKICAgICAgICAg
cmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5YUEFUSCwgdmFsdWU9eHBhdGgpCkBAIC0z
OTMsNyArNDIzLDkgQEAgY2xhc3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgICAgICAgLSBOb1N1
Y2hFbGVtZW50RXhjZXB0aW9uIC0gaWYgdGhlIGVsZW1lbnQgd2Fzbid0IGZvdW5kCiAKICAgICAg
ICAgOlVzYWdlOgotICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQuZmluZF9lbGVtZW50X2J5
X2NsYXNzX25hbWUoJ2ZvbycpCisgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgZWxl
bWVudCA9IGVsZW1lbnQuZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoJ2ZvbycpCiAgICAgICAg
ICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuQ0xBU1NfTkFNRSwg
dmFsdWU9bmFtZSkKIApAQCAtNDA4LDcgKzQ0MCw5IEBAIGNsYXNzIFdlYkVsZW1lbnQob2JqZWN0
KToKICAgICAgICAgICAgZW1wdHkgbGlzdCBpZiBub3QKIAogICAgICAgICA6VXNhZ2U6Ci0gICAg
ICAgICAgICBlbGVtZW50cyA9IGVsZW1lbnQuZmluZF9lbGVtZW50c19ieV9jbGFzc19uYW1lKCdm
b28nKQorICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gZWxlbWVu
dC5maW5kX2VsZW1lbnRzX2J5X2NsYXNzX25hbWUoJ2ZvbycpCiAgICAgICAgICIiIgogICAgICAg
ICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVlPW5hbWUp
CiAKQEAgLTQyNSw3ICs0NTksOSBAQCBjbGFzcyBXZWJFbGVtZW50KG9iamVjdCk6CiAgICAgICAg
ICAtIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gLSBpZiB0aGUgZWxlbWVudCB3YXNuJ3QgZm91bmQK
IAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5maW5kX2Vs
ZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCcjZm9vJykKKyAgICAgICAgICAgIDo6CisKKyAgICAgICAg
ICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCcj
Zm9vJykKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1C
eS5DU1NfU0VMRUNUT1IsIHZhbHVlPWNzc19zZWxlY3RvcikKIApAQCAtNDQwLDcgKzQ3Niw5IEBA
IGNsYXNzIFdlYkVsZW1lbnQob2JqZWN0KToKICAgICAgICAgICAgZW1wdHkgbGlzdCBpZiBub3QK
IAogICAgICAgICA6VXNhZ2U6Ci0gICAgICAgICAgICBlbGVtZW50cyA9IGVsZW1lbnQuZmluZF9l
bGVtZW50c19ieV9jc3Nfc2VsZWN0b3IoJy5mb28nKQorICAgICAgICAgICAgOjoKKworICAgICAg
ICAgICAgICAgIGVsZW1lbnRzID0gZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5X2Nzc19zZWxlY3Rv
cignLmZvbycpCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRz
KGJ5PUJ5LkNTU19TRUxFQ1RPUiwgdmFsdWU9Y3NzX3NlbGVjdG9yKQogCkBAIC00ODIsNyArNTIw
LDcgQEAgY2xhc3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgIGRlZiBpc19kaXNwbGF5ZWQoc2Vs
Zik6CiAgICAgICAgICIiIldoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSB0byBhIHVzZXIu
IiIiCiAgICAgICAgICMgT25seSBnbyBpbnRvIHRoaXMgY29uZGl0aW9uYWwgZm9yIGJyb3dzZXJz
IHRoYXQgZG9uJ3QgdXNlIHRoZSBhdG9tIHRoZW1zZWx2ZXMKLSAgICAgICAgaWYgc2VsZi5fdzNj
IGFuZCBzZWxmLnBhcmVudC5jYXBhYmlsaXRpZXNbJ2Jyb3dzZXJOYW1lJ10gPT0gJ3NhZmFyaSc6
CisgICAgICAgIGlmIHNlbGYuX3czYzoKICAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudC5l
eGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICAicmV0dXJuICglcykuYXBwbHkobnVsbCwg
YXJndW1lbnRzKTsiICUgaXNEaXNwbGF5ZWRfanMsCiAgICAgICAgICAgICAgICAgc2VsZikKQEAg
LTUzOSw3ICs1NzcsMTIgQEAgY2xhc3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgIEBwcm9wZXJ0
eQogICAgIGRlZiByZWN0KHNlbGYpOgogICAgICAgICAiIiJBIGRpY3Rpb25hcnkgd2l0aCB0aGUg
c2l6ZSBhbmQgbG9jYXRpb24gb2YgdGhlIGVsZW1lbnQuIiIiCi0gICAgICAgIHJldHVybiBzZWxm
Ll9leGVjdXRlKENvbW1hbmQuR0VUX0VMRU1FTlRfUkVDVClbJ3ZhbHVlJ10KKyAgICAgICAgaWYg
c2VsZi5fdzNjOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5HRVRf
RUxFTUVOVF9SRUNUKVsndmFsdWUnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVjdCA9
IHNlbGYuc2l6ZS5jb3B5KCkKKyAgICAgICAgICAgIHJlY3QudXBkYXRlKHNlbGYubG9jYXRpb24p
CisgICAgICAgICAgICByZXR1cm4gcmVjdAogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHNjcmVl
bnNob3RfYXNfYmFzZTY0KHNlbGYpOgpAQCAtNTQ3LDcgKzU5MCw5IEBAIGNsYXNzIFdlYkVsZW1l
bnQob2JqZWN0KToKICAgICAgICAgR2V0cyB0aGUgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCBl
bGVtZW50IGFzIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nLgogCiAgICAgICAgIDpVc2FnZToKLSAg
ICAgICAgICAgIGltZ19iNjQgPSBlbGVtZW50LnNjcmVlbnNob3RfYXNfYmFzZTY0CisgICAgICAg
ICAgICA6OgorCisgICAgICAgICAgICAgICAgaW1nX2I2NCA9IGVsZW1lbnQuc2NyZWVuc2hvdF9h
c19iYXNlNjQKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRlKENvbW1h
bmQuRUxFTUVOVF9TQ1JFRU5TSE9UKVsndmFsdWUnXQogCkBAIC01NTcsNyArNjAyLDkgQEAgY2xh
c3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgICAgICBHZXRzIHRoZSBzY3JlZW5zaG90IG9mIHRo
ZSBjdXJyZW50IGVsZW1lbnQgYXMgYSBiaW5hcnkgZGF0YS4KIAogICAgICAgICA6VXNhZ2U6Ci0g
ICAgICAgICAgICBlbGVtZW50X3BuZyA9IGVsZW1lbnQuc2NyZWVuc2hvdF9hc19wbmcKKyAgICAg
ICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBlbGVtZW50X3BuZyA9IGVsZW1lbnQuc2NyZWVu
c2hvdF9hc19wbmcKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBiYXNlNjQuYjY0ZGVjb2Rl
KHNlbGYuc2NyZWVuc2hvdF9hc19iYXNlNjQuZW5jb2RlKCdhc2NpaScpKQogCkBAIC01NzIsNyAr
NjE5LDkgQEAgY2xhc3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgICAgICAgICBzaG91bGQgZW5k
IHdpdGggYSBgLnBuZ2AgZXh0ZW5zaW9uLgogCiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAg
IGVsZW1lbnQuc2NyZWVuc2hvdCgnL1NjcmVlbnNob3RzL2Zvby5wbmcnKQorICAgICAgICAgICAg
OjoKKworICAgICAgICAgICAgICAgIGVsZW1lbnQuc2NyZWVuc2hvdCgnL1NjcmVlbnNob3RzL2Zv
by5wbmcnKQogICAgICAgICAiIiIKICAgICAgICAgaWYgbm90IGZpbGVuYW1lLmxvd2VyKCkuZW5k
c3dpdGgoJy5wbmcnKToKICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIm5hbWUgdXNlZCBmb3Ig
c2F2ZWQgc2NyZWVuc2hvdCBkb2VzIG5vdCBtYXRjaCBmaWxlICIKQEAgLTYyOSwxMCArNjc4LDEz
IEBAIGNsYXNzIFdlYkVsZW1lbnQob2JqZWN0KToKIAogICAgIGRlZiBmaW5kX2VsZW1lbnQoc2Vs
ZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAiIiIKLSAgICAgICAgJ1ByaXZhdGUn
IG1ldGhvZCB1c2VkIGJ5IHRoZSBmaW5kX2VsZW1lbnRfYnlfKiBtZXRob2RzLgorICAgICAgICBG
aW5kIGFuIGVsZW1lbnQgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4gUHJlZmVyIHRo
ZSBmaW5kX2VsZW1lbnRfYnlfKiBtZXRob2RzIHdoZW4KKyAgICAgICAgcG9zc2libGUuCiAKICAg
ICAgICAgOlVzYWdlOgotICAgICAgICAgICAgVXNlIHRoZSBjb3JyZXNwb25kaW5nIGZpbmRfZWxl
bWVudF9ieV8qIGluc3RlYWQgb2YgdGhpcy4KKyAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAg
ICAgICBlbGVtZW50ID0gZWxlbWVudC5maW5kX2VsZW1lbnQoQnkuSUQsICdmb28nKQogCiAgICAg
ICAgIDpydHlwZTogV2ViRWxlbWVudAogICAgICAgICAiIiIKQEAgLTY0MCw3ICs2OTIsNyBAQCBj
bGFzcyBXZWJFbGVtZW50KG9iamVjdCk6CiAgICAgICAgICAgICBpZiBieSA9PSBCeS5JRDoKICAg
ICAgICAgICAgICAgICBieSA9IEJ5LkNTU19TRUxFQ1RPUgogICAgICAgICAgICAgICAgIHZhbHVl
ID0gJ1tpZD0iJXMiXScgJSB2YWx1ZQotICAgICAgICAgICAgZWxpZiBieSA9PSBCeS5UQUdfTkFN
RToKKyAgICAgICAgICAgIGVsaWYgYnkgPT0gQnkuVEFHX05BTUU6IAogICAgICAgICAgICAgICAg
IGJ5ID0gQnkuQ1NTX1NFTEVDVE9SCiAgICAgICAgICAgICBlbGlmIGJ5ID09IEJ5LkNMQVNTX05B
TUU6CiAgICAgICAgICAgICAgICAgYnkgPSBCeS5DU1NfU0VMRUNUT1IKQEAgLTY1NCwxMCArNzA2
LDEzIEBAIGNsYXNzIFdlYkVsZW1lbnQob2JqZWN0KToKIAogICAgIGRlZiBmaW5kX2VsZW1lbnRz
KHNlbGYsIGJ5PUJ5LklELCB2YWx1ZT1Ob25lKToKICAgICAgICAgIiIiCi0gICAgICAgICdQcml2
YXRlJyBtZXRob2QgdXNlZCBieSB0aGUgZmluZF9lbGVtZW50c19ieV8qIG1ldGhvZHMuCisgICAg
ICAgIEZpbmQgZWxlbWVudHMgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4gUHJlZmVy
IHRoZSBmaW5kX2VsZW1lbnRzX2J5XyogbWV0aG9kcyB3aGVuCisgICAgICAgIHBvc3NpYmxlLgog
CiAgICAgICAgIDpVc2FnZToKLSAgICAgICAgICAgIFVzZSB0aGUgY29ycmVzcG9uZGluZyBmaW5k
X2VsZW1lbnRzX2J5XyogaW5zdGVhZCBvZiB0aGlzLgorICAgICAgICAgICAgOjoKKworICAgICAg
ICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LmZpbmRfZWxlbWVudHMoQnkuQ0xBU1NfTkFNRSwg
J2ZvbycpCiAKICAgICAgICAgOnJ0eXBlOiBsaXN0IG9mIFdlYkVsZW1lbnQKICAgICAgICAgIiIi
CkBAIC02ODUsNyArNzQwLDcgQEAgY2xhc3MgV2ViRWxlbWVudChvYmplY3QpOgogICAgICAgICB6
aXBwZWQgPSB6aXBmaWxlLlppcEZpbGUoZnAsICd3JywgemlwZmlsZS5aSVBfREVGTEFURUQpCiAg
ICAgICAgIHppcHBlZC53cml0ZShmaWxlbmFtZSwgb3MucGF0aC5zcGxpdChmaWxlbmFtZSlbMV0p
CiAgICAgICAgIHppcHBlZC5jbG9zZSgpCi0gICAgICAgIGNvbnRlbnQgPSBiYXNlNjQuZW5jb2Rl
c3RyaW5nKGZwLmdldHZhbHVlKCkpCisgICAgICAgIGNvbnRlbnQgPSBlbmNvZGVieXRlcyhmcC5n
ZXR2YWx1ZSgpKQogICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb250ZW50LCBzdHIpOgogICAg
ICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZGVjb2RlKCd1dGYtOCcpCiAgICAgICAgIHRyeToK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9zYWZhcmkvcGVybWlzc2lvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3Blcm1pc3Npb25zLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU5NWYyYmM5MzA5OTRlNGZiYWQxMjA4MmVhODEzZTc2NDkxZmMyZTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvc2FmYXJpL3Blcm1pc3Npb25zLnB5CkBAIC0wLDAgKzEsMjggQEAKKyMgTGlj
ZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25l
CisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJ
Q0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5z
ZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp
Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJS
QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGlt
cGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl
cm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgor
CisiIiIKK1RoZSBQZXJtaXNzaW9uIGltcGxlbWVudGF0aW9uLgorIiIiCisKKworY2xhc3MgUGVy
bWlzc2lvbihvYmplY3QpOgorICAgICIiIgorICAgIFNldCBvZiBzdXBwb3J0ZWQgcGVybWlzc2lv
bnMuCisgICAgIiIiCisKKyAgICBHRVRfVVNFUl9NRURJQSA9ICJnZXRVc2VyTWVkaWEiCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVfY29ubmVjdGlv
bi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMmM2MjNlNjEwYWZjYWI1ZTc0YTUzMWI3NDk2NjM5MGY2YjQ3MGRk
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVfY29ubmVjdGlvbi5weQpAQCAtMCwwICsx
LDMxIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChT
RkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4g
IFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBU
aGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNl
bnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMs
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMg
bGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0
aGUgTGljZW5zZS4KKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLnJlbW90ZV9jb25u
ZWN0aW9uIGltcG9ydCBSZW1vdGVDb25uZWN0aW9uCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5j
b21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKKwor
CitjbGFzcyBTYWZhcmlSZW1vdGVDb25uZWN0aW9uKFJlbW90ZUNvbm5lY3Rpb24pOgorCisgICAg
YnJvd3Nlcl9uYW1lID0gRGVzaXJlZENhcGFiaWxpdGllcy5TQUZBUklbJ2Jyb3dzZXJOYW1lJ10K
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmU9
VHJ1ZSk6CisgICAgICAgIFJlbW90ZUNvbm5lY3Rpb24uX19pbml0X18oc2VsZiwgcmVtb3RlX3Nl
cnZlcl9hZGRyLCBrZWVwX2FsaXZlKQorCisgICAgICAgIHNlbGYuX2NvbW1hbmRzWyJHRVRfUEVS
TUlTU0lPTlMiXSA9ICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBwbGUvcGVybWlzc2lv
bnMnKQorICAgICAgICBzZWxmLl9jb21tYW5kc1siU0VUX1BFUk1JU1NJT05TIl0gPSAoJ1BPU1Qn
LCAnL3Nlc3Npb24vJHNlc3Npb25JZC9hcHBsZS9wZXJtaXNzaW9ucycpCisgICAgICAgIHNlbGYu
X2NvbW1hbmRzWyJBVFRBQ0hfREVCVUdHRVIiXSA9ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lv
bklkL2FwcGxlL2F0dGFjaF9kZWJ1Z2dlcicpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3NlcnZpY2UucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
c2FmYXJpL3NlcnZpY2UucHkKaW5kZXggYThmZDA4NGU1M2E2NDQ5NDI5ODEzZWFkZDU1MjU0YTdh
MGIxM2Y3MS4uYmRiYWU1NmM5YjdmYjAzZGYxM2JhYjM5MmY5ZDIzY2U1MGYwZDQxOSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3NhZmFyaS9zZXJ2aWNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvc2VydmljZS5weQpAQCAtMjUsMjAgKzI1
LDI4IEBAIGNsYXNzIFNlcnZpY2Uoc2VydmljZS5TZXJ2aWNlKToKICAgICBPYmplY3QgdGhhdCBt
YW5hZ2VzIHRoZSBzdGFydGluZyBhbmQgc3RvcHBpbmcgb2YgdGhlIFNhZmFyaURyaXZlcgogICAg
ICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dGFibGVfcGF0aCwgcG9ydD0wLCBx
dWlldD1GYWxzZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dGFibGVfcGF0aCwgcG9y
dD0wLCBxdWlldD1GYWxzZSwgc2VydmljZV9hcmdzPU5vbmUpOgogICAgICAgICAiIiIKICAgICAg
ICAgQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgU2VydmljZQogCiAgICAgICAgIDpBcmdz
OgogICAgICAgICAgLSBleGVjdXRhYmxlX3BhdGggOiBQYXRoIHRvIHRoZSBTYWZhcmlEcml2ZXIK
LSAgICAgICAgIC0gcG9ydCA6IFBvcnQgdGhlIHNlcnZpY2UgaXMgcnVubmluZyBvbiAiIiIKKyAg
ICAgICAgIC0gcG9ydCA6IFBvcnQgdGhlIHNlcnZpY2UgaXMgcnVubmluZyBvbgorICAgICAgICAg
LSBxdWlldCA6IFN1cHByZXNzIGRyaXZlciBzdGRvdXQgYW5kIHN0ZGVycgorICAgICAgICAgLSBz
ZXJ2aWNlX2FyZ3MgOiBMaXN0IG9mIGFyZ3MgdG8gcGFzcyB0byB0aGUgc2FmYXJpZHJpdmVyIHNl
cnZpY2UgIiIiCiAKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGV4ZWN1dGFibGVfcGF0
aCk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlNhZmFyaURyaXZlciByZXF1aXJlcyBT
YWZhcmkgMTAgb24gT1NYIEVsIENhcGl0YW4gb3IgZ3JlYXRlciIpCisgICAgICAgICAgICBpZiAi
U2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldyIgaW4gZXhlY3V0YWJsZV9wYXRoOgorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgPSAiU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldyBkb2VzIG5vdCBzZWVt
IHRvIGJlIGluc3RhbGxlZC4gWW91IGNhbiBkb3dubG9hZCBpdCBhdCBodHRwczovL2RldmVsb3Bl
ci5hcHBsZS5jb20vc2FmYXJpL2Rvd25sb2FkLy4iCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgPSAiU2FmYXJpRHJpdmVyIHdhcyBub3QgZm91bmQ7IGFyZSB5b3Ug
cnVubmluZyBTYWZhcmkgMTAgb3IgbGF0ZXI/IFlvdSBjYW4gZG93bmxvYWQgU2FmYXJpIGF0IGh0
dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9zYWZhcmkvZG93bmxvYWQvLiIKKyAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbihtZXNzYWdlKQogCiAgICAgICAgIGlmIHBvcnQgPT0gMDoKICAgICAg
ICAgICAgIHBvcnQgPSB1dGlscy5mcmVlX3BvcnQoKQogCisgICAgICAgIHNlbGYuc2VydmljZV9h
cmdzID0gc2VydmljZV9hcmdzIG9yIFtdCisKICAgICAgICAgc2VsZi5xdWlldCA9IHF1aWV0CiAg
ICAgICAgIGxvZyA9IFBJUEUKICAgICAgICAgaWYgcXVpZXQ6CkBAIC00Niw3ICs1NCw3IEBAIGNs
YXNzIFNlcnZpY2Uoc2VydmljZS5TZXJ2aWNlKToKICAgICAgICAgc2VydmljZS5TZXJ2aWNlLl9f
aW5pdF9fKHNlbGYsIGV4ZWN1dGFibGVfcGF0aCwgcG9ydCwgbG9nKQogCiAgICAgZGVmIGNvbW1h
bmRfbGluZV9hcmdzKHNlbGYpOgotICAgICAgICByZXR1cm4gWyItcCIsICIlcyIgJSBzZWxmLnBv
cnRdCisgICAgICAgIHJldHVybiBbIi1wIiwgIiVzIiAlIHNlbGYucG9ydF0gKyBzZWxmLnNlcnZp
Y2VfYXJncwogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHNlcnZpY2VfdXJsKHNlbGYpOgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3NhZmFyaS93ZWJkcml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3dlYmRyaXZlci5weQppbmRleCAwYThi
ZmE2ZGEzNjA1YTU5Y2JhNGJkOWE2YWFiMWE4ZGQ1ZGM3OWUwLi41NDdlNjBhMWRmM2U1NjRjNDgz
YjI1NWViODQ4MDMzYWUzMDgzMDQxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3dlYmRyaXZlci5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
c2FmYXJpL3dlYmRyaXZlci5weQpAQCAtMTQsNiArMTQsNyBAQAogIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKICMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogIyB1bmRlciB0aGUg
TGljZW5zZS4KK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZl
ckV4Y2VwdGlvbgogCiB0cnk6CiAgICAgaW1wb3J0IGh0dHAuY2xpZW50IGFzIGh0dHBfY2xpZW50
CkBAIC0yMiw2ICsyMyw4IEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKIAogZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uLmRlc2lyZWRfY2FwYWJpbGl0aWVzIGltcG9ydCBEZXNpcmVkQ2FwYWJp
bGl0aWVzCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2ViZHJpdmVyIGltcG9ydCBX
ZWJEcml2ZXIgYXMgUmVtb3RlV2ViRHJpdmVyCitmcm9tIC5zZXJ2aWNlIGltcG9ydCBTZXJ2aWNl
Citmcm9tIC5yZW1vdGVfY29ubmVjdGlvbiBpbXBvcnQgU2FmYXJpUmVtb3RlQ29ubmVjdGlvbgog
CiAKIGNsYXNzIFdlYkRyaXZlcihSZW1vdGVXZWJEcml2ZXIpOgpAQCAtMzEsMjcgKzM0LDM2IEBA
IGNsYXNzIFdlYkRyaXZlcihSZW1vdGVXZWJEcml2ZXIpOgogICAgICIiIgogCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBvcnQ9MCwgZXhlY3V0YWJsZV9wYXRoPSIvdXNyL2Jpbi9zYWZhcmlkcml2
ZXIiLCByZXVzZV9zZXJ2aWNlPUZhbHNlLAotICAgICAgICAgICAgICAgICBkZXNpcmVkX2NhcGFi
aWxpdGllcz1EZXNpcmVkQ2FwYWJpbGl0aWVzLlNBRkFSSSwgcXVpZXQ9RmFsc2UpOgorICAgICAg
ICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1EZXNpcmVkQ2FwYWJpbGl0aWVzLlNBRkFS
SSwgcXVpZXQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGtlZXBfYWxpdmU9VHJ1ZSwgc2Vydmlj
ZV9hcmdzPU5vbmUpOgogICAgICAgICAiIiIKIAogICAgICAgICBDcmVhdGVzIGEgbmV3IFNhZmFy
aSBkcml2ZXIgaW5zdGFuY2UgYW5kIGxhdW5jaGVzIG9yIGZpbmRzIGEgcnVubmluZyBzYWZhcmlk
cml2ZXIgc2VydmljZS4KIAogICAgICAgICA6QXJnczoKICAgICAgICAgIC0gcG9ydCAtIFRoZSBw
b3J0IG9uIHdoaWNoIHRoZSBzYWZhcmlkcml2ZXIgc2VydmljZSBzaG91bGQgbGlzdGVuIGZvciBu
ZXcgY29ubmVjdGlvbnMuIElmIHplcm8sIGEgZnJlZSBwb3J0IHdpbGwgYmUgZm91bmQuCi0gICAg
ICAgICAtIHF1aWV0IC0gSWYgVHJ1ZSwgdGhlIGRyaXZlcidzIHN0ZG91dCBhbmQgc3RkZXJyIGlz
IHN1cHByZXNzZWQuCiAgICAgICAgICAtIGV4ZWN1dGFibGVfcGF0aCAtIFBhdGggdG8gYSBjdXN0
b20gc2FmYXJpZHJpdmVyIGV4ZWN1dGFibGUgdG8gYmUgdXNlZC4gSWYgYWJzZW50LCAvdXNyL2Jp
bi9zYWZhcmlkcml2ZXIgaXMgdXNlZC4KLSAgICAgICAgIC0gZGVzaXJlZF9jYXBhYmlsaXRpZXM6
IERpY3Rpb25hcnkgb2JqZWN0IHdpdGggZGVzaXJlZCBjYXBhYmlsaXRpZXMgKENhbiBiZSB1c2Vk
IHRvIHByb3ZpZGUgdmFyaW91cyBTYWZhcmkgc3dpdGNoZXMpLgogICAgICAgICAgLSByZXVzZV9z
ZXJ2aWNlIC0gSWYgVHJ1ZSwgZG8gbm90IHNwYXduIGEgc2FmYXJpZHJpdmVyIGluc3RhbmNlOyBp
bnN0ZWFkLCBjb25uZWN0IHRvIGFuIGFscmVhZHktcnVubmluZyBzZXJ2aWNlIHRoYXQgd2FzIGxh
dW5jaGVkIGV4dGVybmFsbHkuCisgICAgICAgICAtIGRlc2lyZWRfY2FwYWJpbGl0aWVzOiBEaWN0
aW9uYXJ5IG9iamVjdCB3aXRoIGRlc2lyZWQgY2FwYWJpbGl0aWVzIChDYW4gYmUgdXNlZCB0byBw
cm92aWRlIHZhcmlvdXMgU2FmYXJpIHN3aXRjaGVzKS4KKyAgICAgICAgIC0gcXVpZXQgLSBJZiBU
cnVlLCB0aGUgZHJpdmVyJ3Mgc3Rkb3V0IGFuZCBzdGRlcnIgaXMgc3VwcHJlc3NlZC4KKyAgICAg
ICAgIC0ga2VlcF9hbGl2ZSAtIFdoZXRoZXIgdG8gY29uZmlndXJlIFNhZmFyaVJlbW90ZUNvbm5l
Y3Rpb24gdG8gdXNlCisgICAgICAgICAgICAgSFRUUCBrZWVwLWFsaXZlLiBEZWZhdWx0cyB0byBG
YWxzZS4KKyAgICAgICAgIC0gc2VydmljZV9hcmdzIDogTGlzdCBvZiBhcmdzIHRvIHBhc3MgdG8g
dGhlIHNhZmFyaWRyaXZlciBzZXJ2aWNlCiAgICAgICAgICIiIgogCiAgICAgICAgIHNlbGYuX3Jl
dXNlX3NlcnZpY2UgPSByZXVzZV9zZXJ2aWNlCisgICAgICAgIHNlbGYuc2VydmljZSA9IFNlcnZp
Y2UoZXhlY3V0YWJsZV9wYXRoLCBwb3J0PXBvcnQsIHF1aWV0PXF1aWV0LCBzZXJ2aWNlX2FyZ3M9
c2VydmljZV9hcmdzKQogICAgICAgICBpZiBub3QgcmV1c2Vfc2VydmljZToKICAgICAgICAgICAg
IHNlbGYuc2VydmljZS5zdGFydCgpCiAKKyAgICAgICAgZXhlY3V0b3IgPSBTYWZhcmlSZW1vdGVD
b25uZWN0aW9uKHJlbW90ZV9zZXJ2ZXJfYWRkcj1zZWxmLnNlcnZpY2Uuc2VydmljZV91cmwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwX2FsaXZlPWtlZXBf
YWxpdmUpCisKICAgICAgICAgUmVtb3RlV2ViRHJpdmVyLl9faW5pdF9fKAogICAgICAgICAgICAg
c2VsZiwKLSAgICAgICAgICAgIGNvbW1hbmRfZXhlY3V0b3I9c2VsZi5zZXJ2aWNlLnNlcnZpY2Vf
dXJsLAorICAgICAgICAgICAgY29tbWFuZF9leGVjdXRvcj1leGVjdXRvciwKICAgICAgICAgICAg
IGRlc2lyZWRfY2FwYWJpbGl0aWVzPWRlc2lyZWRfY2FwYWJpbGl0aWVzKQorCiAgICAgICAgIHNl
bGYuX2lzX3JlbW90ZSA9IEZhbHNlCiAKICAgICBkZWYgcXVpdChzZWxmKToKQEAgLTY2LDMgKzc4
LDM2IEBAIGNsYXNzIFdlYkRyaXZlcihSZW1vdGVXZWJEcml2ZXIpOgogICAgICAgICBmaW5hbGx5
OgogICAgICAgICAgICAgaWYgbm90IHNlbGYuX3JldXNlX3NlcnZpY2U6CiAgICAgICAgICAgICAg
ICAgc2VsZi5zZXJ2aWNlLnN0b3AoKQorCisgICAgIyBzYWZhcmlkcml2ZXIgZXh0ZW5zaW9uIGNv
bW1hbmRzLiBUaGUgY2Fub25pY2FsIGNvbW1hbmQgc3VwcG9ydCBtYXRyaXggaXMgaGVyZToKKyAg
ICAjIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2NvbnRlbnQvZG9jdW1lbnRh
dGlvbi9OZXR3b3JraW5nSW50ZXJuZXRXZWIvQ29uY2VwdHVhbC9XZWJEcml2ZXJFbmRwb2ludERv
Yy9Db21tYW5kcy9Db21tYW5kcy5odG1sCisKKyAgICAjIEZpcnN0IGF2YWlsYWJsZSBpbiBTYWZh
cmkgMTEuMSBhbmQgU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldyA0MS4KKyAgICBkZWYgc2V0X3Bl
cm1pc3Npb24oc2VsZiwgcGVybWlzc2lvbiwgdmFsdWUpOgorICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZSh2YWx1ZSwgYm9vbCk6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24o
IlZhbHVlIG9mIGEgc2Vzc2lvbiBwZXJtaXNzaW9uIG11c3QgYmUgc2V0IHRvIFRydWUgb3IgRmFs
c2UuIikKKworICAgICAgICBwYXlsb2FkID0ge30KKyAgICAgICAgcGF5bG9hZFtwZXJtaXNzaW9u
XSA9IHZhbHVlCisgICAgICAgIHNlbGYuZXhlY3V0ZSgiU0VUX1BFUk1JU1NJT05TIiwgeyJwZXJt
aXNzaW9ucyI6IHBheWxvYWR9KQorCisgICAgIyBGaXJzdCBhdmFpbGFibGUgaW4gU2FmYXJpIDEx
LjEgYW5kIFNhZmFyaSBUZWNobm9sb2d5IFByZXZpZXcgNDEuCisgICAgZGVmIGdldF9wZXJtaXNz
aW9uKHNlbGYsIHBlcm1pc3Npb24pOgorICAgICAgICBwYXlsb2FkID0gc2VsZi5leGVjdXRlKCJH
RVRfUEVSTUlTU0lPTlMiKVsidmFsdWUiXQorICAgICAgICBwZXJtaXNzaW9ucyA9IHBheWxvYWRb
InBlcm1pc3Npb25zIl0KKyAgICAgICAgaWYgbm90IHBlcm1pc3Npb25zOgorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgICAgICBpZiBwZXJtaXNzaW9uIG5vdCBpbiBwZXJtaXNzaW9uczoK
KyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdmFsdWUgPSBwZXJtaXNzaW9uc1tw
ZXJtaXNzaW9uXQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgYm9vbCk6CisgICAg
ICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgIyBGaXJz
dCBhdmFpbGFibGUgaW4gU2FmYXJpIDExLjEgYW5kIFNhZmFyaSBUZWNobm9sb2d5IFByZXZpZXcg
NDIuCisgICAgZGVmIGRlYnVnKHNlbGYpOgorICAgICAgICBzZWxmLmV4ZWN1dGUoIkFUVEFDSF9E
RUJVR0dFUiIpCisgICAgICAgIHNlbGYuZXhlY3V0ZV9zY3JpcHQoImRlYnVnZ2VyOyIpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvc3VwcG9ydC9jb2xvci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2NvbG9yLnB5CmluZGV4IGM5ZmQzMjQxMWM0
NmI3YWI4YzNjNjJkMDNjYWRhMmU1ZWRiNGRhODkuLmI5NGY3ZTUxOTE1NjE1M2MyYjFiMTE0NjY4
MmIyNmQxNWJkZjdkNTkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2NvbG9yLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2Nv
bG9yLnB5CkBAIC0zMSw3ICszMSw3IEBAIGNsYXNzIENvbG9yKG9iamVjdCk6CiAKICAgICBFeGFt
cGxlOgogCi0gICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorICAgIDo6CiAKICAgICAgICAgZnJv
bSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5jb2xvciBpbXBvcnQgQ29sb3IKIApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5nX3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2V2ZW50X2Zpcmlu
Z193ZWJkcml2ZXIucHkKaW5kZXggNzNjNDQ4YTdkODViOTZiYThlNTI5N2I1MTA5MDU0NDQ1MjM3
YWI1My4uMzE4ZGQ4NWJkN2FjMDk0ZDQyNmVlYTc4MDI0YTA1Yzg4ZjM1ZDhiNiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L3N1cHBvcnQvZXZlbnRfZmlyaW5nX3dlYmRyaXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVudF9maXJp
bmdfd2ViZHJpdmVyLnB5CkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIEV2ZW50RmlyaW5nV2ViRHJp
dmVyKG9iamVjdCk6CiAKICAgICAgICAgRXhhbXBsZToKIAotICAgICAgICAuLiBjb2RlLWJsb2Nr
OjogcHl0aG9uCisgICAgICAgIDo6CiAKICAgICAgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJp
dmVyIGltcG9ydCBGaXJlZm94CiAgICAgICAgICAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5z
dXBwb3J0LmV2ZW50cyBpbXBvcnQgRXZlbnRGaXJpbmdXZWJEcml2ZXIsIEFic3RyYWN0RXZlbnRM
aXN0ZW5lcgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXhwZWN0ZWRfY29uZGl0aW9ucy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0
L2V4cGVjdGVkX2NvbmRpdGlvbnMucHkKaW5kZXggNzU4NDkzN2I2MjcyMTExYmY3ZDFmYThmNzFl
NDAxMzk5MTI1MGJjNS4uOTE3MDMyYzAyN2MzYjY4YWM4YjEyYWJjOWZhODE0MDdiNWRkNTgxZCAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3N1cHBvcnQvZXhwZWN0ZWRfY29uZGl0aW9ucy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9leHBl
Y3RlZF9jb25kaXRpb25zLnB5CkBAIC0yMCw2ICsyMCw3IEBAIGZyb20gc2VsZW5pdW0uY29tbW9u
LmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaEZyYW1lRXhjZXB0aW9uCiBmcm9tIHNlbGVuaXVtLmNv
bW1vbi5leGNlcHRpb25zIGltcG9ydCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24KIGZy
b20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgog
ZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgTm9BbGVydFByZXNlbnRFeGNl
cHRpb24KK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJkcml2ZXIgaW1wb3J0IFdl
YkVsZW1lbnQKIAogIiIiCiAgKiBDYW5uZWQgIkV4cGVjdGVkIENvbmRpdGlvbnMiIHdoaWNoIGFy
ZSBnZW5lcmFsbHkgdXNlZnVsIHdpdGhpbiB3ZWJkcml2ZXIKQEAgLTY3LDcgKzY4LDcgQEAgY2xh
c3MgdXJsX2NvbnRhaW5zKG9iamVjdCk6CiAgICAgIiIiIEFuIGV4cGVjdGF0aW9uIGZvciBjaGVj
a2luZyB0aGF0IHRoZSBjdXJyZW50IHVybCBjb250YWlucyBhCiAgICAgY2FzZS1zZW5zaXRpdmUg
c3Vic3RyaW5nLgogICAgIHVybCBpcyB0aGUgZnJhZ21lbnQgb2YgdXJsIGV4cGVjdGVkLAotICAg
IHJldHVybnMgVHJ1ZSB3aGVuIHRoZSB0aXRsZSBtYXRjaGVzLCBGYWxzZSBvdGhlcndpc2UKKyAg
ICByZXR1cm5zIFRydWUgd2hlbiB0aGUgdXJsIG1hdGNoZXMsIEZhbHNlIG90aGVyd2lzZQogICAg
ICIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwpOgogICAgICAgICBzZWxmLnVybCA9IHVy
bApAQCAtNzksNyArODAsNyBAQCBjbGFzcyB1cmxfY29udGFpbnMob2JqZWN0KToKIGNsYXNzIHVy
bF9tYXRjaGVzKG9iamVjdCk6CiAgICAgIiIiQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRo
ZSBjdXJyZW50IHVybC4KICAgICBwYXR0ZXJuIGlzIHRoZSBleHBlY3RlZCBwYXR0ZXJuLCB3aGlj
aCBtdXN0IGJlIGFuIGV4YWN0IG1hdGNoCi0gICAgcmV0dXJucyBUcnVlIGlmIHRoZSB0aXRsZSBt
YXRjaGVzLCBmYWxzZSBvdGhlcndpc2UuIiIiCisgICAgcmV0dXJucyBUcnVlIGlmIHRoZSB1cmwg
bWF0Y2hlcywgZmFsc2Ugb3RoZXJ3aXNlLiIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXR0
ZXJuKToKICAgICAgICAgc2VsZi5wYXR0ZXJuID0gcGF0dGVybgogCkBAIC05Myw3ICs5NCw3IEBA
IGNsYXNzIHVybF9tYXRjaGVzKG9iamVjdCk6CiBjbGFzcyB1cmxfdG9fYmUob2JqZWN0KToKICAg
ICAiIiJBbiBleHBlY3RhdGlvbiBmb3IgY2hlY2tpbmcgdGhlIGN1cnJlbnQgdXJsLgogICAgIHVy
bCBpcyB0aGUgZXhwZWN0ZWQgdXJsLCB3aGljaCBtdXN0IGJlIGFuIGV4YWN0IG1hdGNoCi0gICAg
cmV0dXJucyBUcnVlIGlmIHRoZSB0aXRsZSBtYXRjaGVzLCBmYWxzZSBvdGhlcndpc2UuIiIiCisg
ICAgcmV0dXJucyBUcnVlIGlmIHRoZSB1cmwgbWF0Y2hlcywgZmFsc2Ugb3RoZXJ3aXNlLiIiIgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwpOgogICAgICAgICBzZWxmLnVybCA9IHVybAogCkBA
IC0yNTksMTEgKzI2MCwxNCBAQCBjbGFzcyBpbnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVk
KG9iamVjdCk6CiAgICAgbG9jYXRvciB1c2VkIHRvIGZpbmQgdGhlIGVsZW1lbnQKICAgICAiIiIK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYXRvcik6Ci0gICAgICAgIHNlbGYubG9jYXRvciA9
IGxvY2F0b3IKKyAgICAgICAgc2VsZi50YXJnZXQgPSBsb2NhdG9yCiAKICAgICBkZWYgX19jYWxs
X18oc2VsZiwgZHJpdmVyKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIF9lbGVt
ZW50X2lmX3Zpc2libGUoX2ZpbmRfZWxlbWVudChkcml2ZXIsIHNlbGYubG9jYXRvciksIEZhbHNl
KQorICAgICAgICAgICAgdGFyZ2V0ID0gc2VsZi50YXJnZXQKKyAgICAgICAgICAgIGlmIG5vdCBp
c2luc3RhbmNlKHRhcmdldCwgV2ViRWxlbWVudCk6CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0g
X2ZpbmRfZWxlbWVudChkcml2ZXIsIHRhcmdldCkKKyAgICAgICAgICAgIHJldHVybiBfZWxlbWVu
dF9pZl92aXNpYmxlKHRhcmdldCwgRmFsc2UpCiAgICAgICAgIGV4Y2VwdCAoTm9TdWNoRWxlbWVu
dEV4Y2VwdGlvbiwgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKICAgICAgICAgICAg
ICMgSW4gdGhlIGNhc2Ugb2YgTm9TdWNoRWxlbWVudCwgcmV0dXJucyB0cnVlIGJlY2F1c2UgdGhl
IGVsZW1lbnQgaXMKICAgICAgICAgICAgICMgbm90IHByZXNlbnQgaW4gRE9NLiBUaGUgdHJ5IGJs
b2NrIGNoZWNrcyBpZiB0aGUgZWxlbWVudCBpcyBwcmVzZW50CkBAIC0yNzMsNiArMjc3LDE2IEBA
IGNsYXNzIGludmlzaWJpbGl0eV9vZl9lbGVtZW50X2xvY2F0ZWQob2JqZWN0KToKICAgICAgICAg
ICAgIHJldHVybiBUcnVlCiAKIAorY2xhc3MgaW52aXNpYmlsaXR5X29mX2VsZW1lbnQoaW52aXNp
YmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZCk6CisgICAgIiIiIEFuIEV4cGVjdGF0aW9uIGZvciBj
aGVja2luZyB0aGF0IGFuIGVsZW1lbnQgaXMgZWl0aGVyIGludmlzaWJsZSBvciBub3QKKyAgICBw
cmVzZW50IG9uIHRoZSBET00uCisKKyAgICBlbGVtZW50IGlzIGVpdGhlciBhIGxvY2F0b3IgKHRl
eHQpIG9yIGFuIFdlYkVsZW1lbnQKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZWxl
bWVudCk6CisgICAgICAgIHNlbGYudGFyZ2V0ID0gZWxlbWVudAorCisKIGNsYXNzIGVsZW1lbnRf
dG9fYmVfY2xpY2thYmxlKG9iamVjdCk6CiAgICAgIiIiIEFuIEV4cGVjdGF0aW9uIGZvciBjaGVj
a2luZyBhbiBlbGVtZW50IGlzIHZpc2libGUgYW5kIGVuYWJsZWQgc3VjaCB0aGF0CiAgICAgeW91
IGNhbiBjbGljayBpdC4iIiIKQEAgLTM5MCw2ICs0MDQsNTcgQEAgY2xhc3MgYWxlcnRfaXNfcHJl
c2VudChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKIAorZGVmIGFueV9vZigq
ZXhwZWN0ZWRfY29uZGl0aW9ucyk6CisgICAgIiIiIEFuIGV4cGVjdGF0aW9uIHRoYXQgYW55IG9m
IG11bHRpcGxlIGV4cGVjdGVkIGNvbmRpdGlvbnMgaXMgdHJ1ZS4KKyAgICBFcXVpdmFsZW50IHRv
IGEgbG9naWNhbCAnT1InLgorICAgIFJldHVybnMgcmVzdWx0cyBvZiB0aGUgZmlyc3QgbWF0Y2hp
bmcgY29uZGl0aW9uLCBvciBGYWxzZSBpZiBub25lIGRvLiAiIiIKKyAgICBkZWYgYW55X29mX2Nv
bmRpdGlvbihkcml2ZXIpOgorICAgICAgICBmb3IgZXhwZWN0ZWRfY29uZGl0aW9uIGluIGV4cGVj
dGVkX2NvbmRpdGlvbnM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gZXhwZWN0ZWRfY29uZGl0aW9uKGRyaXZlcikKKyAgICAgICAgICAgICAgICBpZiByZXN1bHQ6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgICAgIGV4Y2VwdCBX
ZWJEcml2ZXJFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICByZXR1cm4g
RmFsc2UKKyAgICByZXR1cm4gYW55X29mX2NvbmRpdGlvbgorCisKK2RlZiBhbGxfb2YoKmV4cGVj
dGVkX2NvbmRpdGlvbnMpOgorICAgICIiIiBBbiBleHBlY3RhdGlvbiB0aGF0IGFsbCBvZiBtdWx0
aXBsZSBleHBlY3RlZCBjb25kaXRpb25zIGlzIHRydWUuCisgICAgRXF1aXZhbGVudCB0byBhIGxv
Z2ljYWwgJ0FORCcuCisgICAgUmV0dXJuczogV2hlbiBhbnkgRXhwZWN0ZWRDb25kaXRpb24gaXMg
bm90IG1ldDogRmFsc2UuCisgICAgV2hlbiBhbGwgRXhwZWN0ZWRDb25kaXRpb25zIGFyZSBtZXQ6
IEEgTGlzdCB3aXRoIGVhY2ggRXhwZWN0ZWRDb25kaXRpb24ncyByZXR1cm4gdmFsdWUuICIiIgor
ICAgIGRlZiBhbGxfb2ZfY29uZGl0aW9uKGRyaXZlcik6CisgICAgICAgIHJlc3VsdHMgPSBbXQor
ICAgICAgICBmb3IgZXhwZWN0ZWRfY29uZGl0aW9uIGluIGV4cGVjdGVkX2NvbmRpdGlvbnM6Cisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXhwZWN0ZWRfY29uZGl0
aW9uKGRyaXZlcikKKyAgICAgICAgICAgICAgICBpZiBub3QgcmVzdWx0OgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXN1
bHQpCisgICAgICAgICAgICBleGNlcHQgV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gcmVzdWx0cworICAgIHJldHVybiBhbGxf
b2ZfY29uZGl0aW9uCisKKworZGVmIG5vbmVfb2YoKmV4cGVjdGVkX2NvbmRpdGlvbnMpOgorICAg
ICIiIiBBbiBleHBlY3RhdGlvbiB0aGF0IG5vbmUgb2YgMSBvciBtdWx0aXBsZSBleHBlY3RlZCBj
b25kaXRpb25zIGlzIHRydWUuCisgICAgRXF1aXZhbGVudCB0byBhIGxvZ2ljYWwgJ05PVC1PUicu
CisgICAgUmV0dXJucyBhIEJvb2xlYW4gIiIiCisgICAgZGVmIG5vbmVfb2ZfY29uZGl0aW9uKGRy
aXZlcik6CisgICAgICAgIGZvciBleHBlY3RlZF9jb25kaXRpb24gaW4gZXhwZWN0ZWRfY29uZGl0
aW9uczoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBleHBlY3Rl
ZF9jb25kaXRpb24oZHJpdmVyKQorICAgICAgICAgICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBleGNlcHQgV2ViRHJpdmVyRXhj
ZXB0aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBy
ZXR1cm4gbm9uZV9vZl9jb25kaXRpb24KKworCiBkZWYgX2ZpbmRfZWxlbWVudChkcml2ZXIsIGJ5
KToKICAgICAiIiJMb29rcyB1cCBhbiBlbGVtZW50LiBMb2dzIGFuZCByZS1yYWlzZXMgYGBXZWJE
cml2ZXJFeGNlcHRpb25gYAogICAgIGlmIHRocm93bi4iIiIKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L3Jl
bGF0aXZlX2xvY2F0b3IucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9yZWxhdGl2ZV9sb2NhdG9yLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg2MjgzZGIxMTk1MzAyNTU2MzNlOTBmYTZiZDIwMjRlM2NiZDRlMTEKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvc3VwcG9ydC9yZWxhdGl2ZV9sb2NhdG9yLnB5CkBAIC0wLDAgKzEsNzYgQEAKKyMgTGljZW5z
ZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisj
IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0Ug
ZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1h
dGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMg
dGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w
ICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4g
Y29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9m
IHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJ
Q0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3Jl
ZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vu
c2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5U
SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxp
ZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5p
bmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitp
bXBvcnQganNvbgoraW1wb3J0IHBrZ3V0aWwKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0
aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCisKKworZGVmIHdpdGhfdGFnX25hbWUodGFn
X25hbWUpOgorICAgIGlmIHRhZ19uYW1lIGlzIE5vbmU6CisgICAgICAgIHJhaXNlIFdlYkRyaXZl
ckV4Y2VwdGlvbigidGFnX25hbWUgY2FuIG5vdCBiZSBudWxsIikKKyAgICByZXR1cm4gUmVsYXRp
dmVCeSh7ImNzcyBzZWxlY3RvciI6IHRhZ19uYW1lfSkKKworY2xhc3MgUmVsYXRpdmVCeShvYmpl
Y3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3QgPSBOb25lLCBmaWx0ZXJzID0gW10p
OgorICAgICAgICBzZWxmLnJvb3QgPSByb290CisgICAgICAgIHNlbGYuZmlsdGVycyA9IGZpbHRl
cnMKKworICAgIGRlZiBhYm92ZShzZWxmLCBlbGVtZW50X29yX2xvY2F0b3IgPSBOb25lKToKKyAg
ICAgICAgaWYgZWxlbWVudF9vcl9sb2NhdG9yIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBX
ZWJEcml2ZXJFeGNlcHRpb24oIkVsZW1lbnQgb3IgbG9jYXRvciBtdXN0IGJlIGdpdmVuIHdoZW4g
Y2FsbGluZyBhYm92ZSBtZXRob2QiKQorICAgICAgICAKKyAgICAgICAgc2VsZi5maWx0ZXJzLmFw
cGVuZCh7ImtpbmQiOiAiYWJvdmUiLCAiYXJncyI6IFtlbGVtZW50X29yX2xvY2F0b3JdfSkKKyAg
ICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBiZWxvdyhzZWxmLCBlbGVtZW50X29yX2xvY2F0
b3IgPSBOb25lKToKKyAgICAgICAgaWYgZWxlbWVudF9vcl9sb2NhdG9yIGlzIE5vbmU6CisgICAg
ICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkVsZW1lbnQgb3IgbG9jYXRvciBtdXN0
IGJlIGdpdmVuIHdoZW4gY2FsbGluZyBhYm92ZSBtZXRob2QiKQorCisgICAgICAgIHNlbGYuZmls
dGVycy5hcHBlbmQoeyJraW5kIjogImJlbG93IiwgImFyZ3MiOiBbZWxlbWVudF9vcl9sb2NhdG9y
XX0pCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgdG9fbGVmdF9vZihzZWxmLCBlbGVt
ZW50X29yX2xvY2F0b3IgPSBOb25lKToKKyAgICAgICAgaWYgZWxlbWVudF9vcl9sb2NhdG9yIGlz
IE5vbmU6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkVsZW1lbnQgb3Ig
bG9jYXRvciBtdXN0IGJlIGdpdmVuIHdoZW4gY2FsbGluZyBhYm92ZSBtZXRob2QiKQorCisgICAg
ICAgIHNlbGYuZmlsdGVycy5hcHBlbmQoeyJraW5kIjogImxlZnQiLCAiYXJncyI6IFtlbGVtZW50
X29yX2xvY2F0b3JdfSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiB0b19yaWdodF9v
ZihzZWxmLCBlbGVtZW50X29yX2xvY2F0b3IpOgorICAgICAgICBpZiBlbGVtZW50X29yX2xvY2F0
b3IgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiRWxlbWVu
dCBvciBsb2NhdG9yIG11c3QgYmUgZ2l2ZW4gd2hlbiBjYWxsaW5nIGFib3ZlIG1ldGhvZCIpCisK
KyAgICAgICAgc2VsZi5maWx0ZXJzLmFwcGVuZCh7ImtpbmQiOiAicmlnaHQiLCAiYXJncyI6IFtl
bGVtZW50X29yX2xvY2F0b3JdfSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBuZWFy
KHNlbGYsIGVsZW1lbnRfb3JfbG9jYXRvcl9kaXN0YW5jZSA9IE5vbmUpOgorICAgICAgICBpZiBl
bGVtZW50X29yX2xvY2F0b3IgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4
Y2VwdGlvbigiRWxlbWVudCBvciBsb2NhdG9yIG9yIGRpc3RhbmNlIG11c3QgYmUgZ2l2ZW4gd2hl
biBjYWxsaW5nIGFib3ZlIG1ldGhvZCIpCisKKyAgICAgICAgc2VsZi5maWx0ZXJzLmFwcGVuZCh7
ImtpbmQiOiAibmVhciIsICJhcmdzIjogW2VsZW1lbnRfb3JfbG9jYXRvcl19KQorICAgICAgICBy
ZXR1cm4gc2VsZgorCisgICAgZGVmIHRvX2RpY3Qoc2VsZik6CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICAncmVsYXRpdmUnOiB7CisgICAgICAgICAgICAgICAgJ3Jvb3QnOiBzZWxmLnJv
b3QsCisgICAgICAgICAgICAgICAgJ2ZpbHRlcnMnOiBzZWxmLmZpbHRlcnMKKyAgICAgICAgICAg
IH0gCisgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L3NlbGVjdC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L3NlbGVj
dC5weQppbmRleCBkMzQzODM0Y2Y3ODQxYTljZTIxZjA5MThmNzY4MzJmMDdjOTFmMmE4Li43MTY3
NWNhZDEyM2NiMGU3ZWVlMDAwN2VhYjM4MzA3ZTQwODFjZWM5IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9z
ZWxlY3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL3N1cHBvcnQvc2VsZWN0LnB5CkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIFNl
bGVjdChvYmplY3QpOgogICAgICAgICAgICA6QXJnczoKICAgICAgICAgICAgIC0gdmFsdWUgLSBU
aGUgdmFsdWUgdG8gbWF0Y2ggYWdhaW5zdAogCi0gICAgICAgICAgIHRocm93cyBOb1N1Y2hFbGVt
ZW50RXhjZXB0aW9uIElmIHRoZXJlIGlzIG5vIG9wdGlvbiB3aXRoIHNwZWNpc2llZCB2YWx1ZSBp
biBTRUxFQ1QKKyAgICAgICAgICAgdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gSWYgdGhl
cmUgaXMgbm8gb3B0aW9uIHdpdGggc3BlY2lmaWVkIHZhbHVlIGluIFNFTEVDVAogICAgICAgICAg
ICAiIiIKICAgICAgICAgY3NzID0gIm9wdGlvblt2YWx1ZSA9JXNdIiAlIHNlbGYuX2VzY2FwZVN0
cmluZyh2YWx1ZSkKICAgICAgICAgb3B0cyA9IHNlbGYuX2VsLmZpbmRfZWxlbWVudHMoQnkuQ1NT
X1NFTEVDVE9SLCBjc3MpCkBAIC05Myw3ICs5Myw3IEBAIGNsYXNzIFNlbGVjdChvYmplY3QpOgog
ICAgICAgICAgICA6QXJnczoKICAgICAgICAgICAgIC0gaW5kZXggLSBUaGUgb3B0aW9uIGF0IHRo
aXMgaW5kZXggd2lsbCBiZSBzZWxlY3RlZAogCi0gICAgICAgICAgIHRocm93cyBOb1N1Y2hFbGVt
ZW50RXhjZXB0aW9uIElmIHRoZXJlIGlzIG5vIG9wdGlvbiB3aXRoIHNwZWNpc2llZCBpbmRleCBp
biBTRUxFQ1QKKyAgICAgICAgICAgdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gSWYgdGhl
cmUgaXMgbm8gb3B0aW9uIHdpdGggc3BlY2lmaWVkIGluZGV4IGluIFNFTEVDVAogICAgICAgICAg
ICAiIiIKICAgICAgICAgbWF0Y2ggPSBzdHIoaW5kZXgpCiAgICAgICAgIGZvciBvcHQgaW4gc2Vs
Zi5vcHRpb25zOgpAQCAtMTExLDcgKzExMSw3IEBAIGNsYXNzIFNlbGVjdChvYmplY3QpOgogICAg
ICAgICAgICA6QXJnczoKICAgICAgICAgICAgIC0gdGV4dCAtIFRoZSB2aXNpYmxlIHRleHQgdG8g
bWF0Y2ggYWdhaW5zdAogCi0gICAgICAgICAgICB0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlv
biBJZiB0aGVyZSBpcyBubyBvcHRpb24gd2l0aCBzcGVjaXNpZWQgdGV4dCBpbiBTRUxFQ1QKKyAg
ICAgICAgICAgIHRocm93cyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIElmIHRoZXJlIGlzIG5vIG9w
dGlvbiB3aXRoIHNwZWNpZmllZCB0ZXh0IGluIFNFTEVDVAogICAgICAgICAgICAiIiIKICAgICAg
ICAgeHBhdGggPSAiLi8vb3B0aW9uW25vcm1hbGl6ZS1zcGFjZSguKSA9ICVzXSIgJSBzZWxmLl9l
c2NhcGVTdHJpbmcodGV4dCkKICAgICAgICAgb3B0cyA9IHNlbGYuX2VsLmZpbmRfZWxlbWVudHMo
QnkuWFBBVEgsIHhwYXRoKQpAQCAtMTU3LDcgKzE1Nyw3IEBAIGNsYXNzIFNlbGVjdChvYmplY3Qp
OgogICAgICAgICAgICA6QXJnczoKICAgICAgICAgICAgIC0gdmFsdWUgLSBUaGUgdmFsdWUgdG8g
bWF0Y2ggYWdhaW5zdAogCi0gICAgICAgICAgICB0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlv
biBJZiB0aGVyZSBpcyBubyBvcHRpb24gd2l0aCBzcGVjaXNpZWQgdmFsdWUgaW4gU0VMRUNUCisg
ICAgICAgICAgICB0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBJZiB0aGVyZSBpcyBubyBv
cHRpb24gd2l0aCBzcGVjaWZpZWQgdmFsdWUgaW4gU0VMRUNUCiAgICAgICAgICIiIgogICAgICAg
ICBpZiBub3Qgc2VsZi5pc19tdWx0aXBsZToKICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IoIllvdSBtYXkgb25seSBkZXNlbGVjdCBvcHRpb25zIG9mIGEgbXVsdGktc2VsZWN0
IikKQEAgLTE3Nyw3ICsxNzcsNyBAQCBjbGFzcyBTZWxlY3Qob2JqZWN0KToKICAgICAgICAgICAg
OkFyZ3M6CiAgICAgICAgICAgICAtIGluZGV4IC0gVGhlIG9wdGlvbiBhdCB0aGlzIGluZGV4IHdp
bGwgYmUgZGVzZWxlY3RlZAogCi0gICAgICAgICAgICB0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2Vw
dGlvbiBJZiB0aGVyZSBpcyBubyBvcHRpb24gd2l0aCBzcGVjaXNpZWQgaW5kZXggaW4gU0VMRUNU
CisgICAgICAgICAgICB0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBJZiB0aGVyZSBpcyBu
byBvcHRpb24gd2l0aCBzcGVjaWZpZWQgaW5kZXggaW4gU0VMRUNUCiAgICAgICAgICIiIgogICAg
ICAgICBpZiBub3Qgc2VsZi5pc19tdWx0aXBsZToKICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IoIllvdSBtYXkgb25seSBkZXNlbGVjdCBvcHRpb25zIG9mIGEgbXVsdGktc2Vs
ZWN0IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L3dhaXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC93YWl0LnB5CmluZGV4IDQz
ZjI4YTExZjExNzA4OWUxOTQwMGFhNzdmYTYwNjYzMzM2YWNmM2YuLmRjZTU5NjE2YjhjOTAxMThk
MTAzOWFhNDFiZGVmNGM1M2E0ZWVhYTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L3dhaXQucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1
cHBvcnQvd2FpdC5weQpAQCAtMzUsMTQgKzM1LDE1IEBAIGNsYXNzIFdlYkRyaXZlcldhaXQob2Jq
ZWN0KToKICAgICAgICAgICAgIC0gaWdub3JlZF9leGNlcHRpb25zIC0gaXRlcmFibGUgc3RydWN0
dXJlIG9mIGV4Y2VwdGlvbiBjbGFzc2VzIGlnbm9yZWQgZHVyaW5nIGNhbGxzLgogICAgICAgICAg
ICAgICBCeSBkZWZhdWx0LCBpdCBjb250YWlucyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIG9ubHku
CiAKLSAgICAgICAgICAgRXhhbXBsZToKLSAgICAgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJp
dmVyLnN1cHBvcnQudWkgaW1wb3J0IFdlYkRyaXZlcldhaXQgXG4KKyAgICAgICAgICAgRXhhbXBs
ZTo6CisKKyAgICAgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdCBp
bXBvcnQgV2ViRHJpdmVyV2FpdCBcbgogICAgICAgICAgICAgZWxlbWVudCA9IFdlYkRyaXZlcldh
aXQoZHJpdmVyLCAxMCkudW50aWwobGFtYmRhIHg6IHguZmluZF9lbGVtZW50X2J5X2lkKCJzb21l
SWQiKSkgXG4KLSAgICAgICAgICAgIGlzX2Rpc2FwcGVhcmVkID0gV2ViRHJpdmVyV2FpdChkcml2
ZXIsIDMwLCAxLCAoRWxlbWVudE5vdFZpc2libGVFeGNlcHRpb24pKS5cIFxuCisgICAgICAgICAg
ICBpc19kaXNhcHBlYXJlZCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzMCwgMSwgKEVsZW1lbnRO
b3RWaXNpYmxlRXhjZXB0aW9uKSkuXFwgXG4KICAgICAgICAgICAgICAgICAgICAgICAgIHVudGls
X25vdChsYW1iZGEgeDogeC5maW5kX2VsZW1lbnRfYnlfaWQoInNvbWVJZCIpLmlzX2Rpc3BsYXll
ZCgpKQogICAgICAgICAiIiIKICAgICAgICAgc2VsZi5fZHJpdmVyID0gZHJpdmVyCi0gICAgICAg
IHNlbGYuX3RpbWVvdXQgPSB0aW1lb3V0CisgICAgICAgIHNlbGYuX3RpbWVvdXQgPSBmbG9hdCh0
aW1lb3V0KQogICAgICAgICBzZWxmLl9wb2xsID0gcG9sbF9mcmVxdWVuY3kKICAgICAgICAgIyBh
dm9pZCB0aGUgZGl2aWRlIGJ5IHplcm8KICAgICAgICAgaWYgc2VsZi5fcG9sbCA9PSAwOgpAQCAt
NjEsNyArNjIsMTMgQEAgY2xhc3MgV2ViRHJpdmVyV2FpdChvYmplY3QpOgogCiAgICAgZGVmIHVu
dGlsKHNlbGYsIG1ldGhvZCwgbWVzc2FnZT0nJyk6CiAgICAgICAgICIiIkNhbGxzIHRoZSBtZXRo
b2QgcHJvdmlkZWQgd2l0aCB0aGUgZHJpdmVyIGFzIGFuIGFyZ3VtZW50IHVudGlsIHRoZSBcCi0g
ICAgICAgIHJldHVybiB2YWx1ZSBpcyBub3QgRmFsc2UuIiIiCisgICAgICAgIHJldHVybiB2YWx1
ZSBkb2VzIG5vdCBldmFsdWF0ZSB0byBgYEZhbHNlYGAuCisKKyAgICAgICAgOnBhcmFtIG1ldGhv
ZDogY2FsbGFibGUoV2ViRHJpdmVyKQorICAgICAgICA6cGFyYW0gbWVzc2FnZTogb3B0aW9uYWwg
bWVzc2FnZSBmb3IgOmV4YzpgVGltZW91dEV4Y2VwdGlvbmAKKyAgICAgICAgOnJldHVybnM6IHRo
ZSByZXN1bHQgb2YgdGhlIGxhc3QgY2FsbCB0byBgbWV0aG9kYAorICAgICAgICA6cmFpc2VzOiA6
ZXhjOmBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucy5UaW1lb3V0RXhjZXB0aW9uYCBpZiB0aW1l
b3V0IG9jY3VycworICAgICAgICAiIiIKICAgICAgICAgc2NyZWVuID0gTm9uZQogICAgICAgICBz
dGFja3RyYWNlID0gTm9uZQogCkBAIC04MSw3ICs4OCwxNCBAQCBjbGFzcyBXZWJEcml2ZXJXYWl0
KG9iamVjdCk6CiAKICAgICBkZWYgdW50aWxfbm90KHNlbGYsIG1ldGhvZCwgbWVzc2FnZT0nJyk6
CiAgICAgICAgICIiIkNhbGxzIHRoZSBtZXRob2QgcHJvdmlkZWQgd2l0aCB0aGUgZHJpdmVyIGFz
IGFuIGFyZ3VtZW50IHVudGlsIHRoZSBcCi0gICAgICAgIHJldHVybiB2YWx1ZSBpcyBGYWxzZS4i
IiIKKyAgICAgICAgcmV0dXJuIHZhbHVlIGV2YWx1YXRlcyB0byBgYEZhbHNlYGAuCisKKyAgICAg
ICAgOnBhcmFtIG1ldGhvZDogY2FsbGFibGUoV2ViRHJpdmVyKQorICAgICAgICA6cGFyYW0gbWVz
c2FnZTogb3B0aW9uYWwgbWVzc2FnZSBmb3IgOmV4YzpgVGltZW91dEV4Y2VwdGlvbmAKKyAgICAg
ICAgOnJldHVybnM6IHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgY2FsbCB0byBgbWV0aG9kYCwgb3IK
KyAgICAgICAgICAgICAgICAgIGBgVHJ1ZWBgIGlmIGBtZXRob2RgIGhhcyByYWlzZWQgb25lIG9m
IHRoZSBpZ25vcmVkIGV4Y2VwdGlvbnMKKyAgICAgICAgOnJhaXNlczogOmV4Yzpgc2VsZW5pdW0u
Y29tbW9uLmV4Y2VwdGlvbnMuVGltZW91dEV4Y2VwdGlvbmAgaWYgdGltZW91dCBvY2N1cnMKKyAg
ICAgICAgIiIiCiAgICAgICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkgKyBzZWxmLl90aW1lb3V0
CiAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0
Z3RrL29wdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvd2Via2l0Z3RrL29wdGlvbnMucHkKaW5kZXggNWRjMjhjYWIyNTUxZmJk
N2ExZWJkOWY4M2ZmYmVkYjUwMjJhYThiOC4uY2JmNWE2MjBjOTM1MmQ4NzljZTEzNWZmNTYwNjQw
MmJlMmVjNzQyZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay9vcHRpb25zLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsv
b3B0aW9ucy5weQpAQCAtMTYsMjAgKzE2LDIxIEBACiAjIHVuZGVyIHRoZSBMaWNlbnNlLgogCiBm
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0
IERlc2lyZWRDYXBhYmlsaXRpZXMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5vcHRp
b25zIGltcG9ydCBBcmdPcHRpb25zCiAKIAotY2xhc3MgT3B0aW9ucyhvYmplY3QpOgorY2xhc3Mg
T3B0aW9ucyhBcmdPcHRpb25zKToKICAgICBLRVkgPSAnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25z
JwogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzdXBlcihPcHRpb25zLCBzZWxm
KS5fX2luaXRfXygpCiAgICAgICAgIHNlbGYuX2JpbmFyeV9sb2NhdGlvbiA9ICcnCi0gICAgICAg
IHNlbGYuX2FyZ3VtZW50cyA9IFtdCiAgICAgICAgIHNlbGYuX292ZXJsYXlfc2Nyb2xsYmFyc19l
bmFibGVkID0gVHJ1ZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGJpbmFyeV9sb2NhdGlvbihz
ZWxmKToKICAgICAgICAgIiIiCi0gICAgICAgIFJldHVybnMgdGhlIGxvY2F0aW9uIG9mIHRoZSBi
cm93c2VyIGJpbmFyeSBvdGhlcndpc2UgYW4gZW1wdHkgc3RyaW5nCisgICAgICAgIDpSZXR1cm5z
OiBUaGUgbG9jYXRpb24gb2YgdGhlIGJyb3dzZXIgYmluYXJ5IG90aGVyd2lzZSBhbiBlbXB0eSBz
dHJpbmcKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLl9iaW5hcnlfbG9jYXRpb24K
IApAQCAtNDMsMjkgKzQ0LDEwIEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICAgICAgIiIi
CiAgICAgICAgIHNlbGYuX2JpbmFyeV9sb2NhdGlvbiA9IHZhbHVlCiAKLSAgICBAcHJvcGVydHkK
LSAgICBkZWYgYXJndW1lbnRzKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJucyBh
IGxpc3Qgb2YgYXJndW1lbnRzIG5lZWRlZCBmb3IgdGhlIGJyb3dzZXIKLSAgICAgICAgIiIiCi0g
ICAgICAgIHJldHVybiBzZWxmLl9hcmd1bWVudHMKLQotICAgIGRlZiBhZGRfYXJndW1lbnQoc2Vs
ZiwgYXJndW1lbnQpOgotICAgICAgICAiIiIKLSAgICAgICAgQWRkcyBhbiBhcmd1bWVudCB0byB0
aGUgbGlzdAotCi0gICAgICAgIDpBcmdzOgotICAgICAgICAgLSBTZXRzIHRoZSBhcmd1bWVudHMK
LSAgICAgICAgIiIiCi0gICAgICAgIGlmIGFyZ3VtZW50OgotICAgICAgICAgICAgc2VsZi5fYXJn
dW1lbnRzLmFwcGVuZChhcmd1bWVudCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoImFyZ3VtZW50IGNhbiBub3QgYmUgbnVsbCIpCi0KICAgICBAcHJvcGVydHkK
ICAgICBkZWYgb3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJsZWQoc2VsZik6CiAgICAgICAgICIiIgot
ICAgICAgICBSZXR1cm5zIHdoZXRoZXIgb3ZlcmxheSBzY3JvbGxiYXJzIHNob3VsZCBiZSBlbmFi
bGVkCisgICAgICAgIDpSZXR1cm5zOiBXaGV0aGVyIG92ZXJsYXkgc2Nyb2xsYmFycyBzaG91bGQg
YmUgZW5hYmxlZAogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX292ZXJsYXlfc2Ny
b2xsYmFyc19lbmFibGVkCiAKQEAgLTc5LDEyICs2MSwyMyBAQCBjbGFzcyBPcHRpb25zKG9iamVj
dCk6CiAgICAgICAgICIiIgogICAgICAgICBzZWxmLl9vdmVybGF5X3Njcm9sbGJhcnNfZW5hYmxl
ZCA9IHZhbHVlCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFnZV9sb2FkX3N0cmF0ZWd5KHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY2Fwc1sicGFnZUxvYWRTdHJhdGVneSJdCisKKyAg
ICBAcGFnZV9sb2FkX3N0cmF0ZWd5LnNldHRlcgorICAgIGRlZiBwYWdlX2xvYWRfc3RyYXRlZ3ko
c2VsZiwgc3RyYXRlZ3kpOgorICAgICAgICBpZiBzdHJhdGVneSBpbiBbIm5vcm1hbCIsICJlYWdl
ciIsICJub25lIl06CisgICAgICAgICAgICBzZWxmLnNldF9jYXBhYmlsaXR5KCJwYWdlTG9hZFN0
cmF0ZWd5Iiwgc3RyYXRlZ3kpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCJTdHJhdGVneSBjYW4gb25seSBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzogbm9ybWFs
LCBlYWdlciwgbm9uZSIpCisKICAgICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgogICAgICAg
ICAiIiIKICAgICAgICAgQ3JlYXRlcyBhIGNhcGFiaWxpdGllcyB3aXRoIGFsbCB0aGUgb3B0aW9u
cyB0aGF0IGhhdmUgYmVlbiBzZXQgYW5kCiAgICAgICAgIHJldHVybnMgYSBkaWN0aW9uYXJ5IHdp
dGggZXZlcnl0aGluZwogICAgICAgICAiIiIKLSAgICAgICAgd2Via2l0Z3RrID0gRGVzaXJlZENh
cGFiaWxpdGllcy5XRUJLSVRHVEsuY29weSgpCisgICAgICAgIGNhcHMgPSBzZWxmLl9jYXBzCiAK
ICAgICAgICAgYnJvd3Nlcl9vcHRpb25zID0ge30KICAgICAgICAgaWYgc2VsZi5iaW5hcnlfbG9j
YXRpb246CkBAIC05Myw2ICs4NiwxMCBAQCBjbGFzcyBPcHRpb25zKG9iamVjdCk6CiAgICAgICAg
ICAgICBicm93c2VyX29wdGlvbnNbImFyZ3MiXSA9IHNlbGYuYXJndW1lbnRzCiAgICAgICAgIGJy
b3dzZXJfb3B0aW9uc1sidXNlT3ZlcmxheVNjcm9sbGJhcnMiXSA9IHNlbGYub3ZlcmxheV9zY3Jv
bGxiYXJzX2VuYWJsZWQKIAotICAgICAgICB3ZWJraXRndGtbT3B0aW9ucy5LRVldID0gYnJvd3Nl
cl9vcHRpb25zCisgICAgICAgIGNhcHNbT3B0aW9ucy5LRVldID0gYnJvd3Nlcl9vcHRpb25zCiAK
LSAgICAgICAgcmV0dXJuIHdlYmtpdGd0aworICAgICAgICByZXR1cm4gY2FwcworCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGRlZmF1bHRfY2FwYWJpbGl0aWVzKHNlbGYpOgorICAgICAgICByZXR1
cm4gRGVzaXJlZENhcGFiaWxpdGllcy5XRUJLSVRHVEsuY29weSgpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0
Z3RrL3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvd2ViZHJpdmVyLnB5CmluZGV4IDcwMDljZTJhZDgy
ZTQ3NWQ4MDg1NGJjM2NiM2FjYmM2MWViNTI0ODEuLjIyYTI1N2NiYjMwMDIzMDdlOGFjZGQwOTY2
OWQzNmVjNGRkMjVlMjcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvd2ViZHJpdmVyLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJr
aXRndGsvd2ViZHJpdmVyLnB5CkBAIC0yMCw5ICsyMCw5IEBAIHRyeToKIGV4Y2VwdCBJbXBvcnRF
cnJvcjoKICAgICBpbXBvcnQgaHR0cGxpYiBhcyBodHRwX2NsaWVudAogCi1mcm9tIHNlbGVuaXVt
LndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0IERlc2lyZWRDYXBh
YmlsaXRpZXMKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJkcml2ZXIgaW1wb3J0
IFdlYkRyaXZlciBhcyBSZW1vdGVXZWJEcml2ZXIKIGZyb20gLnNlcnZpY2UgaW1wb3J0IFNlcnZp
Y2UKK2Zyb20gLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKIAogCiBjbGFzcyBXZWJEcml2ZXIoUmVt
b3RlV2ViRHJpdmVyKToKQEAgLTMxLDggKzMxLDggQEAgY2xhc3MgV2ViRHJpdmVyKFJlbW90ZVdl
YkRyaXZlcik6CiAgICAgIiIiCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZV9w
YXRoPSJXZWJLaXRXZWJEcml2ZXIiLCBwb3J0PTAsIG9wdGlvbnM9Tm9uZSwKLSAgICAgICAgICAg
ICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9RGVzaXJlZENhcGFiaWxpdGllcy5XRUJLSVRHVEss
Ci0gICAgICAgICAgICAgICAgIHNlcnZpY2VfbG9nX3BhdGg9Tm9uZSk6CisgICAgICAgICAgICAg
ICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPU5vbmUsCisgICAgICAgICAgICAgICAgIHNlcnZpY2Vf
bG9nX3BhdGg9Tm9uZSwga2VlcF9hbGl2ZT1GYWxzZSk6CiAgICAgICAgICIiIgogICAgICAgICBD
cmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBXZWJLaXRHVEsgZHJpdmVyLgogCkBAIC00NCwx
MCArNDQsMTUgQEAgY2xhc3MgV2ViRHJpdmVyKFJlbW90ZVdlYkRyaXZlcik6CiAgICAgICAgICAt
IG9wdGlvbnMgOiBhbiBpbnN0YW5jZSBvZiBXZWJLaXRHVEtPcHRpb25zCiAgICAgICAgICAtIGRl
c2lyZWRfY2FwYWJpbGl0aWVzIDogRGljdGlvbmFyeSBvYmplY3Qgd2l0aCBkZXNpcmVkIGNhcGFi
aWxpdGllcwogICAgICAgICAgLSBzZXJ2aWNlX2xvZ19wYXRoIDogUGF0aCB0byB3cml0ZSBzZXJ2
aWNlIHN0ZG91dCBhbmQgc3RkZXJyIG91dHB1dC4KKyAgICAgICAgIC0ga2VlcF9hbGl2ZSA6IFdo
ZXRoZXIgdG8gY29uZmlndXJlIFJlbW90ZUNvbm5lY3Rpb24gdG8gdXNlIEhUVFAga2VlcC1hbGl2
ZS4KICAgICAgICAgIiIiCi0gICAgICAgIGlmIG9wdGlvbnMgaXMgbm90IE5vbmU6CisgICAgICAg
IGlmIG9wdGlvbnMgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIGRlc2lyZWRfY2FwYWJpbGl0aWVz
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXMgPSBPcHRpb25z
KCkudG9fY2FwYWJpbGl0aWVzKCkKKyAgICAgICAgZWxzZToKICAgICAgICAgICAgIGNhcGFiaWxp
dGllcyA9IG9wdGlvbnMudG9fY2FwYWJpbGl0aWVzKCkKLSAgICAgICAgICAgIGNhcGFiaWxpdGll
cy51cGRhdGUoZGVzaXJlZF9jYXBhYmlsaXRpZXMpCisgICAgICAgICAgICBpZiBkZXNpcmVkX2Nh
cGFiaWxpdGllcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMudXBk
YXRlKGRlc2lyZWRfY2FwYWJpbGl0aWVzKQogICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRp
ZXMgPSBjYXBhYmlsaXRpZXMKIAogICAgICAgICBzZWxmLnNlcnZpY2UgPSBTZXJ2aWNlKGV4ZWN1
dGFibGVfcGF0aCwgcG9ydD1wb3J0LCBsb2dfcGF0aD1zZXJ2aWNlX2xvZ19wYXRoKQpAQCAtNTYs
NyArNjEsOCBAQCBjbGFzcyBXZWJEcml2ZXIoUmVtb3RlV2ViRHJpdmVyKToKICAgICAgICAgUmVt
b3RlV2ViRHJpdmVyLl9faW5pdF9fKAogICAgICAgICAgICAgc2VsZiwKICAgICAgICAgICAgIGNv
bW1hbmRfZXhlY3V0b3I9c2VsZi5zZXJ2aWNlLnNlcnZpY2VfdXJsLAotICAgICAgICAgICAgZGVz
aXJlZF9jYXBhYmlsaXRpZXM9ZGVzaXJlZF9jYXBhYmlsaXRpZXMpCisgICAgICAgICAgICBkZXNp
cmVkX2NhcGFiaWxpdGllcz1kZXNpcmVkX2NhcGFiaWxpdGllcywKKyAgICAgICAgICAgIGtlZXBf
YWxpdmU9a2VlcF9hbGl2ZSkKICAgICAgICAgc2VsZi5faXNfcmVtb3RlID0gRmFsc2UKIAogICAg
IGRlZiBxdWl0KHNlbGYpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dwZXdlYmtpdC9fX2luaXRfXy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93cGV3ZWJr
aXQvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTA5ZTU5NTBhYWI1MzQ5ZjI0NmUx
YWNiOTMwYzJhZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93cGV3ZWJraXQvX19pbml0X18ucHkKQEAgLTAs
MCArMSwxNiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5j
eSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVu
dHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZv
ciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlw
LiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUg
TGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFw
YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmli
dXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJB
U0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0
aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNp
ZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5k
ZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd3Bld2Via2l0L29wdGlvbnMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd3Bld2Via2l0
L29wdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTAwZWI3NmUzYjMyODNlOTUwNmM1ZDRmODEzNmE4M2Vj
Zjg3OWY3ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93cGV3ZWJraXQvb3B0aW9ucy5weQpAQCAtMCwwICsx
LDg4IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChT
RkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4g
IFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBU
aGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNl
bnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMs
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMg
bGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0
aGUgTGljZW5zZS4KKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmRlc2lyZWRfY2Fw
YWJpbGl0aWVzIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCisKKworY2xhc3MgT3B0aW9ucyhv
YmplY3QpOgorICAgIEtFWSA9ICd3cGU6YnJvd3Nlck9wdGlvbnMnCisKKyAgICBkZWYgX19pbml0
X18oc2VsZik6CisgICAgICAgIHNlbGYuX2JpbmFyeV9sb2NhdGlvbiA9ICcnCisgICAgICAgIHNl
bGYuX2FyZ3VtZW50cyA9IFtdCisgICAgICAgIHNlbGYuX2NhcHMgPSBEZXNpcmVkQ2FwYWJpbGl0
aWVzLldQRVdFQktJVC5jb3B5KCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjYXBhYmlsaXRp
ZXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jYXBzCisKKyAgICBkZWYgc2V0X2NhcGFi
aWxpdHkoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICAiIiJTZXRzIGEgY2FwYWJpbGl0eS4i
IiIKKyAgICAgICAgc2VsZi5fY2Fwc1tuYW1lXSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgYmluYXJ5X2xvY2F0aW9uKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu
cyB0aGUgbG9jYXRpb24gb2YgdGhlIGJyb3dzZXIgYmluYXJ5IG90aGVyd2lzZSBhbiBlbXB0eSBz
dHJpbmcKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9iaW5hcnlfbG9jYXRpb24K
KworICAgIEBiaW5hcnlfbG9jYXRpb24uc2V0dGVyCisgICAgZGVmIGJpbmFyeV9sb2NhdGlvbihz
ZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBBbGxvd3MgeW91IHRvIHNldCB0aGUg
YnJvd3NlciBiaW5hcnkgdG8gbGF1bmNoCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZh
bHVlIDogcGF0aCB0byB0aGUgYnJvd3NlciBiaW5hcnkKKyAgICAgICAgIiIiCisgICAgICAgIHNl
bGYuX2JpbmFyeV9sb2NhdGlvbiA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYXJn
dW1lbnRzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgYXJn
dW1lbnRzIG5lZWRlZCBmb3IgdGhlIGJyb3dzZXIKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy
biBzZWxmLl9hcmd1bWVudHMKKworICAgIGRlZiBhZGRfYXJndW1lbnQoc2VsZiwgYXJndW1lbnQp
OgorICAgICAgICAiIiIKKyAgICAgICAgQWRkcyBhbiBhcmd1bWVudCB0byB0aGUgbGlzdAorCisg
ICAgICAgIDpBcmdzOgorICAgICAgICAgLSBTZXRzIHRoZSBhcmd1bWVudHMKKyAgICAgICAgIiIi
CisgICAgICAgIGlmIGFyZ3VtZW50OgorICAgICAgICAgICAgc2VsZi5fYXJndW1lbnRzLmFwcGVu
ZChhcmd1bWVudCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
ImFyZ3VtZW50IGNhbiBub3QgYmUgbnVsbCIpCisKKyAgICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNl
bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIGNhcGFiaWxpdGllcyB3aXRoIGFs
bCB0aGUgb3B0aW9ucyB0aGF0IGhhdmUgYmVlbiBzZXQgYW5kCisgICAgICAgIHJldHVybnMgYSBk
aWN0aW9uYXJ5IHdpdGggZXZlcnl0aGluZworICAgICAgICAiIiIKKyAgICAgICAgY2FwcyA9IHNl
bGYuX2NhcHMKKworICAgICAgICBicm93c2VyX29wdGlvbnMgPSB7fQorICAgICAgICBpZiBzZWxm
LmJpbmFyeV9sb2NhdGlvbjoKKyAgICAgICAgICAgIGJyb3dzZXJfb3B0aW9uc1siYmluYXJ5Il0g
PSBzZWxmLmJpbmFyeV9sb2NhdGlvbgorICAgICAgICBpZiBzZWxmLmFyZ3VtZW50czoKKyAgICAg
ICAgICAgIGJyb3dzZXJfb3B0aW9uc1siYXJncyJdID0gc2VsZi5hcmd1bWVudHMKKworICAgICAg
ICBjYXBzW09wdGlvbnMuS0VZXSA9IGJyb3dzZXJfb3B0aW9ucworCisgICAgICAgIHJldHVybiBj
YXBzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvd3Bld2Via2l0L3NlcnZpY2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd3Bld2Via2l0L3NlcnZpY2UucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGIxZjU1ZTI5MTdlZjgzOWFkZGQ3NDc1NmZiMDc5ZWRjMjk4OTMyNwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci93cGV3ZWJraXQvc2VydmljZS5weQpAQCAtMCwwICsxLDQyIEBACisjIExp
Y2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9u
ZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9U
SUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5m
b3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vu
c2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
IDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0
IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29w
eSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNl
cy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3Ig
YWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM
aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FS
UkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBp
bXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4K
KworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uIGltcG9ydCBzZXJ2aWNlCisKKworY2xh
c3MgU2VydmljZShzZXJ2aWNlLlNlcnZpY2UpOgorICAgICIiIgorICAgIE9iamVjdCB0aGF0IG1h
bmFnZXMgdGhlIHN0YXJ0aW5nIGFuZCBzdG9wcGluZyBvZiB0aGUgV1BFV2ViS2l0RHJpdmVyCisg
ICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZV9wYXRoLCBwb3J0PTAs
IGxvZ19wYXRoPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIG5ldyBpbnN0
YW5jZSBvZiB0aGUgU2VydmljZQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBleGVjdXRh
YmxlX3BhdGggOiBQYXRoIHRvIHRoZSBXUEVXZWJLaXREcml2ZXIKKyAgICAgICAgIC0gcG9ydCA6
IFBvcnQgdGhlIHNlcnZpY2UgaXMgcnVubmluZyBvbgorICAgICAgICAgLSBsb2dfcGF0aCA6IFBh
dGggZm9yIHRoZSBXUEVXZWJLaXREcml2ZXIgc2VydmljZSB0byBsb2cgdG8KKyAgICAgICAgIiIi
CisgICAgICAgIGxvZ19maWxlID0gb3Blbihsb2dfcGF0aCwgIndiIikgaWYgbG9nX3BhdGggaXMg
bm90IE5vbmUgYW5kIGxvZ19wYXRoICE9ICIiIGVsc2UgTm9uZQorICAgICAgICBzZXJ2aWNlLlNl
cnZpY2UuX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZV9wYXRoLCBwb3J0LCBsb2dfZmlsZSkKKwor
ICAgIGRlZiBjb21tYW5kX2xpbmVfYXJncyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFsiLXAiLCAi
JWQiICUgc2VsZi5wb3J0XQorCisgICAgZGVmIHNlbmRfcmVtb3RlX3NodXRkb3duX2NvbW1hbmQo
c2VsZik6CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93cGV3ZWJraXQvd2ViZHJpdmVyLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dw
ZXdlYmtpdC93ZWJkcml2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk0OTA0N2ZjMDFjNDg5OTczNzQ1NmEx
MGM4NmFlNjRkMTY5YmI1YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93cGV3ZWJraXQvd2ViZHJpdmVyLnB5
CkBAIC0wLDAgKzEsNzIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29u
c2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBh
Z3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMg
d29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93
bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUg
QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBu
b3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNl
LiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDov
L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFT
IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJ
TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQor
IyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25z
CisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCit0cnk6CisgICAgaW1wb3J0IGh0dHAuY2xpZW50IGFz
IGh0dHBfY2xpZW50CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0IGh0dHBsaWIgYXMg
aHR0cF9jbGllbnQKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmRlc2lyZWRfY2Fw
YWJpbGl0aWVzIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5yZW1vdGUud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgUmVtb3RlV2ViRHJpdmVy
Citmcm9tIC5zZXJ2aWNlIGltcG9ydCBTZXJ2aWNlCisKKworY2xhc3MgV2ViRHJpdmVyKFJlbW90
ZVdlYkRyaXZlcik6CisgICAgIiIiCisgICAgQ29udHJvbHMgdGhlIFdQRVdlYktpdERyaXZlciBh
bmQgYWxsb3dzIHlvdSB0byBkcml2ZSB0aGUgYnJvd3Nlci4KKyAgICAiIiIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGg9IldQRVdlYkRyaXZlciIsIHBvcnQ9MCwgb3B0
aW9ucz1Ob25lLAorICAgICAgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1EZXNpcmVk
Q2FwYWJpbGl0aWVzLldQRVdFQktJVCwKKyAgICAgICAgICAgICAgICAgc2VydmljZV9sb2dfcGF0
aD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2Yg
dGhlIFdQRVdlYktpdCBkcml2ZXIuCisKKyAgICAgICAgU3RhcnRzIHRoZSBzZXJ2aWNlIGFuZCB0
aGVuIGNyZWF0ZXMgbmV3IGluc3RhbmNlIG9mIFdQRVdlYktpdCBEcml2ZXIuCisKKyAgICAgICAg
OkFyZ3M6CisgICAgICAgICAtIGV4ZWN1dGFibGVfcGF0aCA6IHBhdGggdG8gdGhlIGV4ZWN1dGFi
bGUuIElmIHRoZSBkZWZhdWx0IGlzIHVzZWQgaXQgYXNzdW1lcyB0aGUgZXhlY3V0YWJsZSBpcyBp
biB0aGUgJFBBVEguCisgICAgICAgICAtIHBvcnQgOiBwb3J0IHlvdSB3b3VsZCBsaWtlIHRoZSBz
ZXJ2aWNlIHRvIHJ1biwgaWYgbGVmdCBhcyAwLCBhIGZyZWUgcG9ydCB3aWxsIGJlIGZvdW5kLgor
ICAgICAgICAgLSBvcHRpb25zIDogYW4gaW5zdGFuY2Ugb2YgV1BFV2ViS2l0T3B0aW9ucworICAg
ICAgICAgLSBkZXNpcmVkX2NhcGFiaWxpdGllcyA6IERpY3Rpb25hcnkgb2JqZWN0IHdpdGggZGVz
aXJlZCBjYXBhYmlsaXRpZXMKKyAgICAgICAgIC0gc2VydmljZV9sb2dfcGF0aCA6IFBhdGggdG8g
d3JpdGUgc2VydmljZSBzdGRvdXQgYW5kIHN0ZGVyciBvdXRwdXQuCisgICAgICAgICIiIgorICAg
ICAgICBpZiBvcHRpb25zIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0g
b3B0aW9ucy50b19jYXBhYmlsaXRpZXMoKQorICAgICAgICAgICAgY2FwYWJpbGl0aWVzLnVwZGF0
ZShkZXNpcmVkX2NhcGFiaWxpdGllcykKKyAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVz
ID0gY2FwYWJpbGl0aWVzCisKKyAgICAgICAgc2VsZi5zZXJ2aWNlID0gU2VydmljZShleGVjdXRh
YmxlX3BhdGgsIHBvcnQ9cG9ydCwgbG9nX3BhdGg9c2VydmljZV9sb2dfcGF0aCkKKyAgICAgICAg
c2VsZi5zZXJ2aWNlLnN0YXJ0KCkKKworICAgICAgICBSZW1vdGVXZWJEcml2ZXIuX19pbml0X18o
CisgICAgICAgICAgICBzZWxmLAorICAgICAgICAgICAgY29tbWFuZF9leGVjdXRvcj1zZWxmLnNl
cnZpY2Uuc2VydmljZV91cmwsCisgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1kZXNp
cmVkX2NhcGFiaWxpdGllcykKKyAgICAgICAgc2VsZi5faXNfcmVtb3RlID0gRmFsc2UKKworICAg
IGRlZiBxdWl0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2xvc2VzIHRoZSBicm93c2Vy
IGFuZCBzaHV0cyBkb3duIHRoZSBXUEVXZWJLaXREcml2ZXIgZXhlY3V0YWJsZQorICAgICAgICB0
aGF0IGlzIHN0YXJ0ZWQgd2hlbiBzdGFydGluZyB0aGUgV1BFV2ViS2l0RHJpdmVyCisgICAgICAg
ICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBSZW1vdGVXZWJEcml2ZXIucXVpdChzZWxm
KQorICAgICAgICBleGNlcHQgaHR0cF9jbGllbnQuQmFkU3RhdHVzTGluZToKKyAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuc2VydmljZS5zdG9wKCkK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hbGVydHNfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWxlcnRz
X3Rlc3RzLnB5CmluZGV4IDkxMjIzNDdjMjk5NzgwNzQ2YjQzZDczMmZmZTA3N2Q3OTFmMDk2MWQu
LmJjNWJiZTA2MmRkYjc4NjZkNzkyZTc5YmE4MGVjOTI1MzY3YTBhZmMgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi9hbGVydHNfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FsZXJ0c190ZXN0cy5weQpA
QCAtMTQyLDYgKzE0MiwxMCBAQCBkZWYgdGVzdFNldHRpbmdUaGVWYWx1ZU9mQW5BbGVydFRocm93
cyhkcml2ZXIsIHBhZ2VzKToKICAgICBjb25kaXRpb249c3lzLnBsYXRmb3JtID09ICdkYXJ3aW4n
LAogICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9p
c3N1ZXMvZGV0YWlsP2lkPTI2JywKICAgICBydW49RmFsc2UpCitAcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21pdW1lZGdlKAorICAgIGNvbmRpdGlvbj1zeXMucGxhdGZvcm0gPT0gJ2RhcndpbicsCisg
ICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vl
cy9kZXRhaWw/aWQ9MjYnLAorICAgIHJ1bj1GYWxzZSkKIGRlZiB0ZXN0QWxlcnRTaG91bGROb3RB
bGxvd0FkZGl0aW9uYWxDb21tYW5kc0lmRGltaXNzZWQoZHJpdmVyLCBwYWdlcyk6CiAgICAgcGFn
ZXMubG9hZCgiYWxlcnRzLmh0bWwiKQogICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJh
bGVydCIpLmNsaWNrKCkKQEAgLTE1NCw2ICsxNTgsNyBAQCBkZWYgdGVzdEFsZXJ0U2hvdWxkTm90
QWxsb3dBZGRpdGlvbmFsQ29tbWFuZHNJZkRpbWlzc2VkKGRyaXZlciwgcGFnZXMpOgogCiAKIEBw
eXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJlYXNvbj0nRmFpbHMgb24gdHJhdmlzJykKK0Bw
eXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmVhc29uPSdGYWlscyBvbiB0cmF2aXMnKQogZGVmIHRl
c3RTaG91bGRBbGxvd1VzZXJzVG9BY2NlcHRBbkFsZXJ0SW5BRnJhbWUoZHJpdmVyLCBwYWdlcyk6
CiAgICAgcGFnZXMubG9hZCgiYWxlcnRzLmh0bWwiKQogICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJh
bWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiaWZyYW1lV2l0aEFsZXJ0IikpCkBAIC0x
NjYsNiArMTcxLDcgQEAgZGVmIHRlc3RTaG91bGRBbGxvd1VzZXJzVG9BY2NlcHRBbkFsZXJ0SW5B
RnJhbWUoZHJpdmVyLCBwYWdlcyk6CiAKIAogQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUo
cmVhc29uPSdGYWlscyBvbiB0cmF2aXMnKQorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyZWFz
b249J0ZhaWxzIG9uIHRyYXZpcycpCiBkZWYgdGVzdFNob3VsZEFsbG93VXNlcnNUb0FjY2VwdEFu
QWxlcnRJbkFOZXN0ZWRGcmFtZShkcml2ZXIsIHBhZ2VzKToKICAgICBwYWdlcy5sb2FkKCJhbGVy
dHMuaHRtbCIpCiAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50
KEJ5Lk5BTUUsICJpZnJhbWVXaXRoSWZyYW1lIikpCkBAIC0yNDAsMzQgKzI0NiwxNyBAQCBkZWYg
dGVzdFNob3VsZEhhbmRsZUFsZXJ0T25QYWdlTG9hZFVzaW5nR2V0KGRyaXZlciwgcGFnZXMpOgog
ICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50ZXh0X3RvX2JlX3ByZXNlbnRf
aW5fZWxlbWVudCgoQnkuVEFHX05BTUUsICJwIiksICJQYWdlIHdpdGggb25sb2FkIGV2ZW50IGhh
bmRsZXIiKSkKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyZWFzb249J05vbiBXM0Mg
Y29uZm9ybWFudCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJlYXNvbj0nTm9uIFczQyBj
b25mb3JtYW50JykKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmVhc29uPSdOb24g
VzNDIGNvbmZvcm1hbnQnKQogZGVmIHRlc3RTaG91bGRIYW5kbGVBbGVydE9uUGFnZUJlZm9yZVVu
bG9hZChkcml2ZXIsIHBhZ2VzKToKICAgICBwYWdlcy5sb2FkKCJwYWdlV2l0aE9uQmVmb3JlVW5s
b2FkTWVzc2FnZS5odG1sIikKIAogICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LklELCAibmF2aWdhdGUiKQogICAgIGVsZW1lbnQuY2xpY2soKQotCi0gICAgYWxlcnQgPSBfd2Fp
dEZvckFsZXJ0KGRyaXZlcikKLSAgICBhbGVydC5kaXNtaXNzKCkKLSAgICBhc3NlcnQgInBhZ2VX
aXRoT25CZWZvcmVVbmxvYWRNZXNzYWdlLmh0bWwiIGluIGRyaXZlci5jdXJyZW50X3VybAotCi0g
ICAgZWxlbWVudC5jbGljaygpCi0gICAgYWxlcnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKLSAg
ICBhbGVydC5hY2NlcHQoKQogICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50
aXRsZV9pcygiVGVzdGluZyBBbGVydHMiKSkKIAogCi1kZWYgX3Rlc3RTaG91bGRIYW5kbGVBbGVy
dE9uUGFnZUJlZm9yZVVubG9hZEF0UXVpdChkcml2ZXIsIHBhZ2VzKToKLSAgICAjIFRPRE86IEFk
ZCB0aGUgYWJpbGl0eSB0byBnZXQgYSBuZXcgc2Vzc2lvbgotICAgIHBhZ2VzLmxvYWQoInBhZ2VX
aXRoT25CZWZvcmVVbmxvYWRNZXNzYWdlLmh0bWwiKQotCi0gICAgZWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuSUQsICJuYXZpZ2F0ZSIpCi0gICAgZWxlbWVudC5jbGljaygpCi0KLSAg
ICBfd2FpdEZvckFsZXJ0KGRyaXZlcikKLQotICAgIGRyaXZlci5xdWl0KCkKLQotCiBkZWYgdGVz
dFNob3VsZEFsbG93VGhlVXNlclRvR2V0VGhlVGV4dE9mQW5BbGVydChkcml2ZXIsIHBhZ2VzKToK
ICAgICBwYWdlcy5sb2FkKCJhbGVydHMuaHRtbCIpCiAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9ImFsZXJ0IikuY2xpY2soKQpAQCAtMjk5LDEwICsyODgsMTAgQEAgZGVm
IHRlc3RBbGVydFNob3VsZE5vdEFsbG93QWRkaXRpb25hbENvbW1hbmRzSWZEaXNtaXNzZWQoZHJp
dmVyLCBwYWdlcyk6CiAgICAgICAgIGFsZXJ0LnRleHQKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21lKAotICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRy
aXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MzcnKQogQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0
dGUoCiAgICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc5MjExJykKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUoCisgICAgcmVhc29uPSdo
dHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc5MjExJykKIGRl
ZiB0ZXN0VW5leHBlY3RlZEFsZXJ0UHJlc2VudEV4Y2VwdGlvbkNvbnRhaW5zQWxlcnRUZXh0KGRy
aXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKICAgICBkcml2ZXIu
ZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iYWxlcnQiKS5jbGljaygpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vYXBpX2V4YW1wbGVfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYXBpX2V4YW1wbGVf
dGVzdHMucHkKaW5kZXggNDc4YjRkNDU3ZTNiYjAyOTQ0MjAwMjY0MWNjN2Y4ZDZmMmY2MGFiYi4u
ZGJjOThiMTA0NzA3Mjg4ZmZhOWQ2ZWU0OGVlMGZjM2EzMWNkY2Q5ZSAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hcGlfZXhhbXBsZV90
ZXN0cy5weQpAQCAtMjg1LDE1ICsyODUsMTUgQEAgZGVmIHRlc3RDaGFuZ2VXaW5kb3dTaXplKGRy
aXZlciwgcGFnZXMpOgogICAgIGFzc2VydCBzaXplWydoZWlnaHQnXSA9PSBuZXdTaXplWzFdCiAK
IAotQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUoCi0gICAgcmFpc2VzPVdlYkRyaXZlckV4
Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJhaXNlcz1XZWJEcml2ZXJF
eGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCiBkZWYgdGVzdEdldExvZ1R5cGVz
KGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQoImJsYW5rLmh0bWwiKQogICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGRyaXZlci5sb2dfdHlwZXMsIGxpc3QpCiAKIAotQHB5dGVzdC5tYXJrLnhm
YWlsX21hcmlvbmV0dGUoCi0gICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3Qu
bWFyay54ZmFpbF9tYXJpb25ldHRlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0
Lm1hcmsueGZhaWxfcmVtb3RlCiBkZWYgdGVzdEdldExvZyhkcml2ZXIsIHBhZ2VzKToKICAgICBw
YWdlcy5sb2FkKCJibGFuay5odG1sIikKICAgICBmb3IgbG9nX3R5cGUgaW4gZHJpdmVyLmxvZ190
eXBlczoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hcHBjYWNoZV90ZXN0cy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9hcHBjYWNoZV90ZXN0cy5weQppbmRleCA5NDZhMzNiNmQwNjAyMWE2YTMwZmNkNDQ4ZmU3Zjg2
ZTNlMDgwMmNhLi4zM2YxNDdjYjY3ZTc4ZTY1ZDVkNGE0ZDZhMzAxNTFlM2Q5ZDQxMWJiIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vYXBwY2FjaGVfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FwcGNh
Y2hlX3Rlc3RzLnB5CkBAIC0yMiw2ICsyMiw3IEBAIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNv
bW1vbi5odG1sNS5hcHBsaWNhdGlvbl9jYWNoZSBpbXBvcnQgQXBwbGljYXRpb25DYWNoZQogCiAK
IEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVk
Z2UKIEBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRp
b24pCiBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCiBkZWYgdGVzdFdlQ2FuR2V0VGhlU3RhdHVz
T2ZUaGVBcHBDYWNoZShkcml2ZXIsIHBhZ2VzKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlj
a19zY3JvbGxpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY2xpY2tfc2Nyb2xsaW5nX3Rlc3RzLnB5
CmluZGV4IDcyOWMwNzQ4NThhYTYwZDI1NzdmNzBiNGFiMDU4NGEwYjdlODQ1NTIuLjliYzcxYThh
NTZiZWYyYzMyOTk0YjQyYWJiMzg4ZTVmNGI3ODJjNDMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9j
bGlja19zY3JvbGxpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190
ZXN0cy5weQpAQCAtODUsMTQgKzg1LDExIEBAIGRlZiB0ZXN0U2hvdWxkTm90U2Nyb2xsT3ZlcmZs
b3dFbGVtZW50c1doaWNoQXJlVmlzaWJsZShkcml2ZXIsIHBhZ2VzKToKICAgICBhc3NlcnQgMCA9
PSB5T2Zmc2V0LCAiU2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIgogCiAKLUBweXRlc3QubWFyay54
ZmFpbF9jaHJvbWUoCi0gICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hy
b21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTU0MicpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfbWFy
aW9uZXR0ZQogZGVmIHRlc3RTaG91bGROb3RTY3JvbGxJZkFscmVhZHlTY3JvbGxlZEFuZEVsZW1l
bnRJc0luVmlldyhkcml2ZXIsIHBhZ2VzKToKICAgICBwYWdlcy5sb2FkKCJzY3JvbGwzLmh0bWwi
KQotICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJidXR0b24xIikuY2xpY2soKQotICAg
IHNjcm9sbFRvcCA9IGdldFNjcm9sbFRvcChkcml2ZXIpCiAgICAgZHJpdmVyLmZpbmRfZWxlbWVu
dChCeS5JRCwgImJ1dHRvbjIiKS5jbGljaygpCisgICAgc2Nyb2xsVG9wID0gZ2V0U2Nyb2xsVG9w
KGRyaXZlcikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYnV0dG9uMSIpLmNsaWNr
KCkKICAgICBhc3NlcnQgc2Nyb2xsVG9wID09IGdldFNjcm9sbFRvcChkcml2ZXIpCiAKIApAQCAt
MTEwLDYgKzEwNyw4IEBAIGRlZiB0ZXN0U2hvdWxkU2Nyb2xsT3ZlcmZsb3dFbGVtZW50c0lmQ2xp
Y2tQb2ludElzT3V0T2ZWaWV3QnV0RWxlbWVudElzSW5WaWV3KGRyCiAKIEBweXRlc3QubWFyay54
ZmFpbF9tYXJpb25ldHRlKAogICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJk
cml2ZXIvaXNzdWVzLzQwOCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKAorICAgIHJlYXNv
bj0naHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCiBkZWYgdGVz
dFNob3VsZEJlQWJsZVRvQ2xpY2tFbGVtZW50SW5BRnJhbWVUaGF0SXNPdXRPZlZpZXcoZHJpdmVy
LCBwYWdlcyk6CiAgICAgcGFnZXMubG9hZCgic2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9mcmFt
ZV9vdXRfb2Zfdmlldy5odG1sIikKICAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfbmFtZSgiZnJhbWUiKSkKQEAgLTE3Myw2ICsxNzIsOCBAQCBkZWYgZ2V0
U2Nyb2xsVG9wKGRyaXZlcik6CiAKIEBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAogICAg
IHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCitA
cHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCiBkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tF
bGVtZW50SW5BVGFsbEZyYW1lKGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQoInNjcm9s
bGluZ190ZXN0cy9wYWdlX3dpdGhfdGFsbF9mcmFtZS5odG1sIikKICAgICBkcml2ZXIuc3dpdGNo
X3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgidGFsbF9mcmFtZSIpKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL2Nvb2tpZV90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jb29raWVfdGVz
dHMucHkKaW5kZXggYWUwODBmNTEwODBlMWYxMWEyZDgzYmQzZmZlOGEwMWUwYmUwNzQ1MC4uYTFj
MDk3MGZlN2FiYTNlOGI0ZDljMzUxOTQ5ZWY5MTRkZmIxZjMyYSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2Nvb2tpZV90ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY29va2llX3Rlc3RzLnB5CkBAIC03
Myw2ICs3MywxMiBAQCBkZWYgdGVzdFNob3VsZEdldENvb2tpZUJ5TmFtZShkcml2ZXIpOgogICAg
IGFzc2VydCAnc2V0JyA9PSBjb29raWVbJ3ZhbHVlJ10KIAogCitkZWYgdGVzdFNob3VsZFJldHVy
bk5vbmVXaGVuQ29va2llRG9lc05vdEV4aXN0KGRyaXZlcik6CisgICAga2V5ID0gJ2tleV97fScu
Zm9ybWF0KGludChyYW5kb20ucmFuZG9tKCkgKiAxMDAwMDAwMCkpCisgICAgY29va2llID0gZHJp
dmVyLmdldF9jb29raWUoa2V5KQorICAgIGFzc2VydCBjb29raWUgaXMgTm9uZQorCisKIGRlZiB0
ZXN0R2V0QWxsQ29va2llcyhjb29raWUsIGRyaXZlciwgcGFnZXMsIHdlYnNlcnZlcik6CiAgICAg
Y29va2llcyA9IGRyaXZlci5nZXRfY29va2llcygpCiAgICAgY291bnQgPSBsZW4oY29va2llcykK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jb3JyZWN0X2V2ZW50X2ZpcmluZ190ZXN0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi9jb3JyZWN0X2V2ZW50X2ZpcmluZ190ZXN0cy5weQppbmRleCBlMDNhNDM5YzFlMTNh
MDZhNzU5MzYwMjk0NDBiYmRkMmJmNjBkY2ZlLi4xYTZhZjM3OGEzMzQ2MWU2NGMwOWI5MjM4NzVm
OTU4ODlmY2M2MTViIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY29ycmVjdF9ldmVudF9maXJpbmdf
dGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NvcnJlY3RfZXZlbnRfZmlyaW5nX3Rlc3RzLnB5CkBA
IC0xNSw4ICsxNSw2IEBACiAjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u
cyBhbmQgbGltaXRhdGlvbnMKICMgdW5kZXIgdGhlIExpY2Vuc2UuCiAKLWltcG9ydCBweXRlc3QK
LQogCiBkZWYgdGVzdFNob3VsZEZpcmVDbGlja0V2ZW50V2hlbkNsaWNraW5nKGRyaXZlciwgcGFn
ZXMpOgogICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQpAQCAtOTEsNyArODks
NiBAQCBkZWYgdGVzdFNob3VsZEVtaXRDbGlja0V2ZW50V2hlbkNsaWNraW5nT25BVGV4dElucHV0
RWxlbWVudChkcml2ZXIsIHBhZ2VzKToKICAgICBhc3NlcnQgY2xpY2tlci5nZXRfYXR0cmlidXRl
KCJ2YWx1ZSIpID09ICJDbGlja2VkIgogCiAKLUBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRl
KHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQz
MDU3MScpCiBkZWYgdGVzdENsZWFyaW5nQW5FbGVtZW50U2hvdWxkQ2F1c2VUaGVPbkNoYW5nZUhh
bmRsZXJUb0ZpcmUoZHJpdmVyLCBwYWdlcyk6CiAgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBh
Z2UuaHRtbCIpCiAgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNsZWFy
TWUiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2ZpbmRpbmdfdGVzdHMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vZHJpdmVyX2VsZW1lbnRfZmluZGluZ190ZXN0cy5weQppbmRleCBhMTQw
MmY5ZTI5ZmQ1NzE2NWM5YzgxMDExNDgzNjE4MzRhNmYxYjAxLi43YjAyODgxZjAxN2YyOWYxM2Nm
NmY0MTE5MzFmNDIxMDRlY2ZlY2Y0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZHJpdmVyX2VsZW1l
bnRfZmluZGluZ190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZHJpdmVyX2VsZW1lbnRfZmluZGlu
Z190ZXN0cy5weQpAQCAtMzM3LDYgKzMzNyw3IEBAIGRlZiB0ZXN0X0ZpbmRpbmdfQUxpbmtfQnlf
WHBhdGhfVXNpbmdfQ29udGFpbnNfS2V5d29yZF9TaG91bGRfV29yayhkcml2ZXIsIHBhZ2VzCiAK
IAogQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0
aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZShyYWlzZXM9SW52YWxpZFNlbGVj
dG9yRXhjZXB0aW9uKQogQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPUludmFsaWRT
ZWxlY3RvckV4Y2VwdGlvbikKIEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPUludmFs
aWRTZWxlY3RvckV4Y2VwdGlvbikKIEBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJhaXNl
cz1XZWJEcml2ZXJFeGNlcHRpb24pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZWxlbWVudF9hdHRy
aWJ1dGVfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZWxlbWVudF9hdHRyaWJ1dGVfdGVzdHMucHkKaW5k
ZXggYmM2ZGQ4YWI4ZTlhMDIwZTQwZWM4YmYxNmEwNTM4MGM0YTA3MjMwMy4uMTQ1YzJjOTg0NjA0
MmMwN2MwMDFhZTRjNDJkOWI3OTA5NzdkMmViOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2VsZW1l
bnRfYXR0cmlidXRlX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9lbGVtZW50X2F0dHJpYnV0ZV90
ZXN0cy5weQpAQCAtNjUsMTQgKzY1LDE0IEBAIGRlZiB0ZXN0U2hvdWxkUmV0dXJuVGhlVmFsdWVP
ZlRoZURpc2FibGVkQXR0cmlidXRlQXNGYWxzZUlmTm90U2V0KGRyaXZlciwgcGFnZXMpCiAgICAg
YXNzZXJ0IHBFbGVtZW50LmlzX2VuYWJsZWQoKQogCiAKLWRlZiB0ZXN0U2hvdWxkUmV0dXJuVGhl
VmFsdWVPZlRoZUluZGV4QXR0cmJ1dGVFdmVuSWZJdElzTWlzc2luZyhkcml2ZXIsIHBhZ2VzKToK
K2RlZiB0ZXN0U2hvdWxkUmV0dXJuVGhlVmFsdWVPZlRoZUluZGV4QXR0cmlidXRlRXZlbklmSXRJ
c01pc3NpbmcoZHJpdmVyLCBwYWdlcyk6CiAgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIp
CiAgICAgbXVsdGlTZWxlY3QgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJtdWx0aSIpCiAg
ICAgb3B0aW9ucyA9IG11bHRpU2VsZWN0LmZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoIm9wdGlv
biIpCiAgICAgYXNzZXJ0ICIxIiA9PSBvcHRpb25zWzFdLmdldF9hdHRyaWJ1dGUoImluZGV4IikK
IAogCi1kZWYgdGVzdFNob3VsZEluZGljYXRlVGhlRWxlbWVudHNUaGF0QXJlRGlzYWJsZWRBcmVO
b3Rpc19lbmFibGVkKGRyaXZlciwgcGFnZXMpOgorZGVmIHRlc3RTaG91bGRJbmRpY2F0ZVRoZUVs
ZW1lbnRzVGhhdEFyZURpc2FibGVkQXJlTm90SXNfZW5hYmxlZChkcml2ZXIsIHBhZ2VzKToKICAg
ICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKICAgICBpbnB1dEVsZW1lbnQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL2lucHV0W0BpZD0nbm90V29ya2luZyddIikKICAgICBh
c3NlcnQgbm90IGlucHV0RWxlbWVudC5pc19lbmFibGVkKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9leGVjdXRpbmdfYXN5bmNfamF2YXNjcmlwdF90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9leGVjdXRp
bmdfYXN5bmNfamF2YXNjcmlwdF90ZXN0cy5weQppbmRleCAxZGIyMDZjNTI1Mzk4YmU0YzAxMGMw
MWFhMmQyNDRhMmY2ZjVlY2NhLi42MWQyZTFmNWUxYWI4Mjk0ZDg2NzZjNDcxNGM0NjJjZTMxZTEy
MjZiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZXhlY3V0aW5nX2FzeW5jX2phdmFzY3JpcHRfdGVz
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2V4ZWN1dGluZ19hc3luY19qYXZhc2NyaXB0X3Rlc3RzLnB5
CkBAIC0yNSw3ICsyNSw3IEBAIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJlbGVt
ZW50IGltcG9ydCBXZWJFbGVtZW50CiAKIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCiBk
ZWYgcmVzZXRfdGltZW91dHMoZHJpdmVyKToKLSAgICBkcml2ZXIuc2V0X3NjcmlwdF90aW1lb3V0
KDApCisgICAgZHJpdmVyLnNldF9zY3JpcHRfdGltZW91dCg1KQogICAgIHlpZWxkCiAgICAgZHJp
dmVyLnNldF9zY3JpcHRfdGltZW91dCgzMCkKIApAQCAtMTIwLDcgKzEyMCw2IEBAIGRlZiB0ZXN0
U2hvdWxkVGltZW91dElmU2NyaXB0RG9lc05vdEludm9rZUNhbGxiYWNrV2l0aEFaZXJvVGltZW91
dChkcml2ZXIsIHBhZ2VzCiAgICAgICAgIGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgid2lu
ZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7fSwgMCk7IikKIAogCi1AcHl0ZXN0Lm1hcmsueGZh
aWxfbWFyaW9uZXR0ZQogZGVmIHRlc3RTaG91bGROb3RUaW1lb3V0SWZTY3JpcHRDYWxsc2JhY2tJ
bnNpZGVBWmVyb1RpbWVvdXQoZHJpdmVyLCBwYWdlcyk6CiAgICAgcGFnZXMubG9hZCgiYWpheHlf
cGFnZS5odG1sIikKICAgICBkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQoCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vZm9ybV9oYW5kbGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mb3JtX2hhbmRs
aW5nX3Rlc3RzLnB5CmluZGV4IGRlZWFjYjljMzk3MTk2ZDk0NTk4YmNmMDVkODY3NGY5YzRhNTlk
OTIuLjBmNTcwOWM0MzliODk2MjkxZGFlNGZiYmI1YmJiMGVlZWM4ZGRkOTYgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9mb3JtX2hhbmRsaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mb3JtX2hh
bmRsaW5nX3Rlc3RzLnB5CkBAIC01Miw3ICs1Miw3IEBAIGRlZiB0ZXN0U2hvdWxkU3VibWl0QUZv
cm1XaGVuQW55SW5wdXRFbGVtZW50V2l0aGluVGhhdEZvcm1Jc1N1Ym1pdHRlZChkcml2ZXIsIHBh
CiAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJp
dmUgSGVyZSIpKQogCiAKLWRlZiB0ZXN0U2hvdWxkU3VibWl0QUZvcm1XaGVuQW55RWxlbWVudFdp
aGluVGhhdEZvcm1Jc1N1Ym1pdHRlZChkcml2ZXIsIHBhZ2VzKToKK2RlZiB0ZXN0U2hvdWxkU3Vi
bWl0QUZvcm1XaGVuQW55RWxlbWVudFdpdGhpblRoYXRGb3JtSXNTdWJtaXR0ZWQoZHJpdmVyLCBw
YWdlcyk6CiAgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCiAgICAgZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV94cGF0aCgiLy9mb3JtL3AiKS5zdWJtaXQoKQogICAgIFdlYkRyaXZlcldhaXQo
ZHJpdmVyLCA1KS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZlIEhlcmUiKSkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZnJhbWVf
c3dpdGNoaW5nX3Rlc3RzLnB5CmluZGV4IGFkMTI1NjQ3NWUzOTAyN2M0MTk3M2YxMGI5NjA2OWNl
ZjJlNDA1MGQuLmI3ZWU1YTg3NzA0NGFhYzBlNGRiYmM4ZDQxMzBlY2RjZTVlMTgxMWMgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L2ZyYW1lX3N3aXRjaGluZ190ZXN0cy5weQpAQCAtMjEyLDcgKzIxMiw2IEBAIGRlZiB0ZXN0U2hv
dWxkQmVBYmxlVG9Td2l0Y2hUb1BhcmVudEZyb21BbklmcmFtZShkcml2ZXIsIHBhZ2VzKToKICMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAKLUBweXRlc3QubWFyay54
ZmFpbF9jaHJvbWUocmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJp
dmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MjE5OCcpCiBkZWYgdGVzdFNob3VsZENvbnRpbnVlVG9SZWZl
clRvVGhlU2FtZUZyYW1lT25jZUl0SGFzQmVlblNlbGVjdGVkKGRyaXZlciwgcGFnZXMpOgogICAg
IHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQogICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUo
MikKQEAgLTIyOCw2ICsyMjcsOCBAQCBkZWYgdGVzdFNob3VsZENvbnRpbnVlVG9SZWZlclRvVGhl
U2FtZUZyYW1lT25jZUl0SGFzQmVlblNlbGVjdGVkKGRyaXZlciwgcGFnZXMpOgogCiBAcHl0ZXN0
Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxs
YS9nZWNrb2RyaXZlci9pc3N1ZXMvNjEwJykKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFp
c2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29u
PSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjEwJykKIGRl
ZiB0ZXN0U2hvdWxkRm9jdXNPblRoZVJlcGxhY2VtZW50V2hlbkFGcmFtZUZvbGxvd3NBTGlua1Rv
QV9Ub3BUYXJnZXRlZFBhZ2UoZHJpdmVyLCBwYWdlcyk6CiAgICAgcGFnZXMubG9hZCgiZnJhbWVz
ZXQuaHRtbCIpCiAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgwKQpAQCAtMjQ2LDcgKzI0Nyw2
IEBAIGRlZiB0ZXN0U2hvdWxkQWxsb3dBVXNlclRvU3dpdGNoRnJvbUFuSWZyYW1lQmFja1RvVGhl
TWFpbkNvbnRlbnRPZlRoZVBhZ2UoZHJpdmVyCiAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5J
RCwgImlmcmFtZV9wYWdlX2hlYWRpbmciKQogCiAKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUo
cmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9k
ZXRhaWw/aWQ9MjE5OCcpCiBkZWYgdGVzdFNob3VsZEFsbG93VGhlVXNlclRvU3dpdGNoVG9BbklG
cmFtZUFuZFJlbWFpbkZvY3VzZWRPbkl0KGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQo
ImlmcmFtZXMuaHRtbCIpCiAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgwKQpAQCAtMjU4LDcg
KzI1OCw2IEBAIGRlZiBnZXRUZXh0T2ZHcmVldGluZ0VsZW1lbnQoZHJpdmVyKToKICAgICByZXR1
cm4gV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnByZXNlbmNlX29mX2VsZW1lbnRf
bG9jYXRlZCgoQnkuSUQsICJncmVldGluZyIpKSkudGV4dAogCiAKLUBweXRlc3QubWFyay54ZmFp
bF9jaHJvbWUocmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVy
L2lzc3Vlcy9kZXRhaWw/aWQ9MjE5OCcpCiBkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tJbkFG
cmFtZShkcml2ZXIsIHBhZ2VzKToKICAgICBwYWdlcy5sb2FkKCJmcmFtZXNldC5odG1sIikKICAg
ICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKCJ0aGlyZCIpCkBAIC0yODEsNyArMjgwLDYgQEAgZGVm
IHRlc3RTaG91bGRCZUFibGVUb0NsaWNrSW5BRnJhbWVUaGF0UmV3cml0ZXNUb3BXaW5kb3dMb2Nh
dGlvbihkcml2ZXIsIHBhZ2VzKToKICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwo
RUMudGl0bGVfaXMoIlRhcmdldCBwYWdlIGZvciBpc3N1ZSA1MjM3IikpCiAKIAotQHB5dGVzdC5t
YXJrLnhmYWlsX2Nocm9tZShyZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJv
bWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMTk4JykKIGRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9D
bGlja0luQVN1YkZyYW1lKGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0
Lmh0bWwiKQogICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9pZCgic2l4dGgiKSkKQEAgLTM2OSw4ICszNjcsMTEgQEAgZGVmIHRlc3RTaG91bGRCZUFibGVU
b1N3aXRjaFRvVGhlVG9wSWZUaGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVzV2l0aFdlYmVsZW1l
bnQKIAogCiBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhj
ZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZShyYWlzZXM9Tm9TdWNoRWxl
bWVudEV4Y2VwdGlvbikKIEBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJhaXNlcz1XZWJE
cml2ZXJFeGNlcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J2h0
dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vlcy82MTQnKQorQHB5dGVz
dC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tv
ZHJpdmVyL2lzc3Vlcy82MTQnKQogQHB5dGVzdC5tYXJrLnhmYWlsX3dlYmtpdGd0ayhyYWlzZXM9
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKIGRlZiB0ZXN0U2hvdWxkTm90QmVBYmxlVG9Eb0FueXRo
aW5nVGhlRnJhbWVJc0RlbGV0ZWRGcm9tVW5kZXJVcyhkcml2ZXIsIHBhZ2VzKToKICAgICBwYWdl
cy5sb2FkKCJmcmFtZV9zd2l0Y2hpbmdfdGVzdHMvZGVsZXRpbmdGcmFtZS5odG1sIikKQEAgLTM5
Niw3ICszOTcsNyBAQCBkZWYgdGVzdEphdmFTY3JpcHRTaG91bGRFeGVjdXRlSW5UaGVDb250ZXh0
T2ZUaGVDdXJyZW50RnJhbWUoZHJpdmVyLCBwYWdlcyk6CiAgICAgYXNzZXJ0IGRyaXZlci5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvdyAhPSB3aW5kb3cudG9wIikKIAogCi1AcHl0ZXN0Lm1h
cmsueGZhaWxfY2hyb21lKHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9t
ZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTIxOTgnKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9t
ZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCiBkZWYgdGVzdFNob3VsZE5vdFN3aXRjaE1hZ2lj
YWxseVRvVGhlVG9wV2luZG93KGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQoImZyYW1l
X3N3aXRjaGluZ190ZXN0cy9idWc0ODc2Lmh0bWwiKQogICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJh
bWUoMCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9pbnRlcmFjdGlvbnNfdGVzdHMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vaW50ZXJhY3Rpb25zX3Rlc3RzLnB5CmluZGV4IDQ5ZmZiZjdjNTQ2MzVlMjcwNmIwNDFl
YTAyNjQ0N2EwZDM4ZDUxNTYuLmUwZDMxZDUzM2VmODYzMjBiNTExMjk3NjAxODNhZDQwZDA4YjFl
ODggMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9pbnRlcmFjdGlvbnNfdGVzdHMucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL2ludGVyYWN0aW9uc190ZXN0cy5weQpAQCAtMTQzLDEwICsxNDMsNyBAQCBkZWYgdGVz
dENhbm5vdE1vdmVUb0FOdWxsTG9jYXRvcihkcml2ZXIsIHBhZ2VzKToKICAgICAgICAgbW92ZS5w
ZXJmb3JtKCkKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKLSAgICByZWFzb249
J2h0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTIxNzgnKQog
QHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUKIGRl
ZiB0ZXN0Q2xpY2tpbmdPbkZvcm1FbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKICAgICAiIiJDb3Bp
ZWQgZnJvbSBvcmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5Db21iaW5lZElucHV0QWN0
aW9uc1Rlc3QuIiIiCiAgICAgcGFnZXMubG9hZCgiZm9ybVNlbGVjdGlvblBhZ2UuaHRtbCIpCkBA
IC0xNTQsNyArMTUxLDYgQEAgZGVmIHRlc3RDbGlja2luZ09uRm9ybUVsZW1lbnRzKGRyaXZlciwg
cGFnZXMpOgogICAgIHNlbGVjdFRocmVlT3B0aW9ucyA9IEFjdGlvbkNoYWlucyhkcml2ZXIpIFwK
ICAgICAgICAgLmNsaWNrKG9wdGlvbnNbMV0pIFwKICAgICAgICAgLmtleV9kb3duKEtleXMuU0hJ
RlQpIFwKLSAgICAgICAgLmNsaWNrKG9wdGlvbnNbMl0pIFwKICAgICAgICAgLmNsaWNrKG9wdGlv
bnNbM10pIFwKICAgICAgICAgLmtleV91cChLZXlzLlNISUZUKQogICAgIHNlbGVjdFRocmVlT3B0
aW9ucy5wZXJmb3JtKCkKQEAgLTE2Niw4ICsxNjIsNiBAQCBkZWYgdGVzdENsaWNraW5nT25Gb3Jt
RWxlbWVudHMoZHJpdmVyLCBwYWdlcyk6CiAgICAgYXNzZXJ0ICJyb3F1ZWZvcnQgcGFybWlnaWFu
byBjaGVkZGFyIiA9PSByZXN1bHRFbGVtZW50LnRleHQKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxf
bWFyaW9uZXR0ZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hv
d19idWcuY2dpP2lkPTEyOTIxNzgnKQogZGVmIHRlc3RTZWxlY3RpbmdNdWx0aXBsZUl0ZW1zKGRy
aXZlciwgcGFnZXMpOgogICAgICIiIkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2VsZW5pdW0uaW50
ZXJhY3Rpb25zLkNvbWJpbmVkSW5wdXRBY3Rpb25zVGVzdC4iIiIKICAgICBwYWdlcy5sb2FkKCJz
ZWxlY3RhYmxlSXRlbXMuaHRtbCIpCkBAIC0xOTEsOCArMTg1LDYgQEAgZGVmIHRlc3RTZWxlY3Rp
bmdNdWx0aXBsZUl0ZW1zKGRyaXZlciwgcGFnZXMpOgogICAgIGFzc2VydCAiI2l0ZW03IiA9PSBy
ZXBvcnRpbmdFbGVtZW50LnRleHQKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgK
LSAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vl
cy82NDYnKQogZGVmIHRlc3RTZW5kaW5nS2V5c1RvQWN0aXZlRWxlbWVudFdpdGhNb2RpZmllcihk
cml2ZXIsIHBhZ2VzKToKICAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKICAgICBlID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgid29ya2luZyIpCkBAIC0yMDcsOCArMTk5LDQzIEBA
IGRlZiB0ZXN0U2VuZGluZ0tleXNUb0FjdGl2ZUVsZW1lbnRXaXRoTW9kaWZpZXIoZHJpdmVyLCBw
YWdlcyk6CiAgICAgYXNzZXJ0ICJBQkMiID09IGUuZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKQogCiAK
K2RlZiB0ZXN0U2VuZGluZ0tleXNUb0VsZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
IndvcmtpbmciKQorCisgICAgQWN0aW9uQ2hhaW5zKGRyaXZlcikuc2VuZF9rZXlzX3RvX2VsZW1l
bnQoZSwgJ2FiYycpLnBlcmZvcm0oKQorCisgICAgYXNzZXJ0ICJhYmMiID09IGUuZ2V0X2F0dHJp
YnV0ZSgndmFsdWUnKQorCisKK2RlZiB0ZXN0Q2FuU2VuZEtleXNCZXR3ZWVuQ2xpY2tzKGRyaXZl
ciwgcGFnZXMpOgorICAgICIiIgorICAgIEZvciBXM0MsIGVuc3VyZXMgdGhhdCB0aGUgY29ycmVj
dCBudW1iZXIgb2YgcGF1c2VzIGFyZSBnaXZlbiB0byB0aGUgb3RoZXIKKyAgICBpbnB1dCBkZXZp
Y2UuCisgICAgIiIiCisgICAgcGFnZXMubG9hZCgnamF2YXNjcmlwdFBhZ2UuaHRtbCcpCisgICAg
a2V5dXAgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJrZXlVcCIpCisgICAga2V5ZG93biA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImtleURvd24iKQorICAgIEFjdGlvbkNoYWlucyhk
cml2ZXIpLmNsaWNrKGtleXVwKS5zZW5kX2tleXMoJ2Zvb2JhcicpLmNsaWNrKGtleWRvd24pLnBl
cmZvcm0oKQorCisgICAgYXNzZXJ0ICdmb29iYXInID09IGtleXVwLmdldF9hdHRyaWJ1dGUoJ3Zh
bHVlJykKKworCiBkZWYgdGVzdF9jYW5fcmVzZXRfaW50ZXJhY3Rpb25zKGRyaXZlciwgcGFnZXMp
OgotICAgIEFjdGlvbkNoYWlucyhkcml2ZXIpLnJlc2V0X2FjdGlvbnMoKQorICAgIGFjdGlvbnMg
PSBBY3Rpb25DaGFpbnMoZHJpdmVyKQorICAgIGFjdGlvbnMuY2xpY2soKQorICAgIGFjdGlvbnMu
a2V5X2Rvd24oJ0EnKQorICAgIGlmIGRyaXZlci53M2M6CisgICAgICAgIGFzc2VydCBhbGwoKGxl
bihkZXZpY2UuYWN0aW9ucykgPiAwIGZvciBkZXZpY2UgaW4gYWN0aW9ucy53M2NfYWN0aW9ucy5k
ZXZpY2VzKSkKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgbGVuKGFjdGlvbnMuX2FjdGlvbnMp
ID4gMAorCisgICAgYWN0aW9ucy5yZXNldF9hY3Rpb25zKCkKKworICAgIGlmIGRyaXZlci53M2M6
CisgICAgICAgIGFzc2VydCBhbGwoKGxlbihkZXZpY2UuYWN0aW9ucykgPT0gMCBmb3IgZGV2aWNl
IGluIGFjdGlvbnMudzNjX2FjdGlvbnMuZGV2aWNlcykpCisgICAgZWxzZToKKyAgICAgICAgYXNz
ZXJ0IGxlbihhY3Rpb25zLl9hY3Rpb25zKSA9PSAwCiAKIAogZGVmIHRlc3RfY2FuX3BhdXNlKGRy
aXZlciwgcGFnZXMpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2VfbG9hZF90aW1lb3V0X3Rl
c3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2VfbG9hZF90aW1lb3V0X3Rlc3RzLnB5CmluZGV4IDE5Yzgz
YWFmYThmNjgzNTEzZDkxZDRlMmU5NzMxYWYyOGM0M2VlYWUuLjQ3M2E2ZTY0MDUyYWJlZTcyNGRi
YjJjNGQ4NDI1YmFjZDVjNjcwMGEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRfdGlt
ZW91dF90ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2FkX3RpbWVvdXRfdGVzdHMucHkK
QEAgLTMyLDcgKzMyLDYgQEAgZGVmIHRlc3RTaG91bGRUaW1lb3V0T25QYWdlTG9hZFRha2luZ1Rv
b0xvbmcoZHJpdmVyLCBwYWdlcyk6CiAgICAgICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRt
bCIpCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZQogZGVmIHRlc3RDbGlja1Nob3VsZFRp
bWVvdXQoZHJpdmVyLCBwYWdlcyk6CiAgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikK
ICAgICBkcml2ZXIuc2V0X3BhZ2VfbG9hZF90aW1lb3V0KDAuMDEpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2VfbG9hZGluZ190ZXN0
cy5weQppbmRleCAyZDMzMGRkNWYyMDJhMmFjM2JiMDc2ZDNlNDRkNTdmOTFlMjdkOTlhLi44Y2Iz
MjFhMDdlYmFmNWY0Y2RlMTY3ODYwMzQwYWRjNTViZTgxY2M1IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRpbmdfdGVz
dHMucHkKQEAgLTQwLDcgKzQwLDYgQEAgZGVmIHRlc3RTaG91bGRXYWl0Rm9yRG9jdW1lbnRUb0Jl
TG9hZGVkKGRyaXZlciwgcGFnZXMpOgogIyAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBB
cnJpdmUgSGVyZSIKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJlYXNvbj0naHR0cHM6
Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTIyMzkn
KQogZGVmIHRlc3RTaG91bGRCZUFibGVUb0dldEFGcmFnbWVudE9uVGhlQ3VycmVudFBhZ2UoZHJp
dmVyLCBwYWdlcyk6CiAgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQogICAgIGxvY2F0
aW9uID0gZHJpdmVyLmN1cnJlbnRfdXJsCkBAIC00OSwxMiArNDgsMTQgQEAgZGVmIHRlc3RTaG91
bGRCZUFibGVUb0dldEFGcmFnbWVudE9uVGhlQ3VycmVudFBhZ2UoZHJpdmVyLCBwYWdlcyk6CiAK
IAogQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlv
bikKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikK
IGRlZiB0ZXN0U2hvdWxkUmV0dXJuV2hlbkdldHRpbmdBVXJsVGhhdERvZXNOb3RSZXNvbHZlKGRy
aXZlcik6CiAgICAgIyAgT2YgY291cnNlLCB3ZSdyZSB1cCB0aGUgY3JlZWsgaWYgdGhpcyBldmVy
IGRvZXMgZ2V0IHJlZ2lzdGVyZWQKICAgICBkcml2ZXIuZ2V0KCJodHRwOi8vd3d3LnRoaXN1cmxk
b2Vzbm90ZXhpc3QuY29teC8iKQogCiAKIEBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJh
aXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNl
cz1XZWJEcml2ZXJFeGNlcHRpb24pCiBkZWYgdGVzdFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVy
bFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgogICAgICMgIEhlcmUncyBob3BpbmcgdGhhdCB0
aGVyZSdzIG5vdGhpbmcgaGVyZS4gVGhlcmUgc2hvdWxkbid0IGJlCiAgICAgZHJpdmVyLmdldCgi
aHR0cDovL2xvY2FsaG9zdDozMDAxIikKQEAgLTExNiw3ICsxMTcsOSBAQCBkZWYgdGVzdFNob3Vs
ZEJlQWJsZVRvTmF2aWdhdGVGb3J3YXJkc0luVGhlQnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdl
cyk6CiAKIEBweXRlc3QubWFyay54ZmFpbF9pZQogQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0
dGUocnVuPUZhbHNlKQorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShydW49RmFsc2UpCiBAcHl0
ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJ1bj1GYWxzZSkKK0BweXRlc3QubWFyay54ZmFpbF9jaHJv
bWl1bWVkZ2UocnVuPUZhbHNlKQogZGVmIHRlc3RTaG91bGROb3RIYW5naWZEb2N1bWVudE9wZW5D
YWxsSXNOZXZlckZvbGxvd2VkQnlEb2N1bWVudENsb3NlQ2FsbChkcml2ZXIsIHBhZ2VzKToKICAg
ICBwYWdlcy5sb2FkKCJkb2N1bWVudF93cml0ZV9pbl9vbmxvYWQuaHRtbCIpCiAgICAgZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5YUEFUSCwgIi8vYm9keSIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
cG9zaXRpb25fYW5kX3NpemVfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcG9zaXRpb25fYW5kX3NpemVf
dGVzdHMucHkKaW5kZXggMGIyNDJhMDA4MWQ4ZThlYTc4ZDQzM2M5MWY3MjgwYWVlZjllYTdkNC4u
MjI4NTg4MDY5MjFkOTYyYWIzZGVlN2FkNjg4Y2YwNmVlNjM4NDA2MyAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3Bvc2l0aW9uX2FuZF9zaXplX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wb3NpdGlv
bl9hbmRfc2l6ZV90ZXN0cy5weQpAQCAtNTYsMjAgKzU2LDI2IEBAIGRlZiB0ZXN0U2hvdWxkU2Ny
b2xsUGFnZUFuZEdldENvb3JkaW5hdGVzT2ZBbkVsZW1lbnRUaGF0SXNPdXRPZlZpZXdQb3J0KGRy
aXZlciwKICAgICBfY2hlY2tfbG9jYXRpb24oZWxlbWVudC5sb2NhdGlvbiwgeD0xMCwgeT01MDEw
KQogCiAKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKK0BweXRlc3QubWFyay54ZmFpbF9jaHJv
bWl1bWVkZ2UKIEBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlCitAcHl0ZXN0Lm1hcmsueGZh
aWxfcmVtb3RlCiBkZWYgdGVzdFNob3VsZEdldENvb3JkaW5hdGVzT2ZBbkVsZW1lbnRJbkFGcmFt
ZShkcml2ZXIsIHBhZ2VzKToKICAgICBwYWdlcy5sb2FkKCJjb29yZGluYXRlc190ZXN0cy9lbGVt
ZW50X2luX2ZyYW1lLmh0bWwiKQotICAgIGRyaXZlci5zd2l0Y2hfdG9fZnJhbWUoZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5OQU1FLCAiaWZyIikpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShk
cml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJpZnIiKSkKICAgICBlbGVtZW50ID0gZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5JRCwgImJveCIpCiAgICAgX2NoZWNrX2xvY2F0aW9uKGVsZW1lbnQu
bG9jYXRpb25fb25jZV9zY3JvbGxlZF9pbnRvX3ZpZXcsIHg9MjUsIHk9MjUpCiAgICAgX2NoZWNr
X2xvY2F0aW9uKGVsZW1lbnQubG9jYXRpb24sIHg9MTAsIHk9MTApCiAKIAorQHB5dGVzdC5tYXJr
LnhmYWlsX2Nocm9tZQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZQogQHB5dGVzdC5t
YXJrLnhmYWlsX21hcmlvbmV0dGUKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUKIGRlZiB0ZXN0
U2hvdWxkR2V0Q29vcmRpbmF0ZXNPZkFuRWxlbWVudEluQU5lc3RlZEZyYW1lKGRyaXZlciwgcGFn
ZXMpOgogICAgIHBhZ2VzLmxvYWQoImNvb3JkaW5hdGVzX3Rlc3RzL2VsZW1lbnRfaW5fbmVzdGVk
X2ZyYW1lLmh0bWwiKQotICAgIGRyaXZlci5zd2l0Y2hfdG9fZnJhbWUoZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5OQU1FLCAiaWZyIikpCi0gICAgZHJpdmVyLnN3aXRjaF90b19mcmFtZShkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJpZnIiKSkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1l
KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgImlmciIpKQorICAgIGRyaXZlci5zd2l0Y2hf
dG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiaWZyIikpCiAgICAgZWxlbWVu
dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJib3giKQogICAgIF9jaGVja19sb2NhdGlv
bihlbGVtZW50LmxvY2F0aW9uX29uY2Vfc2Nyb2xsZWRfaW50b192aWV3LCB4PTQwLCB5PTQwKQog
ICAgIF9jaGVja19sb2NhdGlvbihlbGVtZW50LmxvY2F0aW9uLCB4PTEwLCB5PTEwKQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3Byb3h5X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Byb3h5X3Rlc3RzLnB5
CmluZGV4IDY1NzM2YzllYzM5ZTQ2M2EzMmQ4YTc1ZTMzYjAyYWJhOGZlYzQ0YjAuLmIzNTFmODMz
NmFhNDAzZWE4ZTFmOGEwZDc4YmE3Mjc0Mjk5NzJjYjQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9w
cm94eV90ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcHJveHlfdGVzdHMucHkKQEAgLTI4LDYgKzI4
LDcgQEAgTUFOVUFMX1BST1hZID0gewogICAgICdzb2Nrc1Byb3h5JzogJ3NvY2tzLnByb3h5OjY1
NTU1JywKICAgICAnc29ja3NVc2VybmFtZSc6ICd0ZXN0JywKICAgICAnc29ja3NQYXNzd29yZCc6
ICd0ZXN0JywKKyAgICAnc29ja3NWZXJzaW9uJzogNSwKIH0KIAogUEFDX1BST1hZID0gewpAQCAt
NDgsNiArNDksNyBAQCBkZWYgdGVzdENhbkFkZE1hbnVhbFByb3h5VG9EZXNpcmVkQ2FwYWJpbGl0
aWVzKCk6CiAgICAgcHJveHkuc29ja3NQcm94eSA9IE1BTlVBTF9QUk9YWVsnc29ja3NQcm94eSdd
CiAgICAgcHJveHkuc29ja3NVc2VybmFtZSA9IE1BTlVBTF9QUk9YWVsnc29ja3NVc2VybmFtZSdd
CiAgICAgcHJveHkuc29ja3NQYXNzd29yZCA9IE1BTlVBTF9QUk9YWVsnc29ja3NQYXNzd29yZCdd
CisgICAgcHJveHkuc29ja3NWZXJzaW9uID0gTUFOVUFMX1BST1hZWydzb2Nrc1ZlcnNpb24nXQog
CiAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXMgPSB7fQogICAgIHByb3h5LmFkZF90b19jYXBhYmls
aXRpZXMoZGVzaXJlZF9jYXBhYmlsaXRpZXMpCkBAIC0xMDUsNiArMTA3LDcgQEAgZGVmIHRlc3RD
YW5Jbml0TWFudWFsUHJveHkoKToKICAgICBhc3NlcnQgTUFOVUFMX1BST1hZWydzb2Nrc1Byb3h5
J10gPT0gcHJveHkuc29ja3NQcm94eQogICAgIGFzc2VydCBNQU5VQUxfUFJPWFlbJ3NvY2tzVXNl
cm5hbWUnXSA9PSBwcm94eS5zb2Nrc1VzZXJuYW1lCiAgICAgYXNzZXJ0IE1BTlVBTF9QUk9YWVsn
c29ja3NQYXNzd29yZCddID09IHByb3h5LnNvY2tzUGFzc3dvcmQKKyAgICBhc3NlcnQgTUFOVUFM
X1BST1hZWydzb2Nrc1ZlcnNpb24nXSA9PSBwcm94eS5zb2Nrc1ZlcnNpb24KIAogCiBkZWYgdGVz
dENhbkluaXRBdXRvZGV0ZWN0UHJveHkoKToKQEAgLTEzMSw2ICsxMzQsNyBAQCBkZWYgdGVzdENh
bkluaXRFbXB0eVByb3h5KCk6CiAgICAgYXNzZXJ0ICcnID09IHByb3h5LnNvY2tzUGFzc3dvcmQK
ICAgICBhc3NlcnQgcHJveHkuYXV0b19kZXRlY3QgaXMgRmFsc2UKICAgICBhc3NlcnQgJycgPT0g
cHJveHkucHJveHlfYXV0b2NvbmZpZ191cmwKKyAgICBhc3NlcnQgcHJveHkuc29ja3NfdmVyc2lv
biBpcyBOb25lCiAKICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcyA9IHt9CiAgICAgcHJveHkuYWRk
X3RvX2NhcGFiaWxpdGllcyhkZXNpcmVkX2NhcGFiaWxpdGllcykKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9yZW5kZXJlZF93ZWJlbGVtZW50X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3JlbmRlcmVkX3dl
YmVsZW1lbnRfdGVzdHMucHkKaW5kZXggZTFkMmNkNDEyMThlMTM4NWMxOTQ0ZGEzNDFiNDJlNWU1
ZWY5MTJlNS4uOWM1YWNhMGFiNmE5ZGVjMTA3YmE3YWEzYTQ1YzE0MTdlMDVlYjdmOSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3JlbmRlcmVkX3dlYmVsZW1lbnRfdGVzdHMucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL3JlbmRlcmVkX3dlYmVsZW1lbnRfdGVzdHMucHkKQEAgLTUwLDkgKzUwLDYgQEAgZGVmIHRl
c3RTaG91bGRDb3JyZWN0bHlJZGVudGlmeVRoYXRBbkVsZW1lbnRIYXNXaWR0aChkcml2ZXIsIHBh
Z2VzKToKICAgICBhc3NlcnQgc2l6ZVsiaGVpZ2h0Il0gPiAwCiAKIAotQHB5dGVzdC5tYXJrLnhm
YWlsX2Nocm9tZSgKLSAgICByZWFzb249J0dldCBFbGVtZW50IFJlY3QgY29tbWFuZCBub3QgaW1w
bGVtZW50ZWQnLAotICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCiBAcHl0ZXN0Lm1hcmsu
eGZhaWxfc2FmYXJpKAogICAgIHJlYXNvbj0nR2V0IEVsZW1lbnQgUmVjdCBjb21tYW5kIG5vdCBp
bXBsZW1lbnRlZCcsCiAgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9zZWxlY3RfY2xhc3NfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0X2NsYXNz
X3Rlc3RzLnB5CmluZGV4IDk5ZmJjYTNkNTkyNjZhNjhhNTFkOTk0Mjk3MzVjN2JkZjY2NDA1YTYu
Ljk3ZWUwMjhjZjgwNWE3MmY1NTNlMjdlNmUyMjRjYjI0ODI2MDEwYzUgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi9zZWxlY3RfY2xhc3NfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9jbGFz
c190ZXN0cy5weQpAQCAtNDIsNyArNDIsNiBAQCBkZWYgdGVzdFNlbGVjdEJ5SW5kZXhTaW5nbGUo
ZHJpdmVyLCBwYWdlcyk6CiAgICAgICAgICAgICBhc3NlcnQgc2VsLmZpcnN0X3NlbGVjdGVkX29w
dGlvbi50ZXh0ID09IHNlbGVjdFsndmFsdWVzJ11beF0KIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21lCiBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAogQHB5dGVzdC5tYXJrLnhmYWlsX3Jl
bW90ZQogQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUocmVhc29uPSdodHRwczovL2J1Z3pp
bGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5NDAzJykKQEAgLTY4LDcgKzY3LDYg
QEAgZGVmIHRlc3RTZWxlY3RCeVZhbHVlU2luZ2xlKGRyaXZlciwgcGFnZXMpOgogICAgICAgICAg
ICAgYXNzZXJ0IHNlbC5maXJzdF9zZWxlY3RlZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVl
cyddW3hdCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZQogQHB5dGVzdC5tYXJrLnhmYWls
X2ZpcmVmb3gKIEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUKIEBweXRlc3QubWFyay54ZmFpbF9t
YXJpb25ldHRlKHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyOTQwMycpCkBAIC05Nyw2ICs5NSw4IEBAIGRlZiB0ZXN0U2VsZWN0QnlWaXNpYmxl
VGV4dFNpbmdsZShkcml2ZXIsIHBhZ2VzKToKIAogQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgK
ICAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNz
dWVzL2RldGFpbD9pZD04MjInKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZSgKKyAg
ICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVz
L2RldGFpbD9pZD04MjInKQogZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0U2hvdWxkTm9ybWFs
aXplU3BhY2VzKGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwi
KQogCkBAIC0xMDgsNyArMTA4LDYgQEAgZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0U2hvdWxk
Tm9ybWFsaXplU3BhY2VzKGRyaXZlciwgcGFnZXMpOgogICAgICAgICAgICAgYXNzZXJ0IHNlbC5m
aXJzdF9zZWxlY3RlZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCiAKIAotQHB5
dGVzdC5tYXJrLnhmYWlsX2Nocm9tZQogQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKIEBweXRl
c3QubWFyay54ZmFpbF9yZW1vdGUKIEBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJlYXNv
bj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTQwMycp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0X2VsZW1lbnRfaGFuZGxpbmdfdGVzdHMucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vc2VsZWN0X2VsZW1lbnRfaGFuZGxpbmdfdGVzdHMucHkKaW5kZXggNjQ4NDU2
OWE2YmM2ODRkMTA5OTI5YzU4N2M1Zjc1OGU4MWYzM2M0OC4uM2EyMjViMjlhMjcwYTllYzI5NTFk
ZTVhYjEzZmU0OTI4ZjAwYThhMyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9lbGVtZW50
X2hhbmRsaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZWxlY3RfZWxlbWVudF9oYW5kbGlu
Z190ZXN0cy5weQpAQCAtMyw3ICszLDcgQEAKICMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsg
Zm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KICMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNo
aXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQogIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0jICJMaWNlbnNlIikgeW91IG1heSBub3QgdXNl
IHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5v
dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAjIHdpdGggdGhlIExpY2Vuc2Uu
ICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICMKICMgICBodHRwOi8v
d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKQEAgLTYyLDcgKzYyLDcgQEAgZGVm
IHRlc3RTaG91bGRCZUFibGVUb1NlbGVjdE1vcmVUaGFuT25lT3B0aW9uRnJvbUFTZWxlY3RXaGlj
aEFsbG93c011bHRpcGxlQ2hvaWMKICAgICAgICAgYXNzZXJ0IG9wdGlvbi5pc19zZWxlY3RlZCgp
IGlzIFRydWUKIAogCi1kZWYgdGVzdFNob3VsZFNlbGVjdEZpcnN0T3B0aW9uYXVsdElmTm9uZUlz
U2VsZWN0ZShkcml2ZXIsIHBhZ2VzKToKK2RlZiB0ZXN0U2hvdWxkU2VsZWN0Rmlyc3RPcHRpb25J
Zk5vbmVJc1NlbGVjdGVkKGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdl
Lmh0bWwiKQogICAgIHNlbGVjdEJveCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIv
L3NlbGVjdFtAbmFtZT0nc2VsZWN0LWRlZmF1bHQnXSIpCiAgICAgb3B0aW9ucyA9IHNlbGVjdEJv
eC5maW5kX2VsZW1lbnRzKEJ5LlRBR19OQU1FLCAib3B0aW9uIikKQEAgLTgzLDcgKzgzLDcgQEAg
ZGVmIHRlc3RDYW5TZWxlY3RFbGVtZW50c0luT3B0R3JvdXAoZHJpdmVyLCBwYWdlcyk6CiAgICAg
YXNzZXJ0IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCiAKIAotZGVmIHRlc3RDYW5HZXRW
YWx1ZUZyb21PcHRpb25WaWFBdHRyaWJ1dGVXaGVuQXR0cmlidXRlRG9lc250RXhpcyhkcml2ZXIs
IHBhZ2VzKToKK2RlZiB0ZXN0Q2FuR2V0VmFsdWVGcm9tT3B0aW9uVmlhQXR0cmlidXRlV2hlbkF0
dHJpYnV0ZURvZXNudEV4aXN0KGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxvYWQoImZvcm1Q
YWdlLmh0bWwiKQogICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkNTU19TRUxF
Q1RPUiwgInNlbGVjdFtuYW1lPSdzZWxlY3QtZGVmYXVsdCddIG9wdGlvbiIpCiAgICAgYXNzZXJ0
IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiT25lIgpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3Rha2VzX3NjcmVlbnNob3RzX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Rha2VzX3NjcmVl
bnNob3RzX3Rlc3RzLnB5CmluZGV4IDY0YzAzMDBmMDc5OTlhMzNjMDE4ZmUyYmFhNDU2OTAxM2E0
ZTRlZTQuLjBjMDQ5Y2VjZWQyNzgxZGViNzJmMmZkNTUyMzA5YTBkZTFjOTc5ZGUgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi90YWtlc19zY3JlZW5zaG90c190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
dGFrZXNfc2NyZWVuc2hvdHNfdGVzdHMucHkKQEAgLTMzLDkgKzMzLDcgQEAgZGVmIHRlc3RfZ2V0
X3NjcmVlbnNob3RfYXNfcG5nKGRyaXZlciwgcGFnZXMpOgogICAgIGFzc2VydCBpbWdoZHIud2hh
dCgnJywgcmVzdWx0KSA9PSAncG5nJwogCiAKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKIEBw
eXRlc3QubWFyay54ZmFpbF9maXJlZm94Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCiBkZWYg
dGVzdF9nZXRfZWxlbWVudF9zY3JlZW5zaG90KGRyaXZlciwgcGFnZXMpOgogICAgIHBhZ2VzLmxv
YWQoInNpbXBsZVRlc3QuaHRtbCIpCiAgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfaWQoIm11bHRpbGluZSIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdGltZW91dF90ZXN0cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi90aW1lb3V0X3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3Y2YwMWJiOGZlZGI1
YTQyM2NkYTViYTk5YjZjZDA0OTI1YmMwNzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
dGltZW91dF90ZXN0cy5weQpAQCAtMCwwICsxLDcwIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0
d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRy
aWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJp
YnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJk
aW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0
byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNl
bnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMg
d2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBh
dAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIwor
IyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp
bmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworCitpbXBvcnQgcHl0ZXN0
CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi50aW1lb3V0cyBpbXBvcnQgVGltZW91
dHMKKworZGVmIHRlc3Rfc2hvdWxkX2NyZWF0ZV90aW1lb3V0c19vYmplY3QoKToKKyAgICBpbXBs
aWNpdF93YWl0ID0gMTAKKyAgICBwYWdlX2xvYWQgPSAxMAorICAgIHNjcmlwdCA9IDEwCisgICAg
dGltZW91dHMgPSBUaW1lb3V0cyhpbXBsaWNpdF93YWl0PWltcGxpY2l0X3dhaXQscGFnZV9sb2Fk
PXBhZ2VfbG9hZCxzY3JpcHQ9c2NyaXB0KQorCisgICAgYXNzZXJ0IGltcGxpY2l0X3dhaXQgPT0g
dGltZW91dHMuaW1wbGljaXRfd2FpdAorICAgIGFzc2VydCBwYWdlX2xvYWQgPT0gdGltZW91dHMu
cGFnZV9sb2FkCisgICAgYXNzZXJ0IHNjcmlwdCA9PSB0aW1lb3V0cy5zY3JpcHQKKworZGVmIHRl
c3Rfc2hvdWxkX2Vycm9yX2lmX2ltcGxpY2l0X3dhaXRfaXNudF9hX251bWJlcigpOgorICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICBUaW1lb3V0cyhpbXBsaWNpdF93
YWl0PSJhYmMiKQorCisgICAgdGltZW91dCA9IFRpbWVvdXRzKGltcGxpY2l0X3dhaXQ9MCkKKyAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgdGltZW91dC5pbXBsaWNp
dF93YWl0PSJhYmMiCisKKworZGVmIHRlc3Rfc2hvdWxkX2Vycm9yX2lmX3BhZ2VfbG9hZF9pc250
X2FfbnVtYmVyKCk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAg
IFRpbWVvdXRzKHBhZ2VfbG9hZD0iYWJjIikKKyAgICAKKyAgICB0aW1lb3V0ID0gVGltZW91dHMo
cGFnZV9sb2FkPTApCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAg
IHRpbWVvdXQucGFnZV9sb2FkID0gImFiYyIKKworCitkZWYgdGVzdF9zaG91bGRfZXJyb3JfaWZf
c2NyaXB0X2lzbnRfYV9udW1iZXIoKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9y
KToKKyAgICAgICAgVGltZW91dHMoc2NyaXB0PSJhYmMiKQorCisgICAgdGltZW91dCA9IFRpbWVv
dXRzKHNjcmlwdD0wKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAg
ICB0aW1lb3V0LnNjcmlwdCA9ICJhYmMiCisKKworZGVmIHRlc3Rfc2hvdWxkX2dldF90aW1lb3V0
c193aXRob3V0X3NldHRpbmdfdGhlbShkcml2ZXIpOgorICAgIHJlc3VsdHMgPSBkcml2ZXIudGlt
ZW91dHMKKyAgICBhc3NlcnQgcmVzdWx0cy5pbXBsaWNpdF93YWl0ID09IDAKKyAgICBhc3NlcnQg
cmVzdWx0cy5wYWdlX2xvYWQgPT0gMzAwCisgICAgYXNzZXJ0IHJlc3VsdHMuc2NyaXB0ID09IDMw
CisKK2RlZiB0ZXN0X3Nob3VsZF9zZXRfYW5kX2dldF90aW1lb3V0c19vbl9yZW1vdGVfZW5kKGRy
aXZlcik6CisgICAgdGltZW91dCA9IFRpbWVvdXRzKGltcGxpY2l0X3dhaXQ9MTApCisgICAgZHJp
dmVyLnRpbWVvdXRzID0gdGltZW91dAorICAgIHJlc3VsdCA9IGRyaXZlci50aW1lb3V0cworICAg
IGFzc2VydCByZXN1bHQuaW1wbGljaXRfd2FpdCA9PSB0aW1lb3V0LmltcGxpY2l0X3dhaXQKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdHlwaW5nX3Rl
c3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3R5cGluZ190ZXN0cy5weQppbmRleCA3MjA5ZDU1MGY5YzgyMjVh
MzM5MjA0ZGNhNTJjNmFkOTE1MjVjMjI3Li43MTIzMGYzNzA5ZWFlMTkyM2QxYTk3Nzg4ODEwNzFl
MGUxMjgxNzZkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdHlwaW5nX3Rlc3RzLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi90eXBpbmdfdGVzdHMucHkKQEAgLTE5MSw2ICsxOTEsOCBAQCBkZWYgdGVzdE51bWVy
aWNOb25TaGlmdEtleXMoZHJpdmVyLCBwYWdlcyk6CiAKIEBweXRlc3QubWFyay54ZmFpbF9tYXJp
b25ldHRlKAogICAgIHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI1NTI1OCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKAorICAgIHJlYXNv
bj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTI1OCcp
CiBkZWYgdGVzdE51bWVyaWNTaGlmdEtleXMoZHJpdmVyLCBwYWdlcyk6CiAgICAgcGFnZXMubG9h
ZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCiAgICAgcmVzdWx0ID0gZHJpdmVyLmZpbmRfZWxlbWVu
dChieT1CeS5JRCwgdmFsdWU9InJlc3VsdCIpCkBAIC0yMTEsNiArMjEzLDggQEAgZGVmIHRlc3RM
b3dlckNhc2VBbHBoYUtleXMoZHJpdmVyLCBwYWdlcyk6CiAKIEBweXRlc3QubWFyay54ZmFpbF9t
YXJpb25ldHRlKAogICAgIHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI1NTI1OCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKAorICAgIHJl
YXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTI1
OCcpCiBkZWYgdGVzdFVwcGVyY2FzZUFscGhhS2V5cyhkcml2ZXIsIHBhZ2VzKToKICAgICBwYWdl
cy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKICAgICByZXN1bHQgPSBkcml2ZXIuZmluZF9l
bGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0icmVzdWx0IikKQEAgLTIyMyw2ICsyMjcsOCBAQCBkZWYg
dGVzdFVwcGVyY2FzZUFscGhhS2V5cyhkcml2ZXIsIHBhZ2VzKToKIAogQHB5dGVzdC5tYXJrLnhm
YWlsX21hcmlvbmV0dGUoCiAgICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjU1MjU4JykKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUoCisg
ICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjU1MjU4JykKIGRlZiB0ZXN0QWxsUHJpbnRhYmxlS2V5cyhkcml2ZXIsIHBhZ2VzKToKICAgICBw
YWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKICAgICByZXN1bHQgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0icmVzdWx0IikKQEAgLTI3NCw2ICsyODAsOCBAQCBk
ZWYgdGVzdERlbGV0ZUFuZEJhY2tzcGFjZUtleXMoZHJpdmVyLCBwYWdlcyk6CiAKIEBweXRlc3Qu
bWFyay54ZmFpbF9tYXJpb25ldHRlKAogICAgIHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3pp
bGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTI1OCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVt
b3RlKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI1NTI1OCcpCiBkZWYgdGVzdFNwZWNpYWxTcGFjZUtleXMoZHJpdmVyLCBwYWdlcyk6
CiAgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCiAgICAgZWxlbWVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCkBAIC0yODMs
NiArMjkxLDggQEAgZGVmIHRlc3RTcGVjaWFsU3BhY2VLZXlzKGRyaXZlciwgcGFnZXMpOgogCiBA
cHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKICAgICByZWFzb249J2h0dHBzOi8vYnVnemls
bGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTUyNTgnKQorQHB5dGVzdC5tYXJrLnhm
YWlsX3JlbW90ZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNTUyNTgnKQogZGVmIHRlc3ROdW1iZXJwYWRBbmRGdW5jdGlvbktleXMo
ZHJpdmVyLCBwYWdlcyk6CiAgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCiAg
ICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBv
cnRlciIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdzNjX2ludGVyYWN0aW9uX3Rlc3RzLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL3czY19pbnRlcmFjdGlvbl90ZXN0cy5weQppbmRleCA3YTM0ODU4ZTFjNDAxNzZl
YzRjMDZlN2RiMzNkY2IwMjBjOWNlYTY5Li5iYzBlYWVmMGNmNmI5ZDA3NDEyZTg1MWNkYjg5YzQx
MjZiOWU2MGExIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdzNjX2ludGVyYWN0aW9uX3Rlc3RzLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi93M2NfaW50ZXJhY3Rpb25fdGVzdHMucHkKQEAgLTMxLDExICszMSw3
IEBAIGRlZiB0ZXN0X3Nob3VsZF9iZV9hYmxlX3RvX2dldF9wb2ludGVyX2FuZF9rZXlib2FyZF9p
bnB1dHMoZHJpdmVyLCBwYWdlcyk6CiAgICAgYXNzZXJ0IGtleWJvYXJkcyBpcyBub3QgTm9uZQog
CiAKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94
Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCi1AcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0
ZSgKLSAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lz
c3Vlcy82NDYnKQogZGVmIHRlc3RTZW5kaW5nS2V5c1RvQWN0aXZlRWxlbWVudFdpdGhNb2RpZmll
cihkcml2ZXIsIHBhZ2VzKToKICAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKICAgICBl
ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgid29ya2luZyIpCkBAIC01Miw5ICs0OCw3IEBA
IGRlZiB0ZXN0U2VuZGluZ0tleXNUb0FjdGl2ZUVsZW1lbnRXaXRoTW9kaWZpZXIoZHJpdmVyLCBw
YWdlcyk6CiAgICAgYXNzZXJ0ICJBQkMiID09IGUuZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKQogCiAK
LUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94Ci1A
cHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCiBkZWYgdGVzdF9jYW5fY3JlYXRlX3BhdXNlX2FjdGlv
bl9vbl9rZXlib2FyZChkcml2ZXIsIHBhZ2VzKToKICAgICAjIElmIHdlIGRvbid0IGdldCBhbiBl
cnJvciBhbmQgdGFrZXMgbGVzcyB0aGFuIDMgc2Vjb25kcyB0byBydW4sIHdlIGFyZSBnb29kCiAg
ICAgaW1wb3J0IGRhdGV0aW1lCkBAIC03Myw5ICs2Nyw3IEBAIGRlZiB0ZXN0X2Nhbl9jcmVhdGVf
cGF1c2VfYWN0aW9uX29uX2tleWJvYXJkKGRyaXZlciwgcGFnZXMpOgogICAgIGFjdGlvbnMyLnBl
cmZvcm0oKQogCiAKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKIEBweXRlc3QubWFyay54ZmFp
bF9maXJlZm94Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCiBkZWYgdGVzdF9jYW5fY3JlYXRl
X3BhdXNlX2FjdGlvbl9vbl9wb2ludGVyKGRyaXZlciwgcGFnZXMpOgogICAgICMgSWYgd2UgZG9u
J3QgZ2V0IGFuIGVycm9yIGFuZCB0YWtlcyBsZXNzIHRoYW4gMyBzZWNvbmRzIHRvIHJ1biwgd2Ug
YXJlIGdvb2QKICAgICBpbXBvcnQgZGF0ZXRpbWUKQEAgLTk0LDE3ICs4NiwxMyBAQCBkZWYgdGVz
dF9jYW5fY3JlYXRlX3BhdXNlX2FjdGlvbl9vbl9wb2ludGVyKGRyaXZlciwgcGFnZXMpOgogICAg
IGFjdGlvbnMyLnBlcmZvcm0oKQogCiAKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKIEBweXRl
c3QubWFyay54ZmFpbF9maXJlZm94Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCiBkZWYgdGVz
dF9jYW5fY2xlYXJfYWN0aW9ucyhkcml2ZXIsIHBhZ2VzKToKICAgICBhY3Rpb25zID0gQWN0aW9u
QnVpbGRlcihkcml2ZXIpCiAgICAgYWN0aW9ucy5jbGVhcl9hY3Rpb25zKCkKIAogCi1AcHl0ZXN0
Lm1hcmsueGZhaWxfY2hyb21lCiBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAotQHB5dGVzdC5t
YXJrLnhmYWlsX3JlbW90ZQogZGVmIHRlc3RfbW92ZV9hbmRfY2xpY2soZHJpdmVyLCBwYWdlcyk6
CiAgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCiAgICAgdG9DbGljayA9IGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNsaWNrRmllbGQiKQpAQCAtMTE5LDkgKzEwNyw3IEBA
IGRlZiB0ZXN0X21vdmVfYW5kX2NsaWNrKGRyaXZlciwgcGFnZXMpOgogICAgIGFzc2VydCAiQ2xp
Y2tlZCIgPT0gdG9DbGljay5nZXRfYXR0cmlidXRlKCd2YWx1ZScpCiAKIAotQHB5dGVzdC5tYXJr
LnhmYWlsX2Nocm9tZQogQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKLUBweXRlc3QubWFyay54
ZmFpbF9yZW1vdGUKIGRlZiB0ZXN0RHJhZ0FuZERyb3AoZHJpdmVyLCBwYWdlcyk6CiAgICAgIiIi
Q29waWVkIGZyb20gb3JnLm9wZW5xYS5zZWxlbml1bS5pbnRlcmFjdGlvbnMuVGVzdEJhc2ljTW91
c2VJbnRlcmZhY2UuIiIiCiAgICAgZWxlbWVudF9hdmFpbGFibGVfdGltZW91dCA9IDE1CkBAIC0x
NDcsOSArMTMzLDcgQEAgZGVmIHRlc3REcmFnQW5kRHJvcChkcml2ZXIsIHBhZ2VzKToKICAgICBh
c3NlcnQgIkRyb3BwZWQhIiA9PSB0ZXh0CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZQog
QHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUKIGRl
ZiB0ZXN0X2NvbnRleHRfY2xpY2soZHJpdmVyLCBwYWdlcyk6CiAKICAgICBwYWdlcy5sb2FkKCJq
YXZhc2NyaXB0UGFnZS5odG1sIikKQEAgLTE2MywxMSArMTQ3LDkgQEAgZGVmIHRlc3RfY29udGV4
dF9jbGljayhkcml2ZXIsIHBhZ2VzKToKICAgICBhc3NlcnQgIkNvbnRleHRDbGlja2VkIiA9PSB0
b0NvbnRleHRDbGljay5nZXRfYXR0cmlidXRlKCd2YWx1ZScpCiAKIAotQHB5dGVzdC5tYXJrLnhm
YWlsX2Nocm9tZQogQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKLUBweXRlc3QubWFyay54ZmFp
bF9yZW1vdGUKLUBweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAotICAgIHJlYXNvbj0naHR0
cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIvaXNzdWVzLzY2MScpCitAcHl0ZXN0
Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCitAcHl0ZXN0
Lm1hcmsueGZhaWxfcmVtb3RlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKIGRlZiB0ZXN0X2Rv
dWJsZV9jbGljayhkcml2ZXIsIHBhZ2VzKToKICAgICAiIiJDb3BpZWQgZnJvbSBvcmcub3BlbnFh
LnNlbGVuaXVtLmludGVyYWN0aW9ucy5UZXN0QmFzaWNNb3VzZUludGVyZmFjZS4iIiIKICAgICBw
YWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKQEAgLTE4MiwxOCArMTY0LDE0IEBAIGRl
ZiB0ZXN0X2RvdWJsZV9jbGljayhkcml2ZXIsIHBhZ2VzKToKICAgICBhc3NlcnQgIkRvdWJsZUNs
aWNrZWQiID09IHRvRG91YmxlQ2xpY2suZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKQogCiAKLUBweXRl
c3QubWFyay54ZmFpbF9jaHJvbWUKIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94Ci1AcHl0ZXN0
Lm1hcmsueGZhaWxfcmVtb3RlCiBkZWYgdGVzdF9kcmFnZ2luZ19lbGVtZW50X3dpdGhfbW91c2Vf
bW92ZXNfaXRfdG9fYW5vdGhlcl9saXN0KGRyaXZlciwgcGFnZXMpOgogICAgIF9wZXJmb3JtRHJh
Z0FuZERyb3BXaXRoTW91c2UoZHJpdmVyLCBwYWdlcykKICAgICBkcmFnSW50byA9IGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfaWQoInNvcnRhYmxlMSIpCiAgICAgYXNzZXJ0IDYgPT0gbGVuKGRyYWdJ
bnRvLmZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoImxpIikpCiAKIAotQHB5dGVzdC5tYXJrLnhm
YWlsX2Nocm9tZQogQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKLUBweXRlc3QubWFyay54ZmFp
bF9yZW1vdGUKIGRlZiB0ZXN0X2RyYWdnaW5nX2VsZW1lbnRfd2l0aF9tb3VzZV9maXJlc19ldmVu
dHMoZHJpdmVyLCBwYWdlcyk6CiAgICAgX3BlcmZvcm1EcmFnQW5kRHJvcFdpdGhNb3VzZShkcml2
ZXIsIHBhZ2VzKQogICAgIGRyYWdSZXBvcnRlciA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
ImRyYWdnaW5nX3JlcG9ydHMiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dlYmRyaXZlcndhaXRf
dGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vd2ViZHJpdmVyd2FpdF90ZXN0cy5weQppbmRleCA0NmJkZWFj
NDFhZTQ1MGIwMGI4MTFiMjQ2ZmUzYTdhMDkzYThjOGE2Li5hYWI4MzM3MGQ4OTIxN2U5MTZiOWQ0
MWFhMTJjZjc3ODg5ZmQwNmNjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2ViZHJpdmVyd2FpdF90
ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2ViZHJpdmVyd2FpdF90ZXN0cy5weQpAQCAtMjIyLDYg
KzIyMiwxOCBAQCBkZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9uRnJhbWVUb0JlQXZhaWxhYmxlQW5k
U3dpdGNoVG9JdEJ5TG9jYXRvcihkcml2ZXIsIHBhZ2VzKQogICAgIGFzc2VydCAnY2xpY2sgbWUn
ID09IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoJ2FsZXJ0SW5GcmFtZScpLnRleHQKIAogCitk
ZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9uSW52aXNpYmxpdHlPZkVsZW1lbnQoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgdGFyZ2V0ID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgnY2xpY2tUb0hpZGUnKQorICAgIGRyaXZlci5leGVj
dXRlX3NjcmlwdCgiZGVsYXllZFNob3dIaWRlKDAsIHRydWUpIikKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAw
LjcpLnVudGlsKEVDLmludmlzaWJpbGl0eV9vZl9lbGVtZW50KHRhcmdldCkpCisgICAgZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCJkZWxheWVkU2hvd0hpZGUoMjAwLCBmYWxzZSkiKQorICAgIGVsZW1l
bnQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5pbnZpc2liaWxpdHlfb2Zf
ZWxlbWVudCh0YXJnZXQpKQorICAgIGFzc2VydCBlbGVtZW50LmlzX2Rpc3BsYXllZCgpIGlzIEZh
bHNlCisgICAgYXNzZXJ0IHRhcmdldCA9PSBlbGVtZW50CisKKwogZGVmIHRlc3RFeHBlY3RlZENv
bmRpdGlvbkludmlzaWJsaXR5T2ZFbGVtZW50TG9jYXRlZChkcml2ZXIsIHBhZ2VzKToKICAgICBw
YWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKICAgICBkcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoImRlbGF5ZWRTaG93SGlkZSgwLCB0cnVlKSIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2lu
ZG93X3N3aXRjaGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93aW5kb3dfc3dpdGNoaW5nX3Rlc3Rz
LnB5CmluZGV4IDBjYWJiMWMzOWExNjdkNjQ4NWVkOWI1NmY1MTljODg0MWM0ZTNjNjUuLmQ4OTI2
M2IyZDQ5NzljYWI2OWRmNDlkY2U4OTUyZmZhYjU3MzY4MTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi93aW5kb3dfc3dpdGNoaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93aW5kb3dfc3dpdGNo
aW5nX3Rlc3RzLnB5CkBAIC0yMCw2ICsyMCw3IEBAIGltcG9ydCBweXRlc3QKIGZyb20gc2VsZW5p
dW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaFdpbmRvd0V4Y2VwdGlvbgogZnJvbSBz
ZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCiBmcm9t
IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLndl
YmRyaXZlci5jb21tb24ud2luZG93IGltcG9ydCBXaW5kb3dUeXBlcwogZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29uZGl0aW9ucyBhcyBFQwogZnJvbSBz
ZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBpbXBvcnQgV2ViRHJpdmVyV2FpdAogCkBAIC0x
ODgsMyArMTg5LDE2IEBAIGRlZiB0ZXN0VGhhdEFjY2Vzc2luZ0ZpbmRpbmdBbkVsZW1lbnRBZnRl
cldpbmRvd0lzQ2xvc2VkQW5kSGF2ZW50c3dpdGNoZWREb2VzbnRDCiAgICAgICAgIGFzc2VydCAx
ID09IGxlbihhbGxfaGFuZGxlcykKICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgi
Y2xvc2UiKQogICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93KGN1cnJlbnQpCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsX2llCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ3JlYXRlQU5ld1dpbmRvdyhk
cml2ZXIsIHBhZ2VzKToKKyAgICBvcmlnaW5hbF9oYW5kbGUgPSBkcml2ZXIuY3VycmVudF93aW5k
b3dfaGFuZGxlCisKKyAgICBkcml2ZXIuc3dpdGNoX3RvLm5ld193aW5kb3coV2luZG93VHlwZXMu
VEFCKQorICAgIG5ld19oYW5kbGUgPSBkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisKKyAg
ICBkcml2ZXIuY2xvc2UoKQorICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93KG9yaWdpbmFsX2hh
bmRsZSkKKworICAgIGFzc2VydCBuZXdfaGFuZGxlICE9IG9yaWdpbmFsX2hhbmRsZQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3dpbmRvd190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93aW5kb3dfdGVzdHMu
cHkKaW5kZXggYjA4ZjQ2NDlkYjcxZWQ4NzQyZTA3ZTEwNTRkYTMyMDAxMzdjM2RiNC4uOWYxMDhm
MjlhOGQ1NGEzMzFlNTdlMjRiZGRlODc4ZmYyNzcyMzk5YSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L3dpbmRvd190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5CkBAIC0yMiw3
ICsyMiw3IEBAIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdCBpbXBvcnQgV2Vi
RHJpdmVyV2FpdAogCiAKIEBweXRlc3QubWFyay54ZmFpbF9pZQotQHB5dGVzdC5tYXJrLnhmYWls
X2Nocm9tZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hy
b21pdW1lZGdlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKIEBweXRlc3QubWFyay54ZmFpbF9t
YXJpb25ldHRlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKIEBweXRlc3QubWFyay54ZmFpbF9m
aXJlZm94KHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKIEBweXRlc3QubWFyay54ZmFpbF9yZW1v
dGUocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQpAQCAtODIsOCArODIsNiBAQCBkZWYgdGVzdF9z
aG91bGRfc2V0X3RoZV9wb3NpdGlvbl9vZl90aGVfY3VycmVudF93aW5kb3coZHJpdmVyKToKIAog
QHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nR2V0IFdpbmRvdyBSZWN0IGNvbW1hbmQg
bm90IGltcGxlbWVudGVkJykKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRy
aXZlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdHZXQgV2lu
ZG93IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQogQHB5dGVzdC5tYXJrLnhmYWlsX3Nh
ZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWFzb249J0dldCBXaW5kb3cgUmVjdCBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCiBkZWYg
dGVzdF9zaG91bGRfZ2V0X3RoZV9yZWN0X29mX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgpA
QCAtOTYsOCArOTQsNiBAQCBkZWYgdGVzdF9zaG91bGRfZ2V0X3RoZV9yZWN0X29mX3RoZV9jdXJy
ZW50X3dpbmRvdyhkcml2ZXIpOgogCiBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9
V2ViRHJpdmVyRXhjZXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdH
ZXQgV2luZG93IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQotQHB5dGVzdC5tYXJrLnhm
YWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWFzb249J0dldCBXaW5kb3cgUmVjdCBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcp
CiBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nR2V0IFdpbmRvdyBSZWN0IGNvbW1hbmQg
bm90IGltcGxlbWVudGVkJykKIGRlZiB0ZXN0X3Nob3VsZF9zZXRfdGhlX3JlY3Rfb2ZfdGhlX2N1
cnJlbnRfd2luZG93KGRyaXZlcik6CkBAIC0xMjMsMTAgKzExOSwxMCBAQCBkZWYgdGVzdF9zaG91
bGRfc2V0X3RoZV9yZWN0X29mX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgogCiBAcHl0ZXN0
Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIG5vdCBpbXBsZW1lbnRl
ZCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdlKHJhaXNlcz1XZWJEcml2ZXJFeGNl
cHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVl
biBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCiBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChy
YWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVh
c29uPSdGdWxsc2NyZWVuIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKLUBweXRlc3QubWFyay54
ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSdGdWxsc2NyZWVuIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKIEBw
eXRlc3QubWFyay54ZmFpbF9zYWZhcmkocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdGdWxsc2NyZWVuIGNvbW1hbmQgbm90IGltcGxl
bWVudGVkJykKIEBweXRlc3QubWFyay5za2lwaWYob3MuZW52aXJvbi5nZXQoJ0NJJykgPT0gJ3Ry
dWUnLApAQCAtMTUxLDEwICsxNDcsMTAgQEAgZGVmIHRlc3Rfc2hvdWxkX2Z1bGxzY3JlZW5fdGhl
X2N1cnJlbnRfd2luZG93KGRyaXZlcik6CiAKIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFp
c2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29u
PSdNaW5pbWl6ZSBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21pdW1lZGdlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQn
KQogQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29tbWFuZCBub3Qg
aW1wbGVtZW50ZWQnKQotQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVy
RXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNv
bW1hbmQgbm90IGltcGxlbWVudGVkJykKIEBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkocmFpc2Vz
PVdlYkRyaXZlckV4Y2VwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdN
aW5pbWl6ZSBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCiBAcHl0ZXN0Lm1hcmsuc2tpcGlmKG9z
LmVudmlyb24uZ2V0KCdDSScpID09ICd0cnVlJywKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9yZW1v
dGVfZmlyZWZveF9wcm9maWxlX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9maXJlZm94X3By
b2ZpbGVfdGVzdHMucHkKaW5kZXggZjdkNjgyOTE5YjJhMDQ3ZWQyNDI3ZDA5MzUyNDZhYmU4MDZm
MGI0MS4uNWU2MGRiOTUyMjRlYTE5M2RmYWNkZjcxODU3NTkxZDkxNjE5MTU0ZCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvcmVtb3RlL3JlbW90ZV9maXJlZm94X3Byb2ZpbGVfdGVzdHMucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvcmVt
b3RlL3JlbW90ZV9maXJlZm94X3Byb2ZpbGVfdGVzdHMucHkKQEAgLTI4LDIwICsyOCwxNyBAQCBk
ZWYgY2FwYWJpbGl0aWVzKCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgZHJpdmVyKGNhcGFi
aWxpdGllcywgcHJvZmlsZSk6Ci0gICAgZHJpdmVyID0gd2ViZHJpdmVyLlJlbW90ZSgKLSAgICAg
ICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzLAotICAgICAgICBicm93c2VyX3By
b2ZpbGU9cHJvZmlsZSkKK2RlZiBkcml2ZXIob3B0aW9ucyk6CisgICAgZHJpdmVyID0gd2ViZHJp
dmVyLlJlbW90ZShvcHRpb25zPW9wdGlvbnMpCiAgICAgeWllbGQgZHJpdmVyCiAgICAgZHJpdmVy
LnF1aXQoKQogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIHByb2ZpbGUoKToKLSAgICBwcm9maWxl
ID0gd2ViZHJpdmVyLkZpcmVmb3hQcm9maWxlKCkKLSAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNl
KCdicm93c2VyLnN0YXJ0dXAuaG9tZXBhZ2UnLCAnYWJvdXQ6JykKLSAgICBwcm9maWxlLnVwZGF0
ZV9wcmVmZXJlbmNlcygpCi0gICAgcmV0dXJuIHByb2ZpbGUKK2RlZiBvcHRpb25zKCk6CisgICAg
b3B0aW9ucyA9IHdlYmRyaXZlci5GaXJlZm94T3B0aW9ucygpCisgICAgb3B0aW9ucy5zZXRfcHJl
ZmVyZW5jZSgnYnJvd3Nlci5zdGFydHVwLmhvbWVwYWdlJywgJ2Fib3V0OicpCisgICAgcmV0dXJu
IG9wdGlvbnMKIAogCiBkZWYgdGVzdF9wcm9maWxlX2lzX3VzZWQoZHJpdmVyKToKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3NhZmFyaS9sYXVuY2hlcl90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9sYXVuY2hlcl90ZXN0
cy5weQppbmRleCA3NDI3MjVmM2E0ZTA0MDQ0MDExN2MyMGY0MDY2MmUyMTg1N2JmMTUwLi4yNjYw
MWE2ZjZhMGFmNTJjYzY4ZTllNzk5NTYxZDUzMDIxZDE4MmEyIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZh
cmkvbGF1bmNoZXJfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL2xhdW5jaGVyX3Rlc3RzLnB5CkBA
IC00MiwzICs0MiwyNSBAQCBjbGFzcyBUZXN0VGVjaG5vbG9neVByZXZpZXcob2JqZWN0KToKIAog
ICAgIGRlZiB0ZXN0X2xhdW5jaChzZWxmLCBkcml2ZXIpOgogICAgICAgICBhc3NlcnQgZHJpdmVy
LmNhcGFiaWxpdGllc1snYnJvd3Nlck5hbWUnXSA9PSAnc2FmYXJpJworCisKK2RlZiB0ZXN0X2xh
dW5jaF9zYWZhcmlfd2l0aF9sZWdhY3lfZmxhZyhtb2NrZXIsIGRyaXZlcl9jbGFzcyk6CisgICAg
aW1wb3J0IHN1YnByb2Nlc3MKKyAgICBtb2NrZXIucGF0Y2goJ3N1YnByb2Nlc3MuUG9wZW4nKQor
ICAgIHRyeToKKyAgICAgICAgZHJpdmVyX2NsYXNzKHNlcnZpY2VfYXJncz1bJy0tbGVnYWN5J10p
CisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICBwYXNzCisgICAgYXJncywga3dh
cmdzID0gc3VicHJvY2Vzcy5Qb3Blbi5jYWxsX2FyZ3MKKyAgICBhc3NlcnQgJy0tbGVnYWN5JyBp
biBhcmdzWzBdCisKKworZGVmIHRlc3RfbGF1bmNoX3NhZmFyaV93aXRob3V0X2xlZ2FjeV9mbGFn
KG1vY2tlciwgZHJpdmVyX2NsYXNzKToKKyAgICBpbXBvcnQgc3VicHJvY2VzcworICAgIG1vY2tl
ci5wYXRjaCgnc3VicHJvY2Vzcy5Qb3BlbicpCisgICAgdHJ5OgorICAgICAgICBkcml2ZXJfY2xh
c3MoKQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgcGFzcworICAgIGFyZ3Ms
IGt3YXJncyA9IHN1YnByb2Nlc3MuUG9wZW4uY2FsbF9hcmdzCisgICAgYXNzZXJ0ICctLWxlZ2Fj
eScgbm90IGluIGFyZ3NbMF0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5nX3dl
YmRyaXZlcl90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5nX3dlYmRyaXZlcl90ZXN0
cy5weQppbmRleCAxMjQ2ZDk2NGIxYmMxODM2MGNkNjVjMzgxMjlhYThiZmFjZjgzODM5Li5lNGFk
OGMwMTU3NzE5ZmM3MzQ0YTU0MGU1ZmU1ZWVjN2U1ZDMzMmFkIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBw
b3J0L2V2ZW50X2ZpcmluZ193ZWJkcml2ZXJfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVu
dF9maXJpbmdfd2ViZHJpdmVyX3Rlc3RzLnB5CkBAIC0yNiw2ICsyNiw3IEBAIGZyb20gc2VsZW5p
dW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KIGZyb20g
c2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKIGZyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyLnN1cHBvcnQuZXZlbnRzIGltcG9ydCBFdmVudEZpcmluZ1dlYkRyaXZlciwgQWJzdHJh
Y3RFdmVudExpc3RlbmVyCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9y
dCBXZWJEcml2ZXJXYWl0Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYWN0aW9ucy5h
Y3Rpb25fYnVpbGRlciBpbXBvcnQgQWN0aW9uQnVpbGRlcgogCiAKIEBweXRlc3QuZml4dHVyZQpA
QCAtMjE2LDMgKzIxNywzMCBAQCBkZWYgdGVzdF9taXNzaW5nX2F0dHJpYnV0ZXNfcmFpc2VfZXJy
b3IoZHJpdmVyLCBwYWdlcyk6CiAKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJy
b3IpOgogICAgICAgICBlbGVtZW50LmF0dHJpYnV0ZV9zaG91bGRfbm90X2V4aXN0CisKKworZGVm
IHRlc3RfY2FuX3VzZV9wb2ludGVyX2lucHV0X3dpdGhfZXZlbnRfZmlyaW5nX3dlYmRyaXZlcihk
cml2ZXIsIHBhZ2VzKToKKyAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmluZ1dlYkRyaXZlcihkcml2
ZXIsIEFic3RyYWN0RXZlbnRMaXN0ZW5lcigpKQorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQ
YWdlLmh0bWwiKQorICAgIHRvX2NsaWNrID0gZWZfZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgi
Y2xpY2tGaWVsZCIpCisKKyAgICBhY3Rpb25zID0gQWN0aW9uQnVpbGRlcihlZl9kcml2ZXIpCisg
ICAgcG9pbnRlciA9IGFjdGlvbnMucG9pbnRlcl9hY3Rpb24KKyAgICBwb2ludGVyLm1vdmVfdG8o
dG9fY2xpY2spLmNsaWNrKCkKKyAgICBhY3Rpb25zLnBlcmZvcm0oKQorCisgICAgYXNzZXJ0IHRv
X2NsaWNrLmdldF9hdHRyaWJ1dGUoJ3ZhbHVlJykgPT0gJ0NsaWNrZWQnCisKKworZGVmIHRlc3Rf
Y2FuX3VzZV9rZXlfaW5wdXRfd2l0aF9ldmVudF9maXJpbmdfd2ViZHJpdmVyKGRyaXZlciwgcGFn
ZXMpOgorICAgIGVmX2RyaXZlciA9IEV2ZW50RmlyaW5nV2ViRHJpdmVyKGRyaXZlciwgQWJzdHJh
Y3RFdmVudExpc3RlbmVyKCkpCisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIp
CisgICAgZWZfZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgia2V5VXAiKS5jbGljaygpCisKKyAg
ICBhY3Rpb25zID0gQWN0aW9uQnVpbGRlcihlZl9kcml2ZXIpCisgICAga2V5ID0gYWN0aW9ucy5r
ZXlfYWN0aW9uCisgICAga2V5LnNlbmRfa2V5cygnU3VjY2VzcycpCisgICAgYWN0aW9ucy5wZXJm
b3JtKCkKKworICAgIHJlc3VsdCA9IGVmX2RyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3Vs
dCIpCisgICAgYXNzZXJ0IHJlc3VsdC50ZXh0ID09ICdTdWNjZXNzJwpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
c3VwcG9ydC9leHBlY3RlZF9jb25kaXRpb25zX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9leHBlY3Rl
ZF9jb25kaXRpb25zX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZDhjOTRkMzZiNjBjNWFlYWNhYTg2
ZjgwNWRhY2Y5YTMyODM4YWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2V4cGVjdGVk
X2NvbmRpdGlvbnNfdGVzdHMucHkKQEAgLTAsMCArMSw2NiBAQAorIyBMaWNlbnNlZCB0byB0aGUg
U29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBj
b250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRp
c3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJl
Z2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUK
KyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAi
TGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl
CisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vu
c2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK
KyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3
cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0
cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09O
RElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0
aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNz
aW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRl
c3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgVGltZW91dEV4Y2Vw
dGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2
ZXJXYWl0Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9j
b25kaXRpb25zIGFzIEVDCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0
IEJ5Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2ViZWxlbWVudCBpbXBvcnQgV2Vi
RWxlbWVudAorCisKK2RlZiB0ZXN0X2FueV9vZl90cnVlKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAu
MSkudW50aWwoRUMuYW55X29mKAorICAgICAgICBFQy50aXRsZV9pcygiTm9wZSIpLCBFQy50aXRs
ZV9pcygiSGVsbG8gV2ViRHJpdmVyIikpKQorCisKK2RlZiB0ZXN0X2FueV9vZl9mYWxzZShkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDAuMSkudW50aWwoRUMuYW55X29mKAorICAgICAgICAgICAgRUMudGl0bGVfaXMoIk5v
cGUiKSwgRUMudGl0bGVfaXMoIlN0aWxsIE5vcGUiKSkpCisKKworZGVmIHRlc3RfYWxsX29mX3Ry
dWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAg
ICByZXN1bHRzID0gV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuMSkudW50aWwoRUMuYWxsX29mKAor
ICAgICAgICBFQy50aXRsZV9pcygiSGVsbG8gV2ViRHJpdmVyIiksCisgICAgICAgIEVDLnZpc2li
aWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgIm9uZWxpbmUiKSkpKQorICAgIGFzc2Vy
dCByZXN1bHRzWzBdIGlzIFRydWUKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRzWzFdLCBX
ZWJFbGVtZW50KQorCisKK2RlZiB0ZXN0X2FsbF9vZl9mYWxzZShkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhU
aW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuMSkudW50
aWwoRUMuYWxsX29mKAorICAgICAgICAgICAgRUMudGl0bGVfaXMoIk5vcGUiKSwgRUMudGl0bGVf
aXMoIlN0aWxsIE5vcGUiKSkpCisKKworZGVmIHRlc3Rfbm9uZV9vZl90cnVlKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgV2ViRHJpdmVyV2Fp
dChkcml2ZXIsIDAuMSkudW50aWwoRUMubm9uZV9vZigKKyAgICAgICAgRUMudGl0bGVfaXMoIk5v
cGUiKSwgRUMudGl0bGVfaXMoIlN0aWxsIE5vcGUiKSkpCisKKworZGVmIHRlc3Rfbm9uZV9vZl9m
YWxzZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJp
dmVyV2FpdChkcml2ZXIsIDAuMSkudW50aWwoRUMubm9uZV9vZigKKyAgICAgICAgICAgIEVDLnRp
dGxlX2lzKCJOb3BlIiksIEVDLnRpdGxlX2lzKCJIZWxsbyBXZWJEcml2ZXIiKSkpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9zdXBwb3J0L3JlbGF0aXZlX2J5X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9yZWxhdGl2
ZV9ieV90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjMxMDhlYmYxMTQ3MTlmYzJkYTIxYWY0YzhmMjM0
YjgzZWQ0MjliCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9yZWxhdGl2ZV9ieV90ZXN0
cy5weQpAQCAtMCwwICsxLDQyIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9t
IENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vu
c2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0
aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdo
dCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIg
dGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBt
YXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGlj
ZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0
dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVx
dWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3
YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisj
ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQor
IyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0
aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0
aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVu
aXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5ICAgCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5zdXBwb3J0LnJlbGF0aXZlX2xvY2F0b3IgaW1wb3J0IHdpdGhfdGFnX25hbWUKKworZGVm
IHRlc3Rfc2hvdWxkX2JlX2FibGVfdG9fZmluZF9lbGVtZW50c19hYm92ZV9hbm90aGVyKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInJlbGF0aXZlX2xvY2F0b3JzLmh0bWwiKQorICAg
IGxvd2VzdCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJiZWxvdyIpCisgICAgCisgICAg
ZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyh3aXRoX3RhZ19uYW1lKCJwIikuYWJvdmUo
bG93ZXN0KSkKKyAgICAKKyAgICBpZHMgPSBbZWwuZ2V0X2F0dHJpYnV0ZSgnaWQnKSBmb3IgZWwg
aW4gZWxlbWVudHNdCisgICAgYXNzZXJ0ICJhYm92ZSIgaW4gaWRzCisgICAgYXNzZXJ0ICJtaWQi
IGluIGlkcworCisKK2RlZiB0ZXN0X3Nob3VsZF9iZV9hYmxlX3RvX2NvbWJpbmVfZmlsdGVycyhk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJyZWxhdGl2ZV9sb2NhdG9ycy5odG1sIikK
KworICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMod2l0aF90YWdfbmFtZSgidGQi
KS5hYm92ZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiY2VudGVyIikpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvX3JpZ2h0X29mKGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuSUQsICJzZWNvbmQiKSkpCisKKyAgICBpZHMgPSBbZWwuZ2V0X2F0
dHJpYnV0ZSgnaWQnKSBmb3IgZWwgaW4gZWxlbWVudHNdCisgICAgYXNzZXJ0ICJ0aGlyZCIgaW4g
aWRzCisgICAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>